Corstone 1000 SW stack - MarekBykowski/readme GitHub Wiki
Design overview
The base system architecture of the platform is created from three different types of systems:
Secure Enclave
Host System
External System
Each subsystem provides different functionality to overall SoC.
For time being I have only delved into Hello World
in ARM Keil
for External System. Read on
External System
External System
in the refernce platform Corstone-1000
is Cortex-M3.
External System Cortex-M3 Firmware
Recipe $WORKSPACE/meta-arm/meta-arm-bsp/recipes-bsp/external-system/external-system_0.1.0.bb
From the recipe we can see that External System Cortex-M3 Firmware
is taken from https://git.gitlab.arm.com/arm-reference-solutions/corstone1000/external_system/rtx
The repository uses the components from Cortex Microcontroller System Interface Standard (CMSIS) version 5
https://github.com/ARM-software/CMSIS_5 as a git submodule, namely:
- CMSIS Real-Time Operating System (RTOS) components
- CMSIS Core
The full stack of CMSIS ver. 5
is:
- CMSIS-RTOS2: RTX 5 is now available for IAR, GCC, ARM Compiler 5, ARM Compiler 6
- CMSIS-RTOS2: FreeRTOS adoption (release) is available https://github.com/ARM-software/CMSIS-FreeRTOS
- CMSIS-Core: compiler agnostic features extended to simplify transition on LLVM based front-end
- CMSIS-Core-A: preview of the CMSIS-Core for Cortex-A
- Coming soon: CMSIS-RTOS2 for Cortex-A
So that the External System Cortex-M3 Firmware
takes two out of five components of CMSIS ver. 5
RTX 5
is described here https://www.keil.com/arm/rl-arm/kernel.asp
Hello World
in Cortex-M3
Write Steps I took:
- Took the recipe
$WORKSPACE/meta-arm/meta-arm-bsp/recipes-bsp/external-system/external-system_0.1.0.bb
and modified it to point to my repo https://github.com/MarekBykowski/external-system-cortex-m3-firmware - In my repo I changed the source code for the banner from
Running RTX RTOS
toHello Oren. Running RTX RTOS
. Find the SHA1 commit here https://github.com/MarekBykowski/external-system-cortex-m3-firmware/commit/b8173b94974c5389ca2ac6ca18021a1eb1933c3a - Built it via
Yocto
- Brought it up on a SystemC FVP simulator
Corstone-1000
and four terminal instances are lanuched, namely from up to bootomSecure Enclave
runningCortex-M0+
,Host System
runningCortex-A53
andExternal System
runningCortex-M3
- The
cat /proc/cpuinfo
from theHost System
reveals we are onCortex-A35
CPU implementer : 0x41
is ARM
CPU architecure : 8
is for ARMv8
and
CPU part : 0xd04
means Cortex-A35
Cortex-M3
prints the changed banner of myslef. See :point_right: Hello Oren in the screenshot below