mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-08-20 01:58:32 -04:00
Sync up MicroblazeV9 port with Xilinx tree (#220)
* MicroblazeV9: Add support for 64 bit microblaze * MicroblazeV9: Add support for generation of run time task stats * MicroblazeV9: Add default implementation for callback functions --------- Signed-off-by: Mubin Usman Sayyed <mubin.usman.sayyed@xilinx.com>
This commit is contained in:
parent
8e664fc984
commit
5040a67939
6 changed files with 508 additions and 298 deletions
1
.github/.cSpellWords.txt
vendored
1
.github/.cSpellWords.txt
vendored
|
@ -54,6 +54,7 @@ bics
|
|||
BISR
|
||||
BODIEN
|
||||
BODSTS
|
||||
brealid
|
||||
BRGR
|
||||
brhi
|
||||
brne
|
||||
|
|
95
.github/workflows/kernel-demos.yml
vendored
95
.github/workflows/kernel-demos.yml
vendored
|
@ -1,6 +1,13 @@
|
|||
name: FreeRTOS-Kernel Demos
|
||||
on: [push, pull_request]
|
||||
|
||||
env:
|
||||
# The bash escape character is \033
|
||||
bashPass: \033[32;1mPASSED -
|
||||
bashInfo: \033[33;1mINFO -
|
||||
bashFail: \033[31;1mFAILED -
|
||||
bashEnd: \033[0m
|
||||
|
||||
jobs:
|
||||
WIN32-MSVC:
|
||||
name: WIN32 MSVC
|
||||
|
@ -147,6 +154,92 @@ jobs:
|
|||
working-directory: FreeRTOS/Demo/msp430_GCC
|
||||
run: make -j
|
||||
|
||||
MicroBlaze-GCC:
|
||||
name: GCC MicroBlaze Toolchain
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout the FreeRTOS/FreeRTOS Repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
ref: main
|
||||
repository: FreeRTOS/FreeRTOS
|
||||
fetch-depth: 1
|
||||
|
||||
- env:
|
||||
stepName: Fetch Community-Supported-Demos Submodule
|
||||
shell: bash
|
||||
run: |
|
||||
# Fetch Community-Supported-Demos Submodule
|
||||
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
|
||||
git submodule update --checkout --init --depth 1 FreeRTOS/Demo/ThirdParty/Community-Supported-Demos
|
||||
# This repository contains the microblaze_instructions.h header file
|
||||
git clone https://github.com/Xilinx/embeddedsw.git --branch xilinx_v2023.1
|
||||
echo "::endgroup::"
|
||||
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
|
||||
|
||||
# Checkout user pull request changes
|
||||
- name: Checkout Pull Request
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
path: ./FreeRTOS/Source
|
||||
|
||||
- env:
|
||||
stepName: Install Dependancies
|
||||
shell: bash
|
||||
run: |
|
||||
# ${{ env.stepName }}
|
||||
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
|
||||
sudo apt update -y
|
||||
sudo apt upgrade -y
|
||||
sudo apt install -y build-essential m4 debhelper bison texinfo dejagnu flex
|
||||
sudo apt install -y autogen gawk libgmp-dev libmpc-dev libmpfr-dev
|
||||
sudo apt install -y patchutils sharutils zlib1g-dev autoconf2.64
|
||||
|
||||
# Download the mb-gcc toolchain from github
|
||||
curl -L -O https://github.com/mdednev/mb-gcc/releases/download/2021-0623%2B2/binutils-microblaze_2.35-2021-0623+1_amd64.deb;
|
||||
curl -L -O https://github.com/mdednev/mb-gcc/releases/download/2021-0623%2B2/gcc-microblaze_10.2.0-2021-0623+2_amd64.deb;
|
||||
curl -L -O https://github.com/mdednev/mb-gcc/releases/download/2021-0623%2B2/libnewlib-microblaze-dev_3.3.0-2021-0623+3_all.deb;
|
||||
curl -L -O https://github.com/mdednev/mb-gcc/releases/download/2021-0623%2B2/libnewlib-microblaze-doc_3.3.0-2021-0623+3_all.deb;
|
||||
curl -L -O https://github.com/mdednev/mb-gcc/releases/download/2021-0623%2B2/libnewlib-microblaze_3.3.0-2021-0623+3_all.deb;
|
||||
curl -L -O https://github.com/mdednev/mb-gcc/releases/download/2021-0623%2B2/newlib-source_3.3.0-2021-0623+3_all.deb;
|
||||
|
||||
# Install the packages for the toolchain
|
||||
sudo apt install -y ./binutils-microblaze*.deb;
|
||||
sudo apt install -y ./gcc-microblaze*.deb;
|
||||
sudo apt install -y ./libnewlib-microblaze-dev*.deb;
|
||||
sudo apt install -y ./libnewlib-microblaze-doc*.deb;
|
||||
sudo apt install -y ./libnewlib-microblaze*.deb;
|
||||
sudo apt install -y ./newlib-source*.deb;
|
||||
|
||||
# Validate that the toolchain is in the path and can be called
|
||||
which mb-gcc
|
||||
mb-gcc --version
|
||||
|
||||
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
|
||||
|
||||
- env:
|
||||
stepName: Compile Microblaze Port
|
||||
shell: bash
|
||||
run: |
|
||||
# ${{ env.stepName }}
|
||||
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
|
||||
# Compile MicroBlazeV9 Port files to validate they build
|
||||
mb-gcc -mcpu=v9.5 -c \
|
||||
FreeRTOS/Source/portable/GCC/MicroBlazeV9/port.c \
|
||||
FreeRTOS/Source/portable/GCC/MicroBlazeV9/portasm.S \
|
||||
FreeRTOS/Source/portable/GCC/MicroBlazeV9/port_exceptions.c \
|
||||
FreeRTOS/Source/tasks.c \
|
||||
FreeRTOS/Source/list.c \
|
||||
-I embeddedsw/lib/bsp/standalone/src/microblaze \
|
||||
-I FreeRTOS/Source/portable/GCC/MicroBlazeV9/ \
|
||||
-I FreeRTOS/Source/include \
|
||||
-I FreeRTOS/Demo/MicroBlaze_Kintex7_EthernetLite/RTOSDemo/src \
|
||||
-I FreeRTOS/Demo/MicroBlaze_Kintex7_EthernetLite/BSP/microblaze_0/libsrc/standalone_v5_4/src \
|
||||
-I FreeRTOS/Demo/MicroBlaze_Kintex7_EthernetLite/BSP/microblaze_0/include \
|
||||
-I FreeRTOS/Demo/MicroBlaze_Kintex7_EthernetLite/BSP/microblaze_0/libsrc/intc_v3_5/src
|
||||
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
|
||||
|
||||
|
||||
ARM-GCC:
|
||||
name: GNU ARM Toolchain
|
||||
runs-on: ubuntu-latest
|
||||
|
@ -164,7 +257,7 @@ jobs:
|
|||
# Fetch Community-Supported-Demos Submodule
|
||||
echo "::group::Fetch Community-Supported-Demos Submodule"
|
||||
git submodule update --checkout --init --depth 1 FreeRTOS/Demo/ThirdParty/Community-Supported-Demos
|
||||
echo "::engdroup::"
|
||||
echo "::endgroup::"
|
||||
if [ "$?" = "0" ]; then
|
||||
echo -e "\033[32;3mCloned the Community-Supported-Demos\033[0m"
|
||||
else
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue