├── .github
├── dependabot.yml
└── workflows
│ ├── build.yaml
│ ├── cmsis_rv2.yaml
│ ├── examples.yaml
│ └── gh-pages.yml
├── .gitignore
├── ARM.CMSIS-FreeRTOS.pdsc
├── CMSIS
└── RTOS2
│ └── FreeRTOS
│ ├── Config
│ ├── FreeRTOSConfig.h
│ └── TrustZone
│ │ └── FreeRTOSConfig.h
│ ├── Examples
│ ├── .vscode
│ │ └── launch.json
│ ├── App
│ │ ├── Hello
│ │ │ ├── Hello.cproject.yml
│ │ │ ├── README.md
│ │ │ ├── RTE
│ │ │ │ ├── CMSIS-View
│ │ │ │ │ ├── EventRecorderConf.h
│ │ │ │ │ └── EventRecorderConf.h.base@1.1.0
│ │ │ │ └── RTOS
│ │ │ │ │ ├── FreeRTOSConfig.h
│ │ │ │ │ └── FreeRTOSConfig.h.base@10.7.0
│ │ │ ├── hello.c
│ │ │ ├── main.c
│ │ │ └── main.h
│ │ └── TrustZone
│ │ │ ├── NonSecure
│ │ │ ├── README.md
│ │ │ ├── RTE
│ │ │ │ ├── CMSIS-View
│ │ │ │ │ ├── EventRecorderConf.h
│ │ │ │ │ └── EventRecorderConf.h.base@1.1.0
│ │ │ │ └── RTOS
│ │ │ │ │ ├── FreeRTOSConfig.h
│ │ │ │ │ └── FreeRTOSConfig.h.base@10.7.0
│ │ │ ├── TZ_NonSecure.cproject.yml
│ │ │ └── main_ns.c
│ │ │ ├── README.md
│ │ │ └── Secure
│ │ │ ├── README.md
│ │ │ ├── RTE
│ │ │ └── RTOS
│ │ │ │ ├── FreeRTOSConfig.h
│ │ │ │ └── FreeRTOSConfig.h.base@10.2.0
│ │ │ ├── TZ_Secure.cproject.yml
│ │ │ ├── library_nsc.c
│ │ │ ├── library_nsc.h
│ │ │ └── main_s.c
│ ├── Examples.csolution.yml
│ ├── README.md
│ ├── Target
│ │ ├── CM0
│ │ │ ├── RTE
│ │ │ │ └── Device
│ │ │ │ │ └── ARMCM0
│ │ │ │ │ ├── regions_ARMCM0.h
│ │ │ │ │ ├── startup_ARMCM0.c
│ │ │ │ │ ├── startup_ARMCM0.c.base@2.0.3
│ │ │ │ │ ├── system_ARMCM0.c
│ │ │ │ │ └── system_ARMCM0.c.base@1.0.0
│ │ │ ├── Target.clayer.yml
│ │ │ └── fvp_config.txt
│ │ ├── CM0plus
│ │ │ ├── RTE
│ │ │ │ └── Device
│ │ │ │ │ └── ARMCM0P
│ │ │ │ │ ├── regions_ARMCM0P.h
│ │ │ │ │ ├── startup_ARMCM0plus.c
│ │ │ │ │ ├── startup_ARMCM0plus.c.base@3.0.0
│ │ │ │ │ ├── system_ARMCM0plus.c
│ │ │ │ │ └── system_ARMCM0plus.c.base@2.0.0
│ │ │ ├── Target.clayer.yml
│ │ │ └── fvp_config.txt
│ │ ├── CM23
│ │ │ ├── RTE
│ │ │ │ └── Device
│ │ │ │ │ └── ARMCM23
│ │ │ │ │ ├── partition_ARMCM23.h
│ │ │ │ │ ├── partition_ARMCM23.h.base@1.0.0
│ │ │ │ │ ├── regions_ARMCM23.h
│ │ │ │ │ ├── startup_ARMCM23.c
│ │ │ │ │ ├── startup_ARMCM23.c.base@3.0.0
│ │ │ │ │ ├── system_ARMCM23.c
│ │ │ │ │ └── system_ARMCM23.c.base@2.0.0
│ │ │ ├── Target.clayer.yml
│ │ │ └── fvp_config.txt
│ │ ├── CM23_noTZ
│ │ │ ├── RTE
│ │ │ │ └── Device
│ │ │ │ │ └── ARMCM23
│ │ │ │ │ ├── regions_ARMCM23.h
│ │ │ │ │ ├── startup_ARMCM23.c
│ │ │ │ │ ├── startup_ARMCM23.c.base@3.0.0
│ │ │ │ │ ├── system_ARMCM23.c
│ │ │ │ │ └── system_ARMCM23.c.base@2.0.0
│ │ │ ├── Target.clayer.yml
│ │ │ └── fvp_config.txt
│ │ ├── CM3
│ │ │ ├── RTE
│ │ │ │ └── Device
│ │ │ │ │ └── ARMCM3
│ │ │ │ │ ├── ARMCM3_ac6.sct
│ │ │ │ │ ├── ARMCM3_ac6.sct.base@1.0.0
│ │ │ │ │ ├── ac6_linker_script.sct.src
│ │ │ │ │ ├── regions_ARMCM3.h
│ │ │ │ │ ├── startup_ARMCM3.c
│ │ │ │ │ ├── startup_ARMCM3.c.base@2.0.3
│ │ │ │ │ ├── system_ARMCM3.c
│ │ │ │ │ └── system_ARMCM3.c.base@1.0.1
│ │ │ ├── Target.clayer.yml
│ │ │ └── fvp_config.txt
│ │ ├── CM33
│ │ │ ├── RTE
│ │ │ │ └── Device
│ │ │ │ │ └── ARMCM33
│ │ │ │ │ ├── partition_ARMCM33.h
│ │ │ │ │ ├── partition_ARMCM33.h.base@1.1.1
│ │ │ │ │ ├── regions_ARMCM33.h
│ │ │ │ │ ├── startup_ARMCM33.c
│ │ │ │ │ ├── startup_ARMCM33.c.base@3.0.0
│ │ │ │ │ ├── system_ARMCM33.c
│ │ │ │ │ └── system_ARMCM33.c.base@2.0.0
│ │ │ ├── Target.clayer.yml
│ │ │ └── fvp_config.txt
│ │ ├── CM33_noTZ
│ │ │ ├── RTE
│ │ │ │ └── Device
│ │ │ │ │ └── ARMCM33
│ │ │ │ │ ├── regions_ARMCM33.h
│ │ │ │ │ ├── startup_ARMCM33.c
│ │ │ │ │ ├── startup_ARMCM33.c.base@3.0.0
│ │ │ │ │ ├── system_ARMCM33.c
│ │ │ │ │ └── system_ARMCM33.c.base@2.0.0
│ │ │ ├── Target.clayer.yml
│ │ │ └── fvp_config.txt
│ │ ├── CM4
│ │ │ ├── RTE
│ │ │ │ └── Device
│ │ │ │ │ └── ARMCM4
│ │ │ │ │ ├── regions_ARMCM4.h
│ │ │ │ │ ├── startup_ARMCM4.c
│ │ │ │ │ ├── startup_ARMCM4.c.base@3.0.0
│ │ │ │ │ ├── system_ARMCM4.c
│ │ │ │ │ └── system_ARMCM4.c.base@2.0.0
│ │ │ ├── Target.clayer.yml
│ │ │ └── fvp_config.txt
│ │ ├── CM55
│ │ │ ├── RTE
│ │ │ │ └── Device
│ │ │ │ │ └── ARMCM55
│ │ │ │ │ ├── partition_ARMCM55.h
│ │ │ │ │ ├── partition_ARMCM55.h.base@1.0.0
│ │ │ │ │ ├── regions_ARMCM55.h
│ │ │ │ │ ├── startup_ARMCM55.c
│ │ │ │ │ ├── startup_ARMCM55.c.base@1.1.0
│ │ │ │ │ ├── system_ARMCM55.c
│ │ │ │ │ └── system_ARMCM55.c.base@1.1.0
│ │ │ ├── Target.clayer.yml
│ │ │ └── fvp_config.txt
│ │ ├── CM55_noTZ
│ │ │ ├── RTE
│ │ │ │ └── Device
│ │ │ │ │ └── ARMCM55
│ │ │ │ │ ├── regions_ARMCM55.h
│ │ │ │ │ ├── startup_ARMCM55.c
│ │ │ │ │ ├── startup_ARMCM55.c.base@1.1.0
│ │ │ │ │ ├── system_ARMCM55.c
│ │ │ │ │ └── system_ARMCM55.c.base@1.1.0
│ │ │ ├── Target.clayer.yml
│ │ │ └── fvp_config.txt
│ │ ├── CM7
│ │ │ ├── RTE
│ │ │ │ └── Device
│ │ │ │ │ └── ARMCM7
│ │ │ │ │ ├── regions_ARMCM7.h
│ │ │ │ │ ├── startup_ARMCM7.c
│ │ │ │ │ ├── startup_ARMCM7.c.base@3.0.0
│ │ │ │ │ ├── system_ARMCM7.c
│ │ │ │ │ └── system_ARMCM7.c.base@2.0.0
│ │ │ ├── Target.clayer.yml
│ │ │ └── fvp_config.txt
│ │ ├── CM85
│ │ │ ├── RTE
│ │ │ │ └── Device
│ │ │ │ │ └── ARMCM85
│ │ │ │ │ ├── partition_ARMCM85.h
│ │ │ │ │ ├── partition_ARMCM85.h.base@1.0.0
│ │ │ │ │ ├── regions_ARMCM85.h
│ │ │ │ │ ├── startup_ARMCM85.c
│ │ │ │ │ ├── startup_ARMCM85.c.base@1.0.0
│ │ │ │ │ ├── system_ARMCM85.c
│ │ │ │ │ └── system_ARMCM85.c.base@1.0.0
│ │ │ ├── Target.clayer.yml
│ │ │ └── fvp_config.txt
│ │ ├── CM85_noTZ
│ │ │ ├── RTE
│ │ │ │ └── Device
│ │ │ │ │ └── ARMCM85
│ │ │ │ │ ├── regions_ARMCM85.h
│ │ │ │ │ ├── startup_ARMCM85.c
│ │ │ │ │ ├── startup_ARMCM85.c.base@1.0.0
│ │ │ │ │ ├── system_ARMCM85.c
│ │ │ │ │ └── system_ARMCM85.c.base@1.0.0
│ │ │ ├── Target.clayer.yml
│ │ │ └── fvp_config.txt
│ │ └── README.md
│ └── vcpkg-configuration.json
│ ├── FreeRTOS.scvd
│ ├── Include
│ ├── freertos_evr.h
│ ├── freertos_mpool.h
│ └── freertos_os2.h
│ └── Source
│ ├── clib_os.c
│ ├── cmsis_os2.c
│ ├── freertos_evr.c
│ └── handlers.c
├── Documentation
├── Doxygen
│ ├── freertos.dxy.in
│ ├── gen_doc.sh
│ ├── linkchecker.rc
│ ├── src
│ │ ├── cmsis_rtos2_validation.txt
│ │ ├── create_project.md
│ │ ├── example_projects.md
│ │ ├── freertos_evr.txt
│ │ ├── function_overview.md
│ │ ├── images
│ │ │ ├── freertos_config_h_cmsis_rtos.png
│ │ │ ├── freertos_config_h_native.png
│ │ │ ├── hello_out.png
│ │ │ ├── manage_rte_freertos_native.png
│ │ │ ├── manage_rte_freertos_rtos2.png
│ │ │ ├── project_window_freertos_native.png
│ │ │ ├── project_window_freertos_rtos2.png
│ │ │ └── trustzone_out.png
│ │ ├── mainpage.md
│ │ └── technical_data.md
│ └── style_template
│ │ ├── cmsis_logo_white_small.png
│ │ ├── darkmode_toggle.js
│ │ ├── dropdown.png
│ │ ├── extra_navtree.css
│ │ ├── extra_search.css
│ │ ├── extra_stylesheet.css
│ │ ├── extra_tabs.css
│ │ ├── footer.html
│ │ ├── footer.js.in
│ │ ├── header.html
│ │ ├── layout.xml
│ │ ├── navtree.js
│ │ ├── resize.js
│ │ ├── search.css
│ │ ├── search.js
│ │ ├── tab_b.png
│ │ ├── tab_topnav.png
│ │ ├── tabs.js
│ │ └── version.css
├── index.html
└── version.js
├── LICENSE
├── README.md
├── Source
├── CMakeLists.txt
├── GitHub-FreeRTOS-Kernel-Home.url
├── History.txt
├── LICENSE.md
├── MISRA.md
├── Quick_Start_Guide.url
├── README.md
├── croutine.c
├── cspell.config.yaml
├── event_groups.c
├── examples
│ ├── README.md
│ ├── cmake_example
│ │ ├── CMakeLists.txt
│ │ └── main.c
│ ├── coverity
│ │ ├── CMakeLists.txt
│ │ ├── FreeRTOSConfig.h
│ │ ├── README.md
│ │ └── coverity_misra.config
│ └── template_configuration
│ │ ├── FreeRTOSConfig.h
│ │ └── readme.md
├── include
│ ├── CMakeLists.txt
│ ├── FreeRTOS.h
│ ├── StackMacros.h
│ ├── atomic.h
│ ├── croutine.h
│ ├── deprecated_definitions.h
│ ├── event_groups.h
│ ├── list.h
│ ├── message_buffer.h
│ ├── mpu_prototypes.h
│ ├── mpu_syscall_numbers.h
│ ├── mpu_wrappers.h
│ ├── newlib-freertos.h
│ ├── picolibc-freertos.h
│ ├── portable.h
│ ├── projdefs.h
│ ├── queue.h
│ ├── semphr.h
│ ├── stack_macros.h
│ ├── stdint.readme
│ ├── stream_buffer.h
│ ├── task.h
│ └── timers.h
├── list.c
├── manifest.yml
├── portable
│ ├── ARMClang
│ │ └── Use-the-GCC-ports.txt
│ ├── ARMv8M
│ │ ├── ReadMe.txt
│ │ ├── copy_files.py
│ │ ├── non_secure
│ │ │ ├── ReadMe.txt
│ │ │ ├── port.c
│ │ │ ├── portable
│ │ │ │ ├── GCC
│ │ │ │ │ ├── ARM_CM23
│ │ │ │ │ │ ├── mpu_wrappers_v2_asm.c
│ │ │ │ │ │ ├── portasm.c
│ │ │ │ │ │ └── portmacro.h
│ │ │ │ │ ├── ARM_CM23_NTZ
│ │ │ │ │ │ ├── mpu_wrappers_v2_asm.c
│ │ │ │ │ │ ├── portasm.c
│ │ │ │ │ │ └── portmacro.h
│ │ │ │ │ ├── ARM_CM33
│ │ │ │ │ │ ├── mpu_wrappers_v2_asm.c
│ │ │ │ │ │ ├── portasm.c
│ │ │ │ │ │ └── portmacro.h
│ │ │ │ │ ├── ARM_CM33_NTZ
│ │ │ │ │ │ ├── mpu_wrappers_v2_asm.c
│ │ │ │ │ │ ├── portasm.c
│ │ │ │ │ │ └── portmacro.h
│ │ │ │ │ ├── ARM_CM35P
│ │ │ │ │ │ └── portmacro.h
│ │ │ │ │ ├── ARM_CM55
│ │ │ │ │ │ └── portmacro.h
│ │ │ │ │ └── ARM_CM85
│ │ │ │ │ │ └── portmacro.h
│ │ │ │ └── IAR
│ │ │ │ │ ├── ARM_CM23
│ │ │ │ │ ├── mpu_wrappers_v2_asm.S
│ │ │ │ │ ├── portasm.s
│ │ │ │ │ └── portmacro.h
│ │ │ │ │ ├── ARM_CM23_NTZ
│ │ │ │ │ ├── mpu_wrappers_v2_asm.S
│ │ │ │ │ ├── portasm.s
│ │ │ │ │ └── portmacro.h
│ │ │ │ │ ├── ARM_CM33
│ │ │ │ │ ├── mpu_wrappers_v2_asm.S
│ │ │ │ │ ├── portasm.s
│ │ │ │ │ └── portmacro.h
│ │ │ │ │ ├── ARM_CM33_NTZ
│ │ │ │ │ ├── mpu_wrappers_v2_asm.S
│ │ │ │ │ ├── portasm.s
│ │ │ │ │ └── portmacro.h
│ │ │ │ │ ├── ARM_CM35P
│ │ │ │ │ └── portmacro.h
│ │ │ │ │ ├── ARM_CM55
│ │ │ │ │ └── portmacro.h
│ │ │ │ │ └── ARM_CM85
│ │ │ │ │ └── portmacro.h
│ │ │ ├── portasm.h
│ │ │ └── portmacrocommon.h
│ │ └── secure
│ │ │ ├── ReadMe.txt
│ │ │ ├── context
│ │ │ ├── portable
│ │ │ │ ├── GCC
│ │ │ │ │ ├── ARM_CM23
│ │ │ │ │ │ └── secure_context_port.c
│ │ │ │ │ └── ARM_CM33
│ │ │ │ │ │ └── secure_context_port.c
│ │ │ │ └── IAR
│ │ │ │ │ ├── ARM_CM23
│ │ │ │ │ └── secure_context_port_asm.s
│ │ │ │ │ └── ARM_CM33
│ │ │ │ │ └── secure_context_port_asm.s
│ │ │ ├── secure_context.c
│ │ │ └── secure_context.h
│ │ │ ├── heap
│ │ │ ├── secure_heap.c
│ │ │ └── secure_heap.h
│ │ │ ├── init
│ │ │ ├── secure_init.c
│ │ │ └── secure_init.h
│ │ │ └── macros
│ │ │ └── secure_port_macros.h
│ ├── BCC
│ │ └── 16BitDOS
│ │ │ ├── Flsh186
│ │ │ ├── port.c
│ │ │ └── prtmacro.h
│ │ │ ├── PC
│ │ │ ├── port.c
│ │ │ └── prtmacro.h
│ │ │ └── common
│ │ │ ├── portasm.h
│ │ │ └── portcomn.c
│ ├── CCRH
│ │ └── F1Kx
│ │ │ ├── README.md
│ │ │ ├── port.c
│ │ │ ├── portasm.s
│ │ │ └── portmacro.h
│ ├── CCS
│ │ ├── ARM_CM3
│ │ │ ├── port.c
│ │ │ ├── portasm.asm
│ │ │ └── portmacro.h
│ │ ├── ARM_CM4F
│ │ │ ├── port.c
│ │ │ ├── portasm.asm
│ │ │ └── portmacro.h
│ │ ├── ARM_Cortex-R4
│ │ │ ├── port.c
│ │ │ ├── portASM.asm
│ │ │ └── portmacro.h
│ │ └── MSP430X
│ │ │ ├── data_model.h
│ │ │ ├── port.c
│ │ │ ├── portext.asm
│ │ │ └── portmacro.h
│ ├── CMakeLists.txt
│ ├── CodeWarrior
│ │ ├── ColdFire_V1
│ │ │ ├── port.c
│ │ │ ├── portasm.S
│ │ │ └── portmacro.h
│ │ ├── ColdFire_V2
│ │ │ ├── port.c
│ │ │ ├── portasm.S
│ │ │ └── portmacro.h
│ │ └── HCS12
│ │ │ ├── port.c
│ │ │ └── portmacro.h
│ ├── Common
│ │ ├── mpu_wrappers.c
│ │ └── mpu_wrappers_v2.c
│ ├── GCC
│ │ ├── ARM7_AT91FR40008
│ │ │ ├── port.c
│ │ │ ├── portISR.c
│ │ │ └── portmacro.h
│ │ ├── ARM7_AT91SAM7S
│ │ │ ├── AT91SAM7X256.h
│ │ │ ├── ioat91sam7x256.h
│ │ │ ├── lib_AT91SAM7X256.c
│ │ │ ├── lib_AT91SAM7X256.h
│ │ │ ├── port.c
│ │ │ ├── portISR.c
│ │ │ └── portmacro.h
│ │ ├── ARM7_LPC2000
│ │ │ ├── port.c
│ │ │ ├── portISR.c
│ │ │ └── portmacro.h
│ │ ├── ARM7_LPC23xx
│ │ │ ├── port.c
│ │ │ ├── portISR.c
│ │ │ └── portmacro.h
│ │ ├── ARM_CA53_64_BIT
│ │ │ └── README.md
│ │ ├── ARM_CA53_64_BIT_SRE
│ │ │ └── README.md
│ │ ├── ARM_CA9
│ │ │ ├── port.c
│ │ │ ├── portASM.S
│ │ │ └── portmacro.h
│ │ ├── ARM_CM0
│ │ │ ├── mpu_wrappers_v2_asm.c
│ │ │ ├── port.c
│ │ │ ├── portasm.c
│ │ │ ├── portasm.h
│ │ │ └── portmacro.h
│ │ ├── ARM_CM23
│ │ │ ├── non_secure
│ │ │ │ ├── mpu_wrappers_v2_asm.c
│ │ │ │ ├── port.c
│ │ │ │ ├── portasm.c
│ │ │ │ ├── portasm.h
│ │ │ │ ├── portmacro.h
│ │ │ │ └── portmacrocommon.h
│ │ │ └── secure
│ │ │ │ ├── secure_context.c
│ │ │ │ ├── secure_context.h
│ │ │ │ ├── secure_context_port.c
│ │ │ │ ├── secure_heap.c
│ │ │ │ ├── secure_heap.h
│ │ │ │ ├── secure_init.c
│ │ │ │ ├── secure_init.h
│ │ │ │ └── secure_port_macros.h
│ │ ├── ARM_CM23_NTZ
│ │ │ └── non_secure
│ │ │ │ ├── mpu_wrappers_v2_asm.c
│ │ │ │ ├── port.c
│ │ │ │ ├── portasm.c
│ │ │ │ ├── portasm.h
│ │ │ │ ├── portmacro.h
│ │ │ │ └── portmacrocommon.h
│ │ ├── ARM_CM3
│ │ │ ├── port.c
│ │ │ └── portmacro.h
│ │ ├── ARM_CM33
│ │ │ ├── non_secure
│ │ │ │ ├── mpu_wrappers_v2_asm.c
│ │ │ │ ├── port.c
│ │ │ │ ├── portasm.c
│ │ │ │ ├── portasm.h
│ │ │ │ ├── portmacro.h
│ │ │ │ └── portmacrocommon.h
│ │ │ └── secure
│ │ │ │ ├── secure_context.c
│ │ │ │ ├── secure_context.h
│ │ │ │ ├── secure_context_port.c
│ │ │ │ ├── secure_heap.c
│ │ │ │ ├── secure_heap.h
│ │ │ │ ├── secure_init.c
│ │ │ │ ├── secure_init.h
│ │ │ │ └── secure_port_macros.h
│ │ ├── ARM_CM33_NTZ
│ │ │ └── non_secure
│ │ │ │ ├── mpu_wrappers_v2_asm.c
│ │ │ │ ├── port.c
│ │ │ │ ├── portasm.c
│ │ │ │ ├── portasm.h
│ │ │ │ ├── portmacro.h
│ │ │ │ └── portmacrocommon.h
│ │ ├── ARM_CM35P
│ │ │ ├── non_secure
│ │ │ │ ├── mpu_wrappers_v2_asm.c
│ │ │ │ ├── port.c
│ │ │ │ ├── portasm.c
│ │ │ │ ├── portasm.h
│ │ │ │ ├── portmacro.h
│ │ │ │ └── portmacrocommon.h
│ │ │ └── secure
│ │ │ │ ├── secure_context.c
│ │ │ │ ├── secure_context.h
│ │ │ │ ├── secure_context_port.c
│ │ │ │ ├── secure_heap.c
│ │ │ │ ├── secure_heap.h
│ │ │ │ ├── secure_init.c
│ │ │ │ ├── secure_init.h
│ │ │ │ └── secure_port_macros.h
│ │ ├── ARM_CM35P_NTZ
│ │ │ └── non_secure
│ │ │ │ ├── mpu_wrappers_v2_asm.c
│ │ │ │ ├── port.c
│ │ │ │ ├── portasm.c
│ │ │ │ ├── portasm.h
│ │ │ │ ├── portmacro.h
│ │ │ │ └── portmacrocommon.h
│ │ ├── ARM_CM3_MPU
│ │ │ ├── mpu_wrappers_v2_asm.c
│ │ │ ├── port.c
│ │ │ └── portmacro.h
│ │ ├── ARM_CM4F
│ │ │ ├── port.c
│ │ │ └── portmacro.h
│ │ ├── ARM_CM4_MPU
│ │ │ ├── mpu_wrappers_v2_asm.c
│ │ │ ├── port.c
│ │ │ └── portmacro.h
│ │ ├── ARM_CM55
│ │ │ ├── non_secure
│ │ │ │ ├── mpu_wrappers_v2_asm.c
│ │ │ │ ├── port.c
│ │ │ │ ├── portasm.c
│ │ │ │ ├── portasm.h
│ │ │ │ ├── portmacro.h
│ │ │ │ └── portmacrocommon.h
│ │ │ └── secure
│ │ │ │ ├── secure_context.c
│ │ │ │ ├── secure_context.h
│ │ │ │ ├── secure_context_port.c
│ │ │ │ ├── secure_heap.c
│ │ │ │ ├── secure_heap.h
│ │ │ │ ├── secure_init.c
│ │ │ │ ├── secure_init.h
│ │ │ │ └── secure_port_macros.h
│ │ ├── ARM_CM55_NTZ
│ │ │ └── non_secure
│ │ │ │ ├── mpu_wrappers_v2_asm.c
│ │ │ │ ├── port.c
│ │ │ │ ├── portasm.c
│ │ │ │ ├── portasm.h
│ │ │ │ ├── portmacro.h
│ │ │ │ └── portmacrocommon.h
│ │ ├── ARM_CM7
│ │ │ ├── ReadMe.txt
│ │ │ └── r0p1
│ │ │ │ ├── port.c
│ │ │ │ └── portmacro.h
│ │ ├── ARM_CM85
│ │ │ ├── non_secure
│ │ │ │ ├── mpu_wrappers_v2_asm.c
│ │ │ │ ├── port.c
│ │ │ │ ├── portasm.c
│ │ │ │ ├── portasm.h
│ │ │ │ ├── portmacro.h
│ │ │ │ └── portmacrocommon.h
│ │ │ └── secure
│ │ │ │ ├── secure_context.c
│ │ │ │ ├── secure_context.h
│ │ │ │ ├── secure_context_port.c
│ │ │ │ ├── secure_heap.c
│ │ │ │ ├── secure_heap.h
│ │ │ │ ├── secure_init.c
│ │ │ │ ├── secure_init.h
│ │ │ │ └── secure_port_macros.h
│ │ ├── ARM_CM85_NTZ
│ │ │ └── non_secure
│ │ │ │ ├── mpu_wrappers_v2_asm.c
│ │ │ │ ├── port.c
│ │ │ │ ├── portasm.c
│ │ │ │ ├── portasm.h
│ │ │ │ ├── portmacro.h
│ │ │ │ └── portmacrocommon.h
│ │ ├── ARM_CR5
│ │ │ ├── port.c
│ │ │ ├── portASM.S
│ │ │ └── portmacro.h
│ │ ├── ARM_CRx_MPU
│ │ │ ├── mpu_wrappers_v2_asm.S
│ │ │ ├── port.c
│ │ │ ├── portASM.S
│ │ │ ├── portmacro.h
│ │ │ └── portmacro_asm.h
│ │ ├── ARM_CRx_No_GIC
│ │ │ ├── port.c
│ │ │ ├── portASM.S
│ │ │ └── portmacro.h
│ │ ├── ATMega323
│ │ │ ├── port.c
│ │ │ └── portmacro.h
│ │ ├── AVR32_UC3
│ │ │ ├── exception.S
│ │ │ ├── port.c
│ │ │ └── portmacro.h
│ │ ├── AVR_AVRDx
│ │ │ └── README.md
│ │ ├── AVR_Mega0
│ │ │ └── README.md
│ │ ├── Arm_AARCH64
│ │ │ ├── README.md
│ │ │ ├── port.c
│ │ │ ├── portASM.S
│ │ │ └── portmacro.h
│ │ ├── Arm_AARCH64_SRE
│ │ │ ├── README.md
│ │ │ ├── port.c
│ │ │ ├── portASM.S
│ │ │ └── portmacro.h
│ │ ├── CORTUS_APS3
│ │ │ ├── port.c
│ │ │ └── portmacro.h
│ │ ├── ColdFire_V2
│ │ │ ├── port.c
│ │ │ ├── portasm.S
│ │ │ └── portmacro.h
│ │ ├── H8S2329
│ │ │ ├── port.c
│ │ │ └── portmacro.h
│ │ ├── HCS12
│ │ │ ├── port.c
│ │ │ └── portmacro.h
│ │ ├── IA32_flat
│ │ │ ├── ISR_Support.h
│ │ │ ├── port.c
│ │ │ ├── portASM.S
│ │ │ └── portmacro.h
│ │ ├── MCF5235
│ │ │ └── readme.md
│ │ ├── MSP430F449
│ │ │ ├── port.c
│ │ │ └── portmacro.h
│ │ ├── MicroBlaze
│ │ │ ├── port.c
│ │ │ ├── portasm.s
│ │ │ └── portmacro.h
│ │ ├── MicroBlazeV8
│ │ │ ├── port.c
│ │ │ ├── port_exceptions.c
│ │ │ ├── portasm.S
│ │ │ └── portmacro.h
│ │ ├── MicroBlazeV9
│ │ │ ├── port.c
│ │ │ ├── port_exceptions.c
│ │ │ ├── portasm.S
│ │ │ └── portmacro.h
│ │ ├── NiosII
│ │ │ ├── port.c
│ │ │ ├── port_asm.S
│ │ │ └── portmacro.h
│ │ ├── PPC405_Xilinx
│ │ │ ├── FPU_Macros.h
│ │ │ ├── port.c
│ │ │ ├── portasm.S
│ │ │ └── portmacro.h
│ │ ├── PPC440_Xilinx
│ │ │ ├── FPU_Macros.h
│ │ │ ├── port.c
│ │ │ ├── portasm.S
│ │ │ └── portmacro.h
│ │ ├── RISC-V
│ │ │ ├── Documentation.url
│ │ │ ├── chip_extensions.cmake
│ │ │ ├── chip_specific_extensions
│ │ │ │ ├── Pulpino_Vega_RV32M1RM
│ │ │ │ │ └── freertos_risc_v_chip_specific_extensions.h
│ │ │ │ ├── RISCV_MTIME_CLINT_no_extensions
│ │ │ │ │ └── freertos_risc_v_chip_specific_extensions.h
│ │ │ │ ├── RISCV_no_extensions
│ │ │ │ │ └── freertos_risc_v_chip_specific_extensions.h
│ │ │ │ ├── RV32I_CLINT_no_extensions
│ │ │ │ │ └── freertos_risc_v_chip_specific_extensions.h
│ │ │ │ └── readme.txt
│ │ │ ├── port.c
│ │ │ ├── portASM.S
│ │ │ ├── portContext.h
│ │ │ ├── portmacro.h
│ │ │ └── readme.txt
│ │ ├── RL78
│ │ │ ├── isr_support.h
│ │ │ ├── port.c
│ │ │ ├── portasm.S
│ │ │ └── portmacro.h
│ │ ├── RX100
│ │ │ ├── port.c
│ │ │ ├── portmacro.h
│ │ │ └── readme.txt
│ │ ├── RX200
│ │ │ ├── port.c
│ │ │ └── portmacro.h
│ │ ├── RX600
│ │ │ ├── port.c
│ │ │ ├── portmacro.h
│ │ │ └── readme.txt
│ │ ├── RX600v2
│ │ │ ├── port.c
│ │ │ ├── portmacro.h
│ │ │ └── readme.txt
│ │ ├── RX700v3_DPFPU
│ │ │ ├── port.c
│ │ │ ├── portmacro.h
│ │ │ └── readme.txt
│ │ ├── STR75x
│ │ │ ├── port.c
│ │ │ ├── portISR.c
│ │ │ └── portmacro.h
│ │ └── TriCore_1782
│ │ │ ├── port.c
│ │ │ ├── portmacro.h
│ │ │ └── porttrap.c
│ ├── IAR
│ │ ├── 78K0R
│ │ │ ├── ISR_Support.h
│ │ │ ├── port.c
│ │ │ ├── portasm.s26
│ │ │ └── portmacro.h
│ │ ├── ARM_CA5_No_GIC
│ │ │ ├── port.c
│ │ │ ├── portASM.h
│ │ │ ├── portASM.s
│ │ │ └── portmacro.h
│ │ ├── ARM_CA9
│ │ │ ├── port.c
│ │ │ ├── portASM.h
│ │ │ ├── portASM.s
│ │ │ └── portmacro.h
│ │ ├── ARM_CM0
│ │ │ ├── port.c
│ │ │ ├── portasm.s
│ │ │ └── portmacro.h
│ │ ├── ARM_CM23
│ │ │ ├── non_secure
│ │ │ │ ├── mpu_wrappers_v2_asm.S
│ │ │ │ ├── port.c
│ │ │ │ ├── portasm.h
│ │ │ │ ├── portasm.s
│ │ │ │ ├── portmacro.h
│ │ │ │ └── portmacrocommon.h
│ │ │ └── secure
│ │ │ │ ├── secure_context.c
│ │ │ │ ├── secure_context.h
│ │ │ │ ├── secure_context_port_asm.s
│ │ │ │ ├── secure_heap.c
│ │ │ │ ├── secure_heap.h
│ │ │ │ ├── secure_init.c
│ │ │ │ ├── secure_init.h
│ │ │ │ └── secure_port_macros.h
│ │ ├── ARM_CM23_NTZ
│ │ │ └── non_secure
│ │ │ │ ├── mpu_wrappers_v2_asm.S
│ │ │ │ ├── port.c
│ │ │ │ ├── portasm.h
│ │ │ │ ├── portasm.s
│ │ │ │ ├── portmacro.h
│ │ │ │ └── portmacrocommon.h
│ │ ├── ARM_CM3
│ │ │ ├── port.c
│ │ │ ├── portasm.s
│ │ │ └── portmacro.h
│ │ ├── ARM_CM33
│ │ │ ├── non_secure
│ │ │ │ ├── mpu_wrappers_v2_asm.S
│ │ │ │ ├── port.c
│ │ │ │ ├── portasm.h
│ │ │ │ ├── portasm.s
│ │ │ │ ├── portmacro.h
│ │ │ │ └── portmacrocommon.h
│ │ │ └── secure
│ │ │ │ ├── secure_context.c
│ │ │ │ ├── secure_context.h
│ │ │ │ ├── secure_context_port_asm.s
│ │ │ │ ├── secure_heap.c
│ │ │ │ ├── secure_heap.h
│ │ │ │ ├── secure_init.c
│ │ │ │ ├── secure_init.h
│ │ │ │ └── secure_port_macros.h
│ │ ├── ARM_CM33_NTZ
│ │ │ └── non_secure
│ │ │ │ ├── mpu_wrappers_v2_asm.S
│ │ │ │ ├── port.c
│ │ │ │ ├── portasm.h
│ │ │ │ ├── portasm.s
│ │ │ │ ├── portmacro.h
│ │ │ │ └── portmacrocommon.h
│ │ ├── ARM_CM35P
│ │ │ ├── non_secure
│ │ │ │ ├── mpu_wrappers_v2_asm.S
│ │ │ │ ├── port.c
│ │ │ │ ├── portasm.h
│ │ │ │ ├── portasm.s
│ │ │ │ ├── portmacro.h
│ │ │ │ └── portmacrocommon.h
│ │ │ └── secure
│ │ │ │ ├── secure_context.c
│ │ │ │ ├── secure_context.h
│ │ │ │ ├── secure_context_port_asm.s
│ │ │ │ ├── secure_heap.c
│ │ │ │ ├── secure_heap.h
│ │ │ │ ├── secure_init.c
│ │ │ │ ├── secure_init.h
│ │ │ │ └── secure_port_macros.h
│ │ ├── ARM_CM35P_NTZ
│ │ │ └── non_secure
│ │ │ │ ├── mpu_wrappers_v2_asm.S
│ │ │ │ ├── port.c
│ │ │ │ ├── portasm.h
│ │ │ │ ├── portasm.s
│ │ │ │ ├── portmacro.h
│ │ │ │ └── portmacrocommon.h
│ │ ├── ARM_CM4F
│ │ │ ├── port.c
│ │ │ ├── portasm.s
│ │ │ └── portmacro.h
│ │ ├── ARM_CM4F_MPU
│ │ │ ├── mpu_wrappers_v2_asm.S
│ │ │ ├── port.c
│ │ │ ├── portasm.s
│ │ │ └── portmacro.h
│ │ ├── ARM_CM55
│ │ │ ├── non_secure
│ │ │ │ ├── mpu_wrappers_v2_asm.S
│ │ │ │ ├── port.c
│ │ │ │ ├── portasm.h
│ │ │ │ ├── portasm.s
│ │ │ │ ├── portmacro.h
│ │ │ │ └── portmacrocommon.h
│ │ │ └── secure
│ │ │ │ ├── secure_context.c
│ │ │ │ ├── secure_context.h
│ │ │ │ ├── secure_context_port_asm.s
│ │ │ │ ├── secure_heap.c
│ │ │ │ ├── secure_heap.h
│ │ │ │ ├── secure_init.c
│ │ │ │ ├── secure_init.h
│ │ │ │ └── secure_port_macros.h
│ │ ├── ARM_CM55_NTZ
│ │ │ └── non_secure
│ │ │ │ ├── mpu_wrappers_v2_asm.S
│ │ │ │ ├── port.c
│ │ │ │ ├── portasm.h
│ │ │ │ ├── portasm.s
│ │ │ │ ├── portmacro.h
│ │ │ │ └── portmacrocommon.h
│ │ ├── ARM_CM7
│ │ │ ├── ReadMe.txt
│ │ │ └── r0p1
│ │ │ │ ├── port.c
│ │ │ │ ├── portasm.s
│ │ │ │ └── portmacro.h
│ │ ├── ARM_CM85
│ │ │ ├── non_secure
│ │ │ │ ├── mpu_wrappers_v2_asm.S
│ │ │ │ ├── port.c
│ │ │ │ ├── portasm.h
│ │ │ │ ├── portasm.s
│ │ │ │ ├── portmacro.h
│ │ │ │ └── portmacrocommon.h
│ │ │ └── secure
│ │ │ │ ├── secure_context.c
│ │ │ │ ├── secure_context.h
│ │ │ │ ├── secure_context_port_asm.s
│ │ │ │ ├── secure_heap.c
│ │ │ │ ├── secure_heap.h
│ │ │ │ ├── secure_init.c
│ │ │ │ ├── secure_init.h
│ │ │ │ └── secure_port_macros.h
│ │ ├── ARM_CM85_NTZ
│ │ │ └── non_secure
│ │ │ │ ├── mpu_wrappers_v2_asm.S
│ │ │ │ ├── port.c
│ │ │ │ ├── portasm.h
│ │ │ │ ├── portasm.s
│ │ │ │ ├── portmacro.h
│ │ │ │ └── portmacrocommon.h
│ │ ├── ARM_CRx_No_GIC
│ │ │ ├── port.c
│ │ │ ├── portASM.s
│ │ │ └── portmacro.h
│ │ ├── ATMega323
│ │ │ ├── port.c
│ │ │ ├── portmacro.h
│ │ │ └── portmacro.s90
│ │ ├── AVR32_UC3
│ │ │ ├── exception.s82
│ │ │ ├── port.c
│ │ │ ├── portmacro.h
│ │ │ ├── read.c
│ │ │ └── write.c
│ │ ├── AVR_AVRDx
│ │ │ ├── port.c
│ │ │ ├── porthardware.h
│ │ │ ├── portmacro.h
│ │ │ └── portmacro.s90
│ │ ├── AVR_Mega0
│ │ │ ├── port.c
│ │ │ ├── porthardware.h
│ │ │ ├── portmacro.h
│ │ │ └── portmacro.s90
│ │ ├── AtmelSAM7S64
│ │ │ ├── AT91SAM7S64.h
│ │ │ ├── AT91SAM7S64_inc.h
│ │ │ ├── AT91SAM7X128.h
│ │ │ ├── AT91SAM7X128_inc.h
│ │ │ ├── AT91SAM7X256.h
│ │ │ ├── AT91SAM7X256_inc.h
│ │ │ ├── ISR_Support.h
│ │ │ ├── lib_AT91SAM7S64.h
│ │ │ ├── lib_AT91SAM7X128.h
│ │ │ ├── lib_AT91SAM7X256.h
│ │ │ ├── port.c
│ │ │ ├── portasm.s79
│ │ │ └── portmacro.h
│ │ ├── AtmelSAM9XE
│ │ │ ├── ISR_Support.h
│ │ │ ├── port.c
│ │ │ ├── portasm.s79
│ │ │ └── portmacro.h
│ │ ├── LPC2000
│ │ │ ├── ISR_Support.h
│ │ │ ├── port.c
│ │ │ ├── portasm.s79
│ │ │ └── portmacro.h
│ │ ├── MSP430
│ │ │ ├── port.c
│ │ │ ├── portasm.h
│ │ │ ├── portext.s43
│ │ │ └── portmacro.h
│ │ ├── MSP430X
│ │ │ ├── data_model.h
│ │ │ ├── port.c
│ │ │ ├── portext.s43
│ │ │ └── portmacro.h
│ │ ├── RISC-V
│ │ │ ├── Documentation.url
│ │ │ ├── chip_extensions.cmake
│ │ │ ├── chip_specific_extensions
│ │ │ │ ├── RV32I_CLINT_no_extensions
│ │ │ │ │ └── freertos_risc_v_chip_specific_extensions.h
│ │ │ │ └── readme.txt
│ │ │ ├── port.c
│ │ │ ├── portASM.s
│ │ │ ├── portContext.h
│ │ │ ├── portmacro.h
│ │ │ └── readme.txt
│ │ ├── RL78
│ │ │ ├── port.c
│ │ │ ├── portasm.s
│ │ │ └── portmacro.h
│ │ ├── RX100
│ │ │ ├── port.c
│ │ │ ├── port_asm.s
│ │ │ ├── portmacro.h
│ │ │ └── readme.txt
│ │ ├── RX600
│ │ │ ├── port.c
│ │ │ ├── port_asm.s
│ │ │ ├── portmacro.h
│ │ │ └── readme.txt
│ │ ├── RX700v3_DPFPU
│ │ │ ├── port.c
│ │ │ ├── portmacro.h
│ │ │ └── readme.txt
│ │ ├── RXv2
│ │ │ ├── port.c
│ │ │ ├── port_asm.s
│ │ │ ├── portmacro.h
│ │ │ └── readme.txt
│ │ ├── STR71x
│ │ │ ├── ISR_Support.h
│ │ │ ├── port.c
│ │ │ ├── portasm.s79
│ │ │ └── portmacro.h
│ │ ├── STR75x
│ │ │ ├── ISR_Support.h
│ │ │ ├── port.c
│ │ │ ├── portasm.s79
│ │ │ └── portmacro.h
│ │ ├── STR91x
│ │ │ ├── ISR_Support.h
│ │ │ ├── port.c
│ │ │ ├── portasm.s79
│ │ │ └── portmacro.h
│ │ └── V850ES
│ │ │ ├── ISR_Support.h
│ │ │ ├── port.c
│ │ │ ├── portasm.s85
│ │ │ ├── portasm_Fx3.s85
│ │ │ ├── portasm_Hx2.s85
│ │ │ └── portmacro.h
│ ├── Keil
│ │ └── See-also-the-RVDS-directory.txt
│ ├── MPLAB
│ │ ├── PIC18F
│ │ │ ├── port.c
│ │ │ ├── portmacro.h
│ │ │ └── stdio.h
│ │ ├── PIC24_dsPIC
│ │ │ ├── port.c
│ │ │ ├── portasm_PIC24.S
│ │ │ ├── portasm_dsPIC.S
│ │ │ └── portmacro.h
│ │ ├── PIC32MEC14xx
│ │ │ ├── ISR_Support.h
│ │ │ ├── port.c
│ │ │ ├── port_asm.S
│ │ │ └── portmacro.h
│ │ ├── PIC32MX
│ │ │ ├── ISR_Support.h
│ │ │ ├── port.c
│ │ │ ├── port_asm.S
│ │ │ └── portmacro.h
│ │ └── PIC32MZ
│ │ │ ├── ISR_Support.h
│ │ │ ├── port.c
│ │ │ ├── port_asm.S
│ │ │ └── portmacro.h
│ ├── MSVC-MingW
│ │ ├── port.c
│ │ └── portmacro.h
│ ├── MemMang
│ │ ├── ReadMe.url
│ │ ├── heap_1.c
│ │ ├── heap_2.c
│ │ ├── heap_3.c
│ │ ├── heap_4.c
│ │ └── heap_5.c
│ ├── MikroC
│ │ └── ARM_CM4F
│ │ │ ├── port.c
│ │ │ └── portmacro.h
│ ├── Paradigm
│ │ └── Tern_EE
│ │ │ ├── large_untested
│ │ │ ├── port.c
│ │ │ ├── portasm.h
│ │ │ └── portmacro.h
│ │ │ └── small
│ │ │ ├── port.c
│ │ │ ├── portasm.h
│ │ │ └── portmacro.h
│ ├── RVDS
│ │ ├── ARM7_LPC21xx
│ │ │ ├── port.c
│ │ │ ├── portASM.s
│ │ │ ├── portmacro.h
│ │ │ └── portmacro.inc
│ │ ├── ARM_CA9
│ │ │ ├── port.c
│ │ │ ├── portASM.s
│ │ │ ├── portmacro.h
│ │ │ └── portmacro.inc
│ │ ├── ARM_CM0
│ │ │ ├── port.c
│ │ │ └── portmacro.h
│ │ ├── ARM_CM3
│ │ │ ├── port.c
│ │ │ └── portmacro.h
│ │ ├── ARM_CM4F
│ │ │ ├── port.c
│ │ │ └── portmacro.h
│ │ ├── ARM_CM4_MPU
│ │ │ ├── mpu_wrappers_v2_asm.c
│ │ │ ├── port.c
│ │ │ └── portmacro.h
│ │ └── ARM_CM7
│ │ │ ├── ReadMe.txt
│ │ │ └── r0p1
│ │ │ ├── port.c
│ │ │ └── portmacro.h
│ ├── Renesas
│ │ ├── RX100
│ │ │ ├── port.c
│ │ │ ├── port_asm.src
│ │ │ ├── portmacro.h
│ │ │ └── readme.txt
│ │ ├── RX200
│ │ │ ├── port.c
│ │ │ ├── port_asm.src
│ │ │ ├── portmacro.h
│ │ │ └── readme.txt
│ │ ├── RX600
│ │ │ ├── port.c
│ │ │ ├── port_asm.src
│ │ │ ├── portmacro.h
│ │ │ └── readme.txt
│ │ ├── RX600v2
│ │ │ ├── port.c
│ │ │ ├── port_asm.src
│ │ │ ├── portmacro.h
│ │ │ └── readme.txt
│ │ ├── RX700v3_DPFPU
│ │ │ ├── port.c
│ │ │ ├── port_asm.src
│ │ │ ├── portmacro.h
│ │ │ └── readme.txt
│ │ └── SH2A_FPU
│ │ │ ├── ISR_Support.inc
│ │ │ ├── port.c
│ │ │ ├── portasm.src
│ │ │ └── portmacro.h
│ ├── Rowley
│ │ ├── ARM7
│ │ │ └── readme.txt
│ │ └── MSP430F449
│ │ │ ├── port.c
│ │ │ ├── portasm.h
│ │ │ ├── portext.asm
│ │ │ └── portmacro.h
│ ├── SDCC
│ │ └── Cygnal
│ │ │ ├── port.c
│ │ │ └── portmacro.h
│ ├── Softune
│ │ ├── MB91460
│ │ │ ├── __STD_LIB_sbrk.c
│ │ │ ├── port.c
│ │ │ └── portmacro.h
│ │ └── MB96340
│ │ │ ├── __STD_LIB_sbrk.c
│ │ │ ├── port.c
│ │ │ └── portmacro.h
│ ├── Tasking
│ │ └── ARM_CM4F
│ │ │ ├── port.c
│ │ │ ├── port_asm.asm
│ │ │ └── portmacro.h
│ ├── ThirdParty
│ │ ├── CDK
│ │ │ └── T-HEAD_CK802
│ │ │ │ ├── port.c
│ │ │ │ ├── portasm.S
│ │ │ │ └── portmacro.h
│ │ ├── Community-Supported-Ports
│ │ │ ├── CCRH
│ │ │ │ └── RH850_F1KM_S4
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── port.c
│ │ │ │ │ ├── portasm.s
│ │ │ │ │ └── portmacro.h
│ │ │ ├── CCS
│ │ │ │ └── C2000_C28x
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── port.c
│ │ │ │ │ ├── portasm.asm
│ │ │ │ │ └── portmacro.h
│ │ │ ├── GCC
│ │ │ │ ├── CORTEX_A53_64-bit_UltraScale_MPSoC
│ │ │ │ │ ├── ReadMe.txt
│ │ │ │ │ ├── bsp_patches
│ │ │ │ │ │ ├── ReadMe.txt
│ │ │ │ │ │ ├── boot.S
│ │ │ │ │ │ ├── cpu.c
│ │ │ │ │ │ ├── cpu.h
│ │ │ │ │ │ ├── scugic_v4_2_diff.png
│ │ │ │ │ │ ├── standalone_v7_2_diff.png
│ │ │ │ │ │ ├── xil-crt0.S
│ │ │ │ │ │ └── xscugic.c
│ │ │ │ │ ├── port.c
│ │ │ │ │ ├── portASM.S
│ │ │ │ │ ├── portZynqUltrascale.c
│ │ │ │ │ ├── port_asm_vectors.S
│ │ │ │ │ └── portmacro.h
│ │ │ │ ├── MSP430FR5969
│ │ │ │ │ ├── port.c
│ │ │ │ │ └── portmacro.h
│ │ │ │ ├── RISC-V
│ │ │ │ │ └── chip_specific_extensions
│ │ │ │ │ │ └── THEAD_RV32
│ │ │ │ │ │ └── freertos_risc_v_chip_specific_extensions.h
│ │ │ │ ├── RP2350_ARM_NTZ
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── FreeRTOS_Kernel_import.cmake
│ │ │ │ │ ├── LICENSE.md
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── library.cmake
│ │ │ │ │ ├── non_secure
│ │ │ │ │ │ ├── freertos_sdk_config.h
│ │ │ │ │ │ ├── mpu_wrappers_v2_asm.c
│ │ │ │ │ │ ├── port.c
│ │ │ │ │ │ ├── portasm.c
│ │ │ │ │ │ ├── portasm.h
│ │ │ │ │ │ ├── portmacro.h
│ │ │ │ │ │ ├── portmacrocommon.h
│ │ │ │ │ │ └── rp2040_config.h
│ │ │ │ │ └── pico_sdk_import.cmake
│ │ │ │ ├── RP2350_RISC-V
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── Documentation.url
│ │ │ │ │ ├── FreeRTOS_Kernel_import.cmake
│ │ │ │ │ ├── LICENSE.md
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── include
│ │ │ │ │ │ ├── freertos_risc_v_chip_specific_extensions.h
│ │ │ │ │ │ ├── freertos_sdk_config.h
│ │ │ │ │ │ ├── portContext.h
│ │ │ │ │ │ ├── portmacro.h
│ │ │ │ │ │ └── rp2040_config.h
│ │ │ │ │ ├── library.cmake
│ │ │ │ │ ├── notes.txt
│ │ │ │ │ ├── pico_sdk_import.cmake
│ │ │ │ │ ├── port.c
│ │ │ │ │ ├── portASM.S
│ │ │ │ │ └── readme.txt
│ │ │ │ └── TriCore_38xa
│ │ │ │ │ ├── port.c
│ │ │ │ │ ├── port.h
│ │ │ │ │ ├── portmacro.h
│ │ │ │ │ ├── porttrap.c
│ │ │ │ │ └── readme.txt
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ └── Z88DK
│ │ │ │ └── Z180
│ │ │ │ ├── port.c
│ │ │ │ ├── portmacro.h
│ │ │ │ └── readme.md
│ │ ├── GCC
│ │ │ ├── ARC_EM_HS
│ │ │ │ ├── arc_freertos_exceptions.c
│ │ │ │ ├── arc_freertos_exceptions.h
│ │ │ │ ├── arc_support.s
│ │ │ │ ├── freertos_tls.c
│ │ │ │ ├── port.c
│ │ │ │ └── portmacro.h
│ │ │ ├── ARC_v1
│ │ │ │ ├── arc_freertos_exceptions.c
│ │ │ │ ├── arc_freertos_exceptions.h
│ │ │ │ ├── arc_support.s
│ │ │ │ ├── port.c
│ │ │ │ └── portmacro.h
│ │ │ ├── ARM_TFM
│ │ │ │ ├── README.md
│ │ │ │ └── os_wrapper_freertos.c
│ │ │ ├── ATmega
│ │ │ │ ├── port.c
│ │ │ │ ├── portmacro.h
│ │ │ │ └── readme.md
│ │ │ ├── Posix
│ │ │ │ ├── FreeRTOS-simulator-for-Linux.url
│ │ │ │ ├── port.c
│ │ │ │ ├── portmacro.h
│ │ │ │ └── utils
│ │ │ │ │ ├── wait_for_event.c
│ │ │ │ │ └── wait_for_event.h
│ │ │ ├── RISC-V
│ │ │ │ └── README-for-info-on-official-MIT-license-port.txt
│ │ │ ├── RP2040
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── FreeRTOS_Kernel_import.cmake
│ │ │ │ ├── LICENSE.md
│ │ │ │ ├── README.md
│ │ │ │ ├── include
│ │ │ │ │ ├── freertos_sdk_config.h
│ │ │ │ │ ├── portmacro.h
│ │ │ │ │ └── rp2040_config.h
│ │ │ │ ├── library.cmake
│ │ │ │ ├── pico_sdk_import.cmake
│ │ │ │ └── port.c
│ │ │ └── Xtensa_ESP32
│ │ │ │ ├── FreeRTOS-openocd.c
│ │ │ │ ├── include
│ │ │ │ ├── FreeRTOSConfig_arch.h
│ │ │ │ ├── port_systick.h
│ │ │ │ ├── portbenchmark.h
│ │ │ │ ├── portmacro.h
│ │ │ │ ├── xt_asm_utils.h
│ │ │ │ ├── xtensa_api.h
│ │ │ │ ├── xtensa_config.h
│ │ │ │ ├── xtensa_context.h
│ │ │ │ ├── xtensa_rtos.h
│ │ │ │ └── xtensa_timer.h
│ │ │ │ ├── port.c
│ │ │ │ ├── port_common.c
│ │ │ │ ├── port_systick.c
│ │ │ │ ├── portasm.S
│ │ │ │ ├── portmux_impl.h
│ │ │ │ ├── portmux_impl.inc.h
│ │ │ │ ├── xtensa_context.S
│ │ │ │ ├── xtensa_init.c
│ │ │ │ ├── xtensa_loadstore_handler.S
│ │ │ │ ├── xtensa_overlay_os_hook.c
│ │ │ │ ├── xtensa_vector_defaults.S
│ │ │ │ └── xtensa_vectors.S
│ │ ├── KnownIssues.md
│ │ ├── Partner-Supported-Ports
│ │ │ ├── Cadence
│ │ │ │ └── Xtensa
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asm-offsets.c
│ │ │ │ │ ├── mpu.S
│ │ │ │ │ ├── port.c
│ │ │ │ │ ├── portasm.S
│ │ │ │ │ ├── portbenchmark.h
│ │ │ │ │ ├── portclib.c
│ │ │ │ │ ├── portmacro.h
│ │ │ │ │ ├── portmpu.c
│ │ │ │ │ ├── porttrace.h
│ │ │ │ │ ├── readme_xtensa.txt
│ │ │ │ │ ├── relnotes.txt
│ │ │ │ │ ├── xtensa_api.h
│ │ │ │ │ ├── xtensa_config.h
│ │ │ │ │ ├── xtensa_context.S
│ │ │ │ │ ├── xtensa_context.h
│ │ │ │ │ ├── xtensa_coproc_handler.S
│ │ │ │ │ ├── xtensa_intr.c
│ │ │ │ │ ├── xtensa_intr_asm.S
│ │ │ │ │ ├── xtensa_intr_wrapper.c
│ │ │ │ │ ├── xtensa_overlay_os_hook.c
│ │ │ │ │ ├── xtensa_rtos.h
│ │ │ │ │ ├── xtensa_timer.h
│ │ │ │ │ ├── xtensa_vectors.S
│ │ │ │ │ └── xtensa_vectors_xea3.S
│ │ │ ├── GCC
│ │ │ │ ├── AVR_AVRDx
│ │ │ │ │ ├── port.c
│ │ │ │ │ ├── porthardware.h
│ │ │ │ │ └── portmacro.h
│ │ │ │ └── AVR_Mega0
│ │ │ │ │ ├── port.c
│ │ │ │ │ ├── porthardware.h
│ │ │ │ │ └── portmacro.h
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── TI
│ │ │ │ └── CORTEX_A53_64-BIT_TI_AM64_SMP
│ │ │ │ │ ├── port.c
│ │ │ │ │ ├── portASM.S
│ │ │ │ │ └── portmacro.h
│ │ │ └── Tasking
│ │ │ │ └── AURIX_TC3xx
│ │ │ │ ├── port.c
│ │ │ │ └── portmacro.h
│ │ ├── README.md
│ │ ├── XCC
│ │ │ └── Xtensa
│ │ │ │ └── readme_xtensa.txt
│ │ └── xClang
│ │ │ └── XCOREAI
│ │ │ ├── port.c
│ │ │ ├── port.xc
│ │ │ ├── portasm.S
│ │ │ ├── portmacro.h
│ │ │ └── rtos_support_rtos_config.h
│ ├── WizC
│ │ └── PIC18
│ │ │ ├── Drivers
│ │ │ └── Tick
│ │ │ │ ├── Tick.c
│ │ │ │ └── isrTick.c
│ │ │ ├── Install.bat
│ │ │ ├── addFreeRTOS.h
│ │ │ ├── port.c
│ │ │ └── portmacro.h
│ ├── oWatcom
│ │ └── 16BitDOS
│ │ │ ├── Flsh186
│ │ │ ├── port.c
│ │ │ └── portmacro.h
│ │ │ ├── PC
│ │ │ ├── port.c
│ │ │ └── portmacro.h
│ │ │ └── common
│ │ │ ├── portasm.h
│ │ │ └── portcomn.c
│ ├── readme.txt
│ └── template
│ │ ├── port.c
│ │ └── portmacro.h
├── queue.c
├── sbom.spdx
├── stream_buffer.c
├── tasks.c
└── timers.c
└── gen_pack.sh
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 | - package-ecosystem: "github-actions"
4 | directory: ".github/workflows"
5 | schedule:
6 | interval: "weekly"
7 | open-pull-requests-limit: 10
8 | labels:
9 | - "dependencies"
10 | - "github-actions"
11 | commit-message:
12 | prefix: "chore"
13 | include: "scope"
14 |
--------------------------------------------------------------------------------
/.github/workflows/build.yaml:
--------------------------------------------------------------------------------
1 | name: Build documentation and pack
2 | on:
3 | workflow_dispatch:
4 | push:
5 | branches: [ main ]
6 | pull_request:
7 | branches: [ main ]
8 | release:
9 | types: [published]
10 | jobs:
11 | pack:
12 | name: Generate pack
13 | runs-on: ubuntu-24.04
14 | steps:
15 | - uses: actions/checkout@v4
16 | with:
17 | fetch-depth: 0
18 |
19 | - name: Fetch tags
20 | if: ${{ github.event_name == 'release' }}
21 | run: |
22 | git fetch --tags --force
23 |
24 | - uses: Open-CMSIS-Pack/gen-pack-action@main
25 | with:
26 | doxygen-version: 1.13.2 # default
27 | packchk-version: 1.3.95 # default
28 | gen-doc-script: ./Documentation/Doxygen/gen_doc.sh # skipped by default
29 | doc-path: ./Documentation/html # skipped by default
30 | gen-pack-script: ./gen_pack.sh --no-preprocess # skipped by default
31 | gen-pack-output: ./output # skipped by default
32 | gh-pages-branch: gh-pages # default
33 |
--------------------------------------------------------------------------------
/.github/workflows/examples.yaml:
--------------------------------------------------------------------------------
1 | name: Example
2 | on:
3 | workflow_dispatch:
4 | pull_request:
5 | paths:
6 | - .github/workflows/examples.yaml
7 | - CMSIS/RTOS2/FreeRTOS/Examples/*
8 | - CMSIS/RTOS2/FreeRTOS/Include/*
9 | - CMSIS/RTOS2/FreeRTOS/Source/*
10 | - Source/**/*
11 | - ARM.CMSIS-FreeRTOS.pdsc
12 | push:
13 | branches: [main]
14 |
15 | concurrency:
16 | group: ${{ github.workflow }}-${{ github.ref }}
17 | cancel-in-progress: true
18 |
19 | jobs:
20 | examples:
21 | strategy:
22 | fail-fast: true
23 | matrix:
24 | compiler: [AC6, GCC, CLANG]
25 |
26 | runs-on: ubuntu-24.04
27 |
28 | steps:
29 | - uses: actions/checkout@v4
30 |
31 | - name: Cache packs
32 | uses: actions/cache@v4
33 | with:
34 | key: packs-${{ github.run_id }}-${{ matrix.compiler }}
35 | restore-keys: |
36 | packs-
37 | path: /home/runner/.cache/arm/packs
38 |
39 | - name: Install LLVM dependencies and tools
40 | working-directory: /home/runner
41 | run: |
42 | sudo apt-get update
43 | sudo apt-get install libtinfo6
44 |
45 | - name: Prepare vcpkg env
46 | uses: ARM-software/cmsis-actions/vcpkg@main
47 | with:
48 | config: ./CMSIS/RTOS2/FreeRTOS/Examples/vcpkg-configuration.json
49 |
50 | - name: Activate Arm tool license
51 | run: |
52 | armlm activate --server https://mdk-preview.keil.arm.com --product KEMDK-COM0
53 |
54 | - uses: ammaraskar/gcc-problem-matcher@master
55 |
56 | - name: Register local pack
57 | run: |
58 | cpackget rm ARM.CMSIS-FreeRTOS || echo "Ok"
59 | cpackget add ./ARM.CMSIS-FreeRTOS.pdsc
60 |
61 | - name: Build exmples
62 | working-directory: ./CMSIS/RTOS2/FreeRTOS/Examples
63 | run: |
64 | cbuild Examples.csolution.yml --packs --update-rte --toolchain ${{ matrix.compiler }}
65 |
66 | - name: Deactivate Arm tool license
67 | if: always()
68 | run: |
69 | armlm deactivate --product KEMDK-COM0
70 |
--------------------------------------------------------------------------------
/.github/workflows/gh-pages.yml:
--------------------------------------------------------------------------------
1 | # Simple workflow for deploying static content to GitHub Pages
2 | name: Deploy static content to GitHub Pages
3 |
4 | on:
5 | # Runs on pushes targeting the default branch
6 | push:
7 | branches: [gh-pages]
8 |
9 | # Allows you to run this workflow manually from the Actions tab
10 | workflow_dispatch:
11 |
12 | # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
13 | permissions:
14 | contents: read
15 | pages: write
16 | id-token: write
17 |
18 | # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
19 | # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
20 | concurrency:
21 | group: "pages"
22 | cancel-in-progress: false
23 |
24 | jobs:
25 | # Single deploy job since we're just deploying
26 | deploy:
27 | environment:
28 | name: github-pages
29 | url: ${{ steps.deployment.outputs.page_url }}
30 | runs-on: ubuntu-latest
31 | steps:
32 | - name: Checkout
33 | uses: actions/checkout@v4
34 |
35 | - name: Setup Pages
36 | uses: actions/configure-pages@v5
37 |
38 | - name: Upload artifact
39 | uses: actions/upload-pages-artifact@v3
40 | with:
41 | # Upload entire repository
42 | path: '.'
43 |
44 | - name: Deploy to GitHub Pages
45 | id: deployment
46 | uses: actions/deploy-pages@v4
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Ignored documentation outputs
2 | Documentation/Doxygen/*.dxy
3 | Documentation/Doxygen/src/history.txt
4 | Documentation/html
5 |
6 | # Ignored IDE and cbuild outputs
7 | **/_*
8 | **/out
9 | **/tmp
10 | **.cbuild*.yml
11 | **.clangd
12 |
13 | # Ignored gen_pack outputs
14 | build
15 | output
16 | **/linkchecker-out.csv
17 |
18 | # Ignored libraries
19 | **.a
20 | **.lib
21 |
22 | # Other files and directories
23 | **.bak
24 | **.DS_STORE
25 | **.tar.bz2
26 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/App/Hello/Hello.cproject.yml:
--------------------------------------------------------------------------------
1 | project:
2 | description: Hello World example
3 |
4 | packs:
5 | - pack: ARM::CMSIS@>=6.0.0
6 | - pack: ARM::Cortex_DFP
7 | - pack: ARM::CMSIS-FreeRTOS
8 | - pack: ARM::CMSIS-View
9 |
10 | components:
11 | - component: CMSIS:CORE
12 | - component: CMSIS:OS Tick:SysTick
13 | - component: CMSIS:RTOS2:FreeRTOS&Cortex-M
14 | - component: CMSIS-View:Event Recorder&Semihosting
15 |
16 | - component: RTOS&FreeRTOS:Core&Cortex-M
17 | - component: RTOS&FreeRTOS:Config&CMSIS RTOS2
18 | - component: RTOS&FreeRTOS:Event Groups
19 | - component: RTOS&FreeRTOS:Heap&Heap_4
20 | - component: RTOS&FreeRTOS:Timers
21 |
22 | groups:
23 | - group: Documentation
24 | files:
25 | - file: README.md
26 | - group: Application
27 | files:
28 | - file: hello.c
29 | - group: Board
30 | files:
31 | - file: main.c
32 |
33 | layers:
34 | - layer: $Target-Layer$
35 | type: Target
36 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/App/Hello/README.md:
--------------------------------------------------------------------------------
1 | # Hello World Application
2 | This example prints "Hello World" and a counter value via the standard output. It
3 | can be used as a starting point when developing new applications.
4 |
5 | ### Functionality
6 | The application initializes CMSIS-RTOS2, creates the main application thread and starts
7 | the RTOS scheduler. The application thread increments a counter and outputs it together
8 | with the counter value.
9 |
10 | ### Output
11 | The "Hello World" string, along with the counter value, is output via printf and
12 | retargeted to the debug console.
13 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/App/Hello/RTE/CMSIS-View/EventRecorderConf.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016-2021 Arm Limited. All rights reserved.
3 | *
4 | * SPDX-License-Identifier: Apache-2.0
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the License); you may
7 | * not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT
14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | *
18 | * Name: EventRecorderConf.h
19 | * Purpose: Event Recorder software component configuration options
20 | * Rev.: V1.1.0
21 | */
22 |
23 | //-------- <<< Use Configuration Wizard in Context Menu >>> --------------------
24 |
25 | // Event Recorder
26 |
27 | // Number of Records
28 | // <8=>8 <16=>16 <32=>32 <64=>64 <128=>128 <256=>256 <512=>512 <1024=>1024
29 | // <2048=>2048 <4096=>4096 <8192=>8192 <16384=>16384 <32768=>32768
30 | // <65536=>65536
31 | // Configures size of Event Record Buffer (each record is 16 bytes)
32 | // Must be 2^n (min=8, max=65536)
33 | #define EVENT_RECORD_COUNT 256U
34 |
35 | // Time Stamp Source
36 | // <0=> DWT Cycle Counter <1=> SysTick <2=> CMSIS-RTOS2 System Timer
37 | // <3=> User Timer (Normal Reset) <4=> User Timer (Power-On Reset)
38 | // Selects source for 32-bit time stamp
39 | #define EVENT_TIMESTAMP_SOURCE 0
40 |
41 | // Time Stamp Clock Frequency [Hz] <0-1000000000>
42 | // Defines initial time stamp clock frequency (0 when not used)
43 | #define EVENT_TIMESTAMP_FREQ 0U
44 |
45 | //
46 |
47 | //------------- <<< end of configuration section >>> ---------------------------
48 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/App/Hello/RTE/CMSIS-View/EventRecorderConf.h.base@1.1.0:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016-2021 Arm Limited. All rights reserved.
3 | *
4 | * SPDX-License-Identifier: Apache-2.0
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the License); you may
7 | * not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT
14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | *
18 | * Name: EventRecorderConf.h
19 | * Purpose: Event Recorder software component configuration options
20 | * Rev.: V1.1.0
21 | */
22 |
23 | //-------- <<< Use Configuration Wizard in Context Menu >>> --------------------
24 |
25 | // Event Recorder
26 |
27 | // Number of Records
28 | // <8=>8 <16=>16 <32=>32 <64=>64 <128=>128 <256=>256 <512=>512 <1024=>1024
29 | // <2048=>2048 <4096=>4096 <8192=>8192 <16384=>16384 <32768=>32768
30 | // <65536=>65536
31 | // Configures size of Event Record Buffer (each record is 16 bytes)
32 | // Must be 2^n (min=8, max=65536)
33 | #define EVENT_RECORD_COUNT 64U
34 |
35 | // Time Stamp Source
36 | // <0=> DWT Cycle Counter <1=> SysTick <2=> CMSIS-RTOS2 System Timer
37 | // <3=> User Timer (Normal Reset) <4=> User Timer (Power-On Reset)
38 | // Selects source for 32-bit time stamp
39 | #define EVENT_TIMESTAMP_SOURCE 0
40 |
41 | // Time Stamp Clock Frequency [Hz] <0-1000000000>
42 | // Defines initial time stamp clock frequency (0 when not used)
43 | #define EVENT_TIMESTAMP_FREQ 0U
44 |
45 | //
46 |
47 | //------------- <<< end of configuration section >>> ---------------------------
48 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/App/Hello/hello.c:
--------------------------------------------------------------------------------
1 | /*---------------------------------------------------------------------------
2 | * Copyright (c) 2024 Arm Limited (or its affiliates). All rights reserved.
3 | *
4 | * SPDX-License-Identifier: Apache-2.0
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the License); you may
7 | * not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT
14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | *---------------------------------------------------------------------------*/
18 |
19 | #include
20 | #include "main.h"
21 | #include "cmsis_os2.h"
22 |
23 | /*---------------------------------------------------------------------------
24 | * Application main thread
25 | *---------------------------------------------------------------------------*/
26 | static void app_main (void *argument) {
27 | (void)argument;
28 |
29 | for(int count = 0; count < 10; count++) {
30 | printf("Hello World %d\r\n", count);
31 | osDelay(1000U);
32 | }
33 | osDelay(osWaitForever);
34 | }
35 |
36 | /*---------------------------------------------------------------------------
37 | * Application initialization
38 | *---------------------------------------------------------------------------*/
39 | void app_initialize (void) {
40 | osThreadNew(app_main, NULL, NULL);
41 | }
42 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/App/Hello/main.c:
--------------------------------------------------------------------------------
1 | /*---------------------------------------------------------------------------
2 | * Copyright (c) 2021-2023 Arm Limited (or its affiliates).
3 | * All rights reserved.
4 | *
5 | * SPDX-License-Identifier: Apache-2.0
6 | *
7 | * Licensed under the Apache License, Version 2.0 (the License); you may
8 | * not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT
15 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | *---------------------------------------------------------------------------*/
19 |
20 | #include "RTE_Components.h"
21 | #include CMSIS_device_header
22 | #include "cmsis_os2.h"
23 |
24 | #include "main.h"
25 |
26 | int main (void) {
27 |
28 | osKernelInitialize(); // Initialize CMSIS-RTOS2
29 | app_initialize(); // Initialize application
30 | osKernelStart(); // Start thread execution
31 |
32 | for (;;) {}
33 | }
34 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/App/Hello/main.h:
--------------------------------------------------------------------------------
1 | /*---------------------------------------------------------------------------
2 | * Copyright (c) 2021-2023 Arm Limited (or its affiliates).
3 | * All rights reserved.
4 | *
5 | * SPDX-License-Identifier: Apache-2.0
6 | *
7 | * Licensed under the Apache License, Version 2.0 (the License); you may
8 | * not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT
15 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | *---------------------------------------------------------------------------*/
19 |
20 | #ifndef MAIN_H__
21 | #define MAIN_H__
22 |
23 | /* Prototypes */
24 | extern void app_initialize (void);
25 |
26 | #endif
27 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/App/TrustZone/NonSecure/README.md:
--------------------------------------------------------------------------------
1 | # TrustZone NonSecure Application
2 | The TrustZone Non-Secure example project shows the setup of the CMSIS-RTOS2 FreeRTOS
3 | application for Armv8-M TrustZone. It demonstrates how the Non-Secure application uses
4 | the Arm CMSE interface to communicate with the Secure application via function calls.
5 |
6 | > **Note:**
7 | > - The TrustZone Secure example project must be used together with Non-Secure project
8 | > to successfully execute the application on target.
9 |
10 | ### Functionality
11 | The application executes CMSIS-RTOS2 thread which calls a secure side function from
12 | the non-secure side. The secure function then calls back to a non-secure side. The
13 | return value of the secure function is the value of a counter variable stored on
14 | the secure side.
15 |
16 | ### Output
17 | Counter values used in this application are output via printf and retargeted to debug
18 | console.
19 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/App/TrustZone/NonSecure/RTE/CMSIS-View/EventRecorderConf.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016-2021 Arm Limited. All rights reserved.
3 | *
4 | * SPDX-License-Identifier: Apache-2.0
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the License); you may
7 | * not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT
14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | *
18 | * Name: EventRecorderConf.h
19 | * Purpose: Event Recorder software component configuration options
20 | * Rev.: V1.1.0
21 | */
22 |
23 | //-------- <<< Use Configuration Wizard in Context Menu >>> --------------------
24 |
25 | // Event Recorder
26 |
27 | // Number of Records
28 | // <8=>8 <16=>16 <32=>32 <64=>64 <128=>128 <256=>256 <512=>512 <1024=>1024
29 | // <2048=>2048 <4096=>4096 <8192=>8192 <16384=>16384 <32768=>32768
30 | // <65536=>65536
31 | // Configures size of Event Record Buffer (each record is 16 bytes)
32 | // Must be 2^n (min=8, max=65536)
33 | #define EVENT_RECORD_COUNT 256U
34 |
35 | // Time Stamp Source
36 | // <0=> DWT Cycle Counter <1=> SysTick <2=> CMSIS-RTOS2 System Timer
37 | // <3=> User Timer (Normal Reset) <4=> User Timer (Power-On Reset)
38 | // Selects source for 32-bit time stamp
39 | #define EVENT_TIMESTAMP_SOURCE 0
40 |
41 | // Time Stamp Clock Frequency [Hz] <0-1000000000>
42 | // Defines initial time stamp clock frequency (0 when not used)
43 | #define EVENT_TIMESTAMP_FREQ 0U
44 |
45 | //
46 |
47 | //------------- <<< end of configuration section >>> ---------------------------
48 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/App/TrustZone/NonSecure/RTE/CMSIS-View/EventRecorderConf.h.base@1.1.0:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016-2021 Arm Limited. All rights reserved.
3 | *
4 | * SPDX-License-Identifier: Apache-2.0
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the License); you may
7 | * not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT
14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | *
18 | * Name: EventRecorderConf.h
19 | * Purpose: Event Recorder software component configuration options
20 | * Rev.: V1.1.0
21 | */
22 |
23 | //-------- <<< Use Configuration Wizard in Context Menu >>> --------------------
24 |
25 | // Event Recorder
26 |
27 | // Number of Records
28 | // <8=>8 <16=>16 <32=>32 <64=>64 <128=>128 <256=>256 <512=>512 <1024=>1024
29 | // <2048=>2048 <4096=>4096 <8192=>8192 <16384=>16384 <32768=>32768
30 | // <65536=>65536
31 | // Configures size of Event Record Buffer (each record is 16 bytes)
32 | // Must be 2^n (min=8, max=65536)
33 | #define EVENT_RECORD_COUNT 64U
34 |
35 | // Time Stamp Source
36 | // <0=> DWT Cycle Counter <1=> SysTick <2=> CMSIS-RTOS2 System Timer
37 | // <3=> User Timer (Normal Reset) <4=> User Timer (Power-On Reset)
38 | // Selects source for 32-bit time stamp
39 | #define EVENT_TIMESTAMP_SOURCE 0
40 |
41 | // Time Stamp Clock Frequency [Hz] <0-1000000000>
42 | // Defines initial time stamp clock frequency (0 when not used)
43 | #define EVENT_TIMESTAMP_FREQ 0U
44 |
45 | //
46 |
47 | //------------- <<< end of configuration section >>> ---------------------------
48 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/App/TrustZone/NonSecure/TZ_NonSecure.cproject.yml:
--------------------------------------------------------------------------------
1 | project:
2 |
3 | processor:
4 | trustzone: non-secure
5 |
6 | packs:
7 | - pack: ARM::CMSIS@>=6.0.0
8 | - pack: ARM::CMSIS-FreeRTOS
9 | - pack: ARM::CMSIS-View
10 |
11 | components:
12 | - component: CMSIS:CORE
13 | - component: CMSIS:OS Tick:SysTick
14 | - component: CMSIS:RTOS2:FreeRTOS&Cortex-M
15 | - component: CMSIS-View:Event Recorder&Semihosting
16 |
17 | - component: RTOS&FreeRTOS:Core&Cortex-M
18 | - component: RTOS&FreeRTOS:Config&CMSIS RTOS2
19 | - component: RTOS&FreeRTOS:Event Groups
20 | - component: RTOS&FreeRTOS:Heap&Heap_4
21 | - component: RTOS&FreeRTOS:Timers
22 |
23 | groups:
24 | - group: Documentation
25 | files:
26 | - file: ../README.md
27 |
28 | - group: Non-secure Code
29 | files:
30 | - file: main_ns.c
31 |
32 | - group: Secure Library
33 | files:
34 | - file: ../Secure/library_nsc.h
35 | - file: $cmse-lib(TZ_Secure)$
36 |
37 | layers:
38 | - layer: $Target-Layer$
39 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/App/TrustZone/README.md:
--------------------------------------------------------------------------------
1 | # TrustZone: secure/non-secure thread context management
2 |
3 | TrustZone example shows application setup for secure/non-secure thread context management.
4 | It is divided into two parts:
5 | - Secure application
6 | - Non-secure application
7 |
8 | ## Secure Application
9 |
10 | Secure application does initial setup and starts the non-secure application. It contains functions
11 | that can be called from the non-secure application. The interface for these (non-secure callable)
12 | functions is provided as "CMSE lib" object file, which is integrated into the non-secure application.
13 |
14 | ## Non-secure Application
15 |
16 | Non-secure application initializes RTOS and executes thread that calls secure function. In addition
17 | it also contains a callback function which gets called from the secure application.
18 |
19 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/App/TrustZone/Secure/README.md:
--------------------------------------------------------------------------------
1 | # TrustZone Secure Application
2 | The TrustZone Secure example project shows the setup of the CMSIS-RTOS2 FreeRTOS
3 | application for Armv8-M TrustZone. It demonstrates how the Secure application boots
4 | from the secure side and passes the execution to the application running on the
5 | non-secure side. It also shows how to define secure side functions that can be called
6 | from the non-secure side application.
7 |
8 | ### Functionality
9 | The application sets the stack for the non-secure side and then calls the Reset Handler on
10 | the non-secure side. It also provides the function that is declared as a non-secure
11 | callable function (i.e. it can be called from the non-secure side application).
12 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/App/TrustZone/Secure/TZ_Secure.cproject.yml:
--------------------------------------------------------------------------------
1 | project:
2 |
3 | processor:
4 | trustzone: secure
5 |
6 | packs:
7 | - pack: ARM::CMSIS@>=6.0.0
8 | - pack: ARM::CMSIS-FreeRTOS
9 |
10 | components:
11 | - component: CMSIS:CORE
12 | - component: RTOS&FreeRTOS:TrustZone
13 |
14 | groups:
15 | - group: Documentation
16 | files:
17 | - file: ../README.md
18 |
19 | - group: Secure Code
20 | files:
21 | - file: main_s.c
22 |
23 | - group: Secure Library
24 | files:
25 | - file: library_nsc.c
26 |
27 | layers:
28 | - layer: $Target-Layer$
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/App/TrustZone/Secure/library_nsc.c:
--------------------------------------------------------------------------------
1 | /* --------------------------------------------------------------------------
2 | * Copyright (c) 2013-2019 Arm Limited. All rights reserved.
3 | *
4 | * SPDX-License-Identifier: Apache-2.0
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the License); you may
7 | * not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT
14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | *
18 | * Name: library_nsc.c
19 | * Purpose: Example function callable from the non-secure domain
20 | *
21 | *---------------------------------------------------------------------------*/
22 |
23 | #include
24 | #include "secure_port_macros.h" // ARM.FreeRTOS::RTOS:TrustZone
25 |
26 | #include "library_nsc.h" // Non-secure callable function definition
27 |
28 | /* Non-secure function pointer type */
29 | typedef void (*NS_Func_t) (void) __attribute__((cmse_nonsecure_call));
30 |
31 |
32 | /* Secure counter */
33 | static uint32_t Count_S = 0U;
34 |
35 | /* Function that can be called from the non-secure application */
36 | secureportNON_SECURE_CALLABLE uint32_t Func_NSC (Callback_t callback) {
37 | NS_Func_t ns_callback;
38 |
39 | /* Create function pointer to call back non-secure domain */
40 | ns_callback = (NS_Func_t)cmse_nsfptr_create(callback);
41 |
42 | /* Execute callback function */
43 | ns_callback();
44 |
45 | Count_S += 1U;
46 |
47 | /* Return secure counter value */
48 | return Count_S;
49 | }
50 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/App/TrustZone/Secure/library_nsc.h:
--------------------------------------------------------------------------------
1 | /* --------------------------------------------------------------------------
2 | * Copyright (c) 2013-2019 Arm Limited. All rights reserved.
3 | *
4 | * SPDX-License-Identifier: Apache-2.0
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the License); you may
7 | * not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT
14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | *
18 | * Name: library_nsc.h
19 | * Purpose: Example function callable from the non-secure domain
20 | *
21 | *---------------------------------------------------------------------------*/
22 |
23 | #ifndef LIBRARY_NSC_H__
24 | #define LIBRARY_NSC_H__
25 |
26 | #include
27 |
28 | /* Callback function pointer type */
29 | typedef void (*Callback_t) (void);
30 |
31 |
32 | /*
33 | Secure function that executes:
34 | - callback to the non-secure application
35 | - increments secure counter and return its value
36 | */
37 | uint32_t Func_NSC (Callback_t callback);
38 |
39 | #endif /* LIBRARY_NSC */
40 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/App/TrustZone/Secure/main_s.c:
--------------------------------------------------------------------------------
1 | /* --------------------------------------------------------------------------
2 | * Copyright (c) 2013-2022 Arm Limited. All rights reserved.
3 | *
4 | * SPDX-License-Identifier: Apache-2.0
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the License); you may
7 | * not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT
14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | *
18 | * Name: main_s.c
19 | * Purpose: TrustZone Secure Domain example program
20 | *
21 | *---------------------------------------------------------------------------*/
22 |
23 | #include
24 | #include
25 | #include "secure_port_macros.h" // ARM.FreeRTOS::RTOS:TrustZone
26 |
27 |
28 | /* Start address of non-secure application */
29 | #ifndef NS_APP_START_ADDRESS
30 | #define NS_APP_START_ADDRESS (0x00000000)
31 | #endif
32 |
33 | /* Non-secure function pointer type */
34 | typedef void (*NS_Func_t) (void) __attribute__((cmse_nonsecure_call));
35 |
36 | /*
37 | Fist entry in the non-secure vector table is the Main Stack Pointer:
38 | *((uint32_t *)(NS_APP_START_ADDRESS)) == MSP_NS
39 |
40 | Second entry in the non-secure vector table is the Reset Handler:
41 | *((uint32_t *)(NS_APP_START_ADDRESS + 4U)) == Reset_Handler
42 | */
43 |
44 |
45 | int main (void) {
46 | NS_Func_t ResetHandler_NS;
47 |
48 | /* Set Main Stack Pointer for the non-secure side (MSP_NS) */
49 | secureportSET_MSP_NS (*((uint32_t *)(NS_APP_START_ADDRESS)));
50 |
51 | /* Set address of the non-secure Reset Handler */
52 | ResetHandler_NS = (NS_Func_t)(*((uint32_t *)(NS_APP_START_ADDRESS + 4U)));
53 |
54 | /* Call non-secure Reset Handler and start executing non-secure application */
55 | ResetHandler_NS();
56 |
57 | /* Non-secure application does not return */
58 | for (;;){;}
59 | }
60 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM0/RTE/Device/ARMCM0/regions_ARMCM0.h:
--------------------------------------------------------------------------------
1 | #ifndef REGIONS_ARMCM0_H
2 | #define REGIONS_ARMCM0_H
3 |
4 |
5 | //-------- <<< Use Configuration Wizard in Context Menu >>> --------------------
6 |
7 | // Device pack: ARM::Cortex_DFP@1.0.0
8 | // Device pack used to generate this file
9 |
10 | // ROM Configuration
11 | // =======================
12 | // ROM=<__ROM0>
13 | // Base address <0x0-0xFFFFFFFF:8>
14 | // Defines base address of memory region.
15 | // Default: 0x00000000
16 | #define __ROM0_BASE 0x00000000
17 | // Region size [bytes] <0x0-0xFFFFFFFF:8>
18 | // Defines size of memory region.
19 | // Default: 0x00040000
20 | #define __ROM0_SIZE 0x00400000
21 | // Default region
22 | // Enables memory region globally for the application.
23 | #define __ROM0_DEFAULT 1
24 | // Startup
25 | // Selects region to be used for startup code.
26 | #define __ROM0_STARTUP 1
27 | //
28 |
29 | //
30 |
31 | // RAM Configuration
32 | // =======================
33 | // RAM=<__RAM0>
34 | // Base address <0x0-0xFFFFFFFF:8>
35 | // Defines base address of memory region.
36 | // Default: 0x20000000
37 | #define __RAM0_BASE 0x20000000
38 | // Region size [bytes] <0x0-0xFFFFFFFF:8>
39 | // Defines size of memory region.
40 | // Default: 0x00020000
41 | #define __RAM0_SIZE 0x00400000
42 | // Default region
43 | // Enables memory region globally for the application.
44 | #define __RAM0_DEFAULT 1
45 | // No zero initialize
46 | // Excludes region from zero initialization.
47 | #define __RAM0_NOINIT 0
48 | //
49 |
50 | //
51 |
52 | // Stack / Heap Configuration
53 | // Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
54 | // Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
55 | #define __STACK_SIZE 0x00001000
56 | #define __HEAP_SIZE 0x00010000
57 | //
58 |
59 |
60 | #endif /* REGIONS_ARMCM0_H */
61 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM0/RTE/Device/ARMCM0/system_ARMCM0.c:
--------------------------------------------------------------------------------
1 | /**************************************************************************//**
2 | * @file system_ARMCM0.c
3 | * @brief CMSIS Device System Source File for
4 | * ARMCM0 Device
5 | * @version V1.0.0
6 | * @date 09. July 2018
7 | ******************************************************************************/
8 | /*
9 | * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
10 | *
11 | * SPDX-License-Identifier: Apache-2.0
12 | *
13 | * Licensed under the Apache License, Version 2.0 (the License); you may
14 | * not use this file except in compliance with the License.
15 | * You may obtain a copy of the License at
16 | *
17 | * www.apache.org/licenses/LICENSE-2.0
18 | *
19 | * Unless required by applicable law or agreed to in writing, software
20 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT
21 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22 | * See the License for the specific language governing permissions and
23 | * limitations under the License.
24 | */
25 |
26 | #include "ARMCM0.h"
27 |
28 | /*----------------------------------------------------------------------------
29 | Define clocks
30 | *----------------------------------------------------------------------------*/
31 | #define XTAL (50000000UL) /* Oscillator frequency */
32 |
33 | #define SYSTEM_CLOCK (XTAL / 2U)
34 |
35 |
36 | /*----------------------------------------------------------------------------
37 | System Core Clock Variable
38 | *----------------------------------------------------------------------------*/
39 | uint32_t SystemCoreClock = SYSTEM_CLOCK; /* System Core Clock Frequency */
40 |
41 |
42 | /*----------------------------------------------------------------------------
43 | System Core Clock update function
44 | *----------------------------------------------------------------------------*/
45 | void SystemCoreClockUpdate (void)
46 | {
47 | SystemCoreClock = SYSTEM_CLOCK;
48 | }
49 |
50 | /*----------------------------------------------------------------------------
51 | System initialization function
52 | *----------------------------------------------------------------------------*/
53 | void SystemInit (void)
54 | {
55 | SystemCoreClock = SYSTEM_CLOCK;
56 | }
57 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM0/RTE/Device/ARMCM0/system_ARMCM0.c.base@1.0.0:
--------------------------------------------------------------------------------
1 | /**************************************************************************//**
2 | * @file system_ARMCM0.c
3 | * @brief CMSIS Device System Source File for
4 | * ARMCM0 Device
5 | * @version V1.0.0
6 | * @date 09. July 2018
7 | ******************************************************************************/
8 | /*
9 | * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
10 | *
11 | * SPDX-License-Identifier: Apache-2.0
12 | *
13 | * Licensed under the Apache License, Version 2.0 (the License); you may
14 | * not use this file except in compliance with the License.
15 | * You may obtain a copy of the License at
16 | *
17 | * www.apache.org/licenses/LICENSE-2.0
18 | *
19 | * Unless required by applicable law or agreed to in writing, software
20 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT
21 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22 | * See the License for the specific language governing permissions and
23 | * limitations under the License.
24 | */
25 |
26 | #include "ARMCM0.h"
27 |
28 | /*----------------------------------------------------------------------------
29 | Define clocks
30 | *----------------------------------------------------------------------------*/
31 | #define XTAL (50000000UL) /* Oscillator frequency */
32 |
33 | #define SYSTEM_CLOCK (XTAL / 2U)
34 |
35 |
36 | /*----------------------------------------------------------------------------
37 | System Core Clock Variable
38 | *----------------------------------------------------------------------------*/
39 | uint32_t SystemCoreClock = SYSTEM_CLOCK; /* System Core Clock Frequency */
40 |
41 |
42 | /*----------------------------------------------------------------------------
43 | System Core Clock update function
44 | *----------------------------------------------------------------------------*/
45 | void SystemCoreClockUpdate (void)
46 | {
47 | SystemCoreClock = SYSTEM_CLOCK;
48 | }
49 |
50 | /*----------------------------------------------------------------------------
51 | System initialization function
52 | *----------------------------------------------------------------------------*/
53 | void SystemInit (void)
54 | {
55 | SystemCoreClock = SYSTEM_CLOCK;
56 | }
57 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM0/Target.clayer.yml:
--------------------------------------------------------------------------------
1 | layer:
2 | type: Target
3 | description: Cortex-M0 target components and files
4 |
5 | packs:
6 | - pack: ARM::Cortex_DFP
7 |
8 | for-device: ARMCM0
9 |
10 | components:
11 | - component: Device:Startup&C Startup
12 |
13 | linker:
14 | - regions: RTE/Device/$Dname$/regions_$Dname$.h
15 |
16 | groups:
17 | - group: FVP
18 | files:
19 | - file: ./fvp_config.txt
20 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM0/fvp_config.txt:
--------------------------------------------------------------------------------
1 | # Parameters:
2 | # instance.parameter=value #(type, mode) default = 'def value' : description : [min..max]
3 | #------------------------------------------------------------------------------
4 | armcortexm0ct.semihosting-Thumb_SVC=0xAB # (int , init-time) default = '0xab' : T32 SVC number for semihosting
5 | armcortexm0ct.semihosting-cmd_line= # (string, init-time) default = '' : Command line available to semihosting SVC calls
6 | armcortexm0ct.semihosting-cwd= # (string, init-time) default = '' : Base directory for semihosting file access.
7 | armcortexm0ct.semihosting-enable=1 # (bool , init-time) default = '1' : Enable semihosting SVC traps. Applications that do not use semihosting must set this parameter to false.
8 | armcortexm0ct.semihosting-heap_base=0 # (int , init-time) default = '0x0' : Virtual address of heap base
9 | armcortexm0ct.semihosting-heap_limit=0 # (int , init-time) default = '0x20700000' : Virtual address of top of heap
10 | armcortexm0ct.semihosting-stack_base=0 # (int , init-time) default = '0x20800000' : Virtual address of base of descending stack
11 | armcortexm0ct.semihosting-stack_limit=0 # (int , init-time) default = '0x20700000' : Virtual address of stack limit
12 | fvp_mps2.mps2_visualisation.disable-visualisation=1 # (bool , init-time) default = '0' : Enable/disable visualisation
13 | fvp_mps2.telnetterminal0.start_telnet=0 # (bool , init-time) default = '1' : Start telnet if nothing connected
14 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM0plus/RTE/Device/ARMCM0P/regions_ARMCM0P.h:
--------------------------------------------------------------------------------
1 | #ifndef REGIONS_ARMCM0P_H
2 | #define REGIONS_ARMCM0P_H
3 |
4 |
5 | //-------- <<< Use Configuration Wizard in Context Menu >>> --------------------
6 |
7 | // Device pack: ARM::Cortex_DFP@1.0.0
8 | // Device pack used to generate this file
9 |
10 | // ROM Configuration
11 | // =======================
12 | // ROM=<__ROM0>
13 | // Base address <0x0-0xFFFFFFFF:8>
14 | // Defines base address of memory region.
15 | // Default: 0x00000000
16 | #define __ROM0_BASE 0x00000000
17 | // Region size [bytes] <0x0-0xFFFFFFFF:8>
18 | // Defines size of memory region.
19 | // Default: 0x00040000
20 | #define __ROM0_SIZE 0x00400000
21 | // Default region
22 | // Enables memory region globally for the application.
23 | #define __ROM0_DEFAULT 1
24 | // Startup
25 | // Selects region to be used for startup code.
26 | #define __ROM0_STARTUP 1
27 | //
28 |
29 | //
30 |
31 | // RAM Configuration
32 | // =======================
33 | // RAM=<__RAM0>
34 | // Base address <0x0-0xFFFFFFFF:8>
35 | // Defines base address of memory region.
36 | // Default: 0x20000000
37 | #define __RAM0_BASE 0x20000000
38 | // Region size [bytes] <0x0-0xFFFFFFFF:8>
39 | // Defines size of memory region.
40 | // Default: 0x00020000
41 | #define __RAM0_SIZE 0x00400000
42 | // Default region
43 | // Enables memory region globally for the application.
44 | #define __RAM0_DEFAULT 1
45 | // No zero initialize
46 | // Excludes region from zero initialization.
47 | #define __RAM0_NOINIT 0
48 | //
49 |
50 | //
51 |
52 | // Stack / Heap Configuration
53 | // Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
54 | // Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
55 | #define __STACK_SIZE 0x00001000
56 | #define __HEAP_SIZE 0x00010000
57 | //
58 |
59 |
60 | #endif /* REGIONS_ARMCM0P_H */
61 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM0plus/Target.clayer.yml:
--------------------------------------------------------------------------------
1 | layer:
2 | type: Target
3 | description: Cortex-M0+ target components and files
4 |
5 | packs:
6 | - pack: ARM::Cortex_DFP
7 |
8 | for-device: ARMCM0P
9 |
10 | components:
11 | - component: Device:Startup&C Startup
12 |
13 | linker:
14 | - regions: RTE/Device/$Dname$/regions_$Dname$.h
15 |
16 | groups:
17 | - group: FVP
18 | files:
19 | - file: ./fvp_config.txt
20 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM0plus/fvp_config.txt:
--------------------------------------------------------------------------------
1 | # Parameters:
2 | # instance.parameter=value #(type, mode) default = 'def value' : description : [min..max]
3 | #------------------------------------------------------------------------------
4 | armcortexm0plusct.VTOR=0 # (bool , init-time) default = '0' : Include Vector Table Offset Register
5 | armcortexm0plusct.semihosting-Thumb_SVC=0xAB # (int , init-time) default = '0xab' : T32 SVC number for semihosting
6 | armcortexm0plusct.semihosting-cmd_line= # (string, init-time) default = '' : Command line available to semihosting SVC calls
7 | armcortexm0plusct.semihosting-cwd= # (string, init-time) default = '' : Base directory for semihosting file access.
8 | armcortexm0plusct.semihosting-enable=1 # (bool , init-time) default = '1' : Enable semihosting SVC traps. Applications that do not use semihosting must set this parameter to false.
9 | armcortexm0plusct.semihosting-heap_base=0 # (int , init-time) default = '0x0' : Virtual address of heap base
10 | armcortexm0plusct.semihosting-heap_limit=0 # (int , init-time) default = '0x20700000' : Virtual address of top of heap
11 | armcortexm0plusct.semihosting-stack_base=0 # (int , init-time) default = '0x20800000' : Virtual address of base of descending stack
12 | armcortexm0plusct.semihosting-stack_limit=0 # (int , init-time) default = '0x20700000' : Virtual address of stack limit
13 | fvp_mps2.mps2_visualisation.disable-visualisation=1 # (bool , init-time) default = '0' : Enable/disable visualisation
14 | fvp_mps2.telnetterminal0.start_telnet=0 # (bool , init-time) default = '1' : Start telnet if nothing connected
15 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM23/Target.clayer.yml:
--------------------------------------------------------------------------------
1 | layer:
2 | type: Target
3 | description: Cortex-M23 with TrustZone target components and files
4 |
5 | packs:
6 | - pack: ARM::Cortex_DFP
7 |
8 | for-device: ARMCM23
9 |
10 | components:
11 | - component: Device:Startup&C Startup
12 |
13 | linker:
14 | - regions: RTE/Device/$Dname$/regions_$Dname$.h
15 |
16 | groups:
17 | - group: FVP
18 | files:
19 | - file: ./fvp_config.txt
20 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM23_noTZ/Target.clayer.yml:
--------------------------------------------------------------------------------
1 | layer:
2 | type: Target
3 | description: Cortex-M23 target components and files
4 |
5 | packs:
6 | - pack: ARM::Cortex_DFP
7 |
8 | for-device: ARMCM23
9 | processor:
10 | trustzone: off
11 |
12 | components:
13 | - component: Device:Startup&C Startup
14 |
15 | linker:
16 | - regions: RTE/Device/$Dname$/regions_$Dname$.h
17 |
18 | groups:
19 | - group: FVP
20 | files:
21 | - file: ./fvp_config.txt
22 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM3/RTE/Device/ARMCM3/regions_ARMCM3.h:
--------------------------------------------------------------------------------
1 | #ifndef REGIONS_ARMCM3_H
2 | #define REGIONS_ARMCM3_H
3 |
4 |
5 | //-------- <<< Use Configuration Wizard in Context Menu >>> --------------------
6 |
7 | // Device pack: ARM::Cortex_DFP@1.0.0
8 | // Device pack used to generate this file
9 |
10 | // ROM Configuration
11 | // =======================
12 | // ROM=<__ROM0>
13 | // Base address <0x0-0xFFFFFFFF:8>
14 | // Defines base address of memory region.
15 | // Default: 0x00000000
16 | #define __ROM0_BASE 0x00000000
17 | // Region size [bytes] <0x0-0xFFFFFFFF:8>
18 | // Defines size of memory region.
19 | // Default: 0x00040000
20 | #define __ROM0_SIZE 0x00400000
21 | // Default region
22 | // Enables memory region globally for the application.
23 | #define __ROM0_DEFAULT 1
24 | // Startup
25 | // Selects region to be used for startup code.
26 | #define __ROM0_STARTUP 1
27 | //
28 |
29 | //
30 |
31 | // RAM Configuration
32 | // =======================
33 | // RAM=<__RAM0>
34 | // Base address <0x0-0xFFFFFFFF:8>
35 | // Defines base address of memory region.
36 | // Default: 0x20000000
37 | #define __RAM0_BASE 0x20000000
38 | // Region size [bytes] <0x0-0xFFFFFFFF:8>
39 | // Defines size of memory region.
40 | // Default: 0x00020000
41 | #define __RAM0_SIZE 0x00400000
42 | // Default region
43 | // Enables memory region globally for the application.
44 | #define __RAM0_DEFAULT 1
45 | // No zero initialize
46 | // Excludes region from zero initialization.
47 | #define __RAM0_NOINIT 0
48 | //
49 |
50 | //
51 |
52 | // Stack / Heap Configuration
53 | // Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
54 | // Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
55 | #define __STACK_SIZE 0x00001000
56 | #define __HEAP_SIZE 0x00010000
57 | //
58 |
59 |
60 | #endif /* REGIONS_ARMCM3_H */
61 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM3/Target.clayer.yml:
--------------------------------------------------------------------------------
1 | layer:
2 | type: Target
3 | description: Cortex-M3 target components and files
4 |
5 | packs:
6 | - pack: ARM::Cortex_DFP
7 |
8 | for-device: ARMCM3
9 |
10 | components:
11 | - component: Device:Startup&C Startup
12 |
13 | linker:
14 | - regions: RTE/Device/$Dname$/regions_$Dname$.h
15 |
16 | groups:
17 | - group: FVP
18 | files:
19 | - file: ./fvp_config.txt
20 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM3/fvp_config.txt:
--------------------------------------------------------------------------------
1 | # Parameters:
2 | # instance.parameter=value #(type, mode) default = 'def value' : description : [min..max]
3 | #------------------------------------------------------------------------------
4 | armcortexm3ct.semihosting-Thumb_SVC=0xAB # (int , init-time) default = '0xab' : T32 SVC number for semihosting
5 | armcortexm3ct.semihosting-cmd_line= # (string, init-time) default = '' : Command line available to semihosting SVC calls
6 | armcortexm3ct.semihosting-cwd= # (string, init-time) default = '' : Base directory for semihosting file access.
7 | armcortexm3ct.semihosting-enable=1 # (bool , init-time) default = '1' : Enable semihosting SVC traps. Applications that do not use semihosting must set this parameter to false.
8 | armcortexm3ct.semihosting-heap_base=0 # (int , init-time) default = '0x0' : Virtual address of heap base
9 | armcortexm3ct.semihosting-heap_limit=0 # (int , init-time) default = '0x20700000' : Virtual address of top of heap
10 | armcortexm3ct.semihosting-stack_base=0 # (int , init-time) default = '0x20800000' : Virtual address of base of descending stack
11 | armcortexm3ct.semihosting-stack_limit=0 # (int , init-time) default = '0x20700000' : Virtual address of stack limit
12 | fvp_mps2.mps2_visualisation.disable-visualisation=1 # (bool , init-time) default = '0' : Enable/disable visualisation
13 | fvp_mps2.telnetterminal0.start_telnet=0 # (bool , init-time) default = '1' : Start telnet if nothing connected
14 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM33/Target.clayer.yml:
--------------------------------------------------------------------------------
1 | layer:
2 | type: Target
3 | description: Cortex-M33 with TrustZone target components and files
4 |
5 | packs:
6 | - pack: ARM::Cortex_DFP
7 |
8 | for-device: ARMCM33
9 |
10 | components:
11 | - component: Device:Startup&C Startup
12 |
13 | linker:
14 | - regions: RTE/Device/$Dname$/regions_$Dname$.h
15 |
16 | groups:
17 | - group: FVP
18 | files:
19 | - file: ./fvp_config.txt
20 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM33_noTZ/Target.clayer.yml:
--------------------------------------------------------------------------------
1 | layer:
2 | type: Target
3 | description: Cortex-M33 target components and files
4 |
5 | packs:
6 | - pack: ARM::Cortex_DFP
7 |
8 | for-device: ARMCM33
9 | processor:
10 | trustzone: off
11 |
12 | components:
13 | - component: Device:Startup&C Startup
14 |
15 | linker:
16 | - regions: RTE/Device/$Dname$/regions_$Dname$.h
17 |
18 | groups:
19 | - group: FVP
20 | files:
21 | - file: ./fvp_config.txt
22 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM4/RTE/Device/ARMCM4/regions_ARMCM4.h:
--------------------------------------------------------------------------------
1 | #ifndef REGIONS_ARMCM4_H
2 | #define REGIONS_ARMCM4_H
3 |
4 |
5 | //-------- <<< Use Configuration Wizard in Context Menu >>> --------------------
6 |
7 | // Device pack: ARM::Cortex_DFP@1.0.0
8 | // Device pack used to generate this file
9 |
10 | // ROM Configuration
11 | // =======================
12 | // ROM=<__ROM0>
13 | // Base address <0x0-0xFFFFFFFF:8>
14 | // Defines base address of memory region.
15 | // Default: 0x00000000
16 | #define __ROM0_BASE 0x00000000
17 | // Region size [bytes] <0x0-0xFFFFFFFF:8>
18 | // Defines size of memory region.
19 | // Default: 0x00040000
20 | #define __ROM0_SIZE 0x00400000
21 | // Default region
22 | // Enables memory region globally for the application.
23 | #define __ROM0_DEFAULT 1
24 | // Startup
25 | // Selects region to be used for startup code.
26 | #define __ROM0_STARTUP 1
27 | //
28 |
29 | //
30 |
31 | // RAM Configuration
32 | // =======================
33 | // RAM=<__RAM0>
34 | // Base address <0x0-0xFFFFFFFF:8>
35 | // Defines base address of memory region.
36 | // Default: 0x20000000
37 | #define __RAM0_BASE 0x20000000
38 | // Region size [bytes] <0x0-0xFFFFFFFF:8>
39 | // Defines size of memory region.
40 | // Default: 0x00020000
41 | #define __RAM0_SIZE 0x00400000
42 | // Default region
43 | // Enables memory region globally for the application.
44 | #define __RAM0_DEFAULT 1
45 | // No zero initialize
46 | // Excludes region from zero initialization.
47 | #define __RAM0_NOINIT 0
48 | //
49 |
50 | //
51 |
52 | // Stack / Heap Configuration
53 | // Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
54 | // Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
55 | #define __STACK_SIZE 0x00001000
56 | #define __HEAP_SIZE 0x00010000
57 | //
58 |
59 |
60 | #endif /* REGIONS_ARMCM4_H */
61 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM4/Target.clayer.yml:
--------------------------------------------------------------------------------
1 | layer:
2 | type: Target
3 | description: Cortex-M4 with FPU target components and files
4 |
5 | packs:
6 | - pack: ARM::Cortex_DFP
7 |
8 | for-device: ARMCM4
9 | processor:
10 | fpu: sp
11 |
12 | components:
13 | - component: Device:Startup&C Startup
14 |
15 | linker:
16 | - regions: RTE/Device/$Dname$/regions_$Dname$.h
17 |
18 | groups:
19 | - group: FVP
20 | files:
21 | - file: ./fvp_config.txt
22 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM4/fvp_config.txt:
--------------------------------------------------------------------------------
1 | # Parameters:
2 | # instance.parameter=value #(type, mode) default = 'def value' : description : [min..max]
3 | #------------------------------------------------------------------------------
4 | armcortexm4ct.semihosting-Thumb_SVC=0xAB # (int , init-time) default = '0xab' : T32 SVC number for semihosting
5 | armcortexm4ct.semihosting-cmd_line= # (string, init-time) default = '' : Command line available to semihosting SVC calls
6 | armcortexm4ct.semihosting-cwd= # (string, init-time) default = '' : Base directory for semihosting file access.
7 | armcortexm4ct.semihosting-enable=1 # (bool , init-time) default = '1' : Enable semihosting SVC traps. Applications that do not use semihosting must set this parameter to false.
8 | armcortexm4ct.semihosting-heap_base=0 # (int , init-time) default = '0x0' : Virtual address of heap base
9 | armcortexm4ct.semihosting-heap_limit=0 # (int , init-time) default = '0x20700000' : Virtual address of top of heap
10 | armcortexm4ct.semihosting-stack_base=0 # (int , init-time) default = '0x20800000' : Virtual address of base of descending stack
11 | armcortexm4ct.semihosting-stack_limit=0 # (int , init-time) default = '0x20700000' : Virtual address of stack limit
12 | armcortexm4ct.vfp-present=1 # (bool , init-time) default = '1' : Set whether the model has VFP support
13 | fvp_mps2.mps2_visualisation.disable-visualisation=1 # (bool , init-time) default = '0' : Enable/disable visualisation
14 | fvp_mps2.telnetterminal0.start_telnet=0 # (bool , init-time) default = '1' : Start telnet if nothing connected
15 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM55/Target.clayer.yml:
--------------------------------------------------------------------------------
1 | layer:
2 | type: Target
3 | description: Cortex-M55 with TrustZone target components and files
4 |
5 | packs:
6 | - pack: ARM::Cortex_DFP
7 |
8 | for-device: ARMCM55
9 |
10 | components:
11 | - component: Device:Startup&C Startup
12 |
13 | linker:
14 | - regions: RTE/Device/$Dname$/regions_$Dname$.h
15 |
16 | groups:
17 | - group: FVP
18 | files:
19 | - file: ./fvp_config.txt
20 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM55_noTZ/Target.clayer.yml:
--------------------------------------------------------------------------------
1 | layer:
2 | type: Target
3 | description: Cortex-M55 target components and files
4 |
5 | packs:
6 | - pack: ARM::Cortex_DFP
7 |
8 | for-device: ARMCM55
9 | processor:
10 | trustzone: off
11 |
12 | components:
13 | - component: Device:Startup&C Startup
14 |
15 | linker:
16 | - regions: RTE/Device/$Dname$/regions_$Dname$.h
17 |
18 | groups:
19 | - group: FVP
20 | files:
21 | - file: ./fvp_config.txt
22 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM7/RTE/Device/ARMCM7/regions_ARMCM7.h:
--------------------------------------------------------------------------------
1 | #ifndef REGIONS_ARMCM7_H
2 | #define REGIONS_ARMCM7_H
3 |
4 |
5 | //-------- <<< Use Configuration Wizard in Context Menu >>> --------------------
6 |
7 | // Device pack: ARM::Cortex_DFP@1.0.0
8 | // Device pack used to generate this file
9 |
10 | // ROM Configuration
11 | // =======================
12 | // ROM=<__ROM0>
13 | // Base address <0x0-0xFFFFFFFF:8>
14 | // Defines base address of memory region.
15 | // Default: 0x00000000
16 | #define __ROM0_BASE 0x00000000
17 | // Region size [bytes] <0x0-0xFFFFFFFF:8>
18 | // Defines size of memory region.
19 | // Default: 0x00040000
20 | #define __ROM0_SIZE 0x00400000
21 | // Default region
22 | // Enables memory region globally for the application.
23 | #define __ROM0_DEFAULT 1
24 | // Startup
25 | // Selects region to be used for startup code.
26 | #define __ROM0_STARTUP 1
27 | //
28 |
29 | //
30 |
31 | // RAM Configuration
32 | // =======================
33 | // RAM=<__RAM0>
34 | // Base address <0x0-0xFFFFFFFF:8>
35 | // Defines base address of memory region.
36 | // Default: 0x20000000
37 | #define __RAM0_BASE 0x20000000
38 | // Region size [bytes] <0x0-0xFFFFFFFF:8>
39 | // Defines size of memory region.
40 | // Default: 0x00020000
41 | #define __RAM0_SIZE 0x00400000
42 | // Default region
43 | // Enables memory region globally for the application.
44 | #define __RAM0_DEFAULT 1
45 | // No zero initialize
46 | // Excludes region from zero initialization.
47 | #define __RAM0_NOINIT 0
48 | //
49 |
50 | //
51 |
52 | // Stack / Heap Configuration
53 | // Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
54 | // Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
55 | #define __STACK_SIZE 0x00001000
56 | #define __HEAP_SIZE 0x00010000
57 | //
58 |
59 |
60 | #endif /* REGIONS_ARMCM7_H */
61 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM7/Target.clayer.yml:
--------------------------------------------------------------------------------
1 | layer:
2 | type: Target
3 | description: Cortex-M7 target components and files
4 |
5 | packs:
6 | - pack: ARM::Cortex_DFP
7 |
8 | for-device: ARMCM7
9 | processor:
10 | fpu: dp
11 |
12 | components:
13 | - component: Device:Startup&C Startup
14 |
15 | linker:
16 | - regions: RTE/Device/$Dname$/regions_$Dname$.h
17 |
18 | groups:
19 | - group: FVP
20 | files:
21 | - file: ./fvp_config.txt
22 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM7/fvp_config.txt:
--------------------------------------------------------------------------------
1 | # Parameters:
2 | # instance.parameter=value #(type, mode) default = 'def value' : description : [min..max]
3 | #------------------------------------------------------------------------------
4 | armcortexm7ct.INITVTOR=0 # (int , init-time) default = '0x0' : vector-table offset at reset
5 | armcortexm7ct.semihosting-Thumb_SVC=0xAB # (int , init-time) default = '0xab' : T32 SVC number for semihosting
6 | armcortexm7ct.semihosting-cmd_line= # (string, init-time) default = '' : Command line available to semihosting SVC calls
7 | armcortexm7ct.semihosting-cwd= # (string, init-time) default = '' : Base directory for semihosting file access.
8 | armcortexm7ct.semihosting-enable=1 # (bool , init-time) default = '1' : Enable semihosting SVC traps. Applications that do not use semihosting must set this parameter to false.
9 | armcortexm7ct.semihosting-heap_base=0 # (int , init-time) default = '0x0' : Virtual address of heap base
10 | armcortexm7ct.semihosting-heap_limit=0 # (int , init-time) default = '0x20700000' : Virtual address of top of heap
11 | armcortexm7ct.semihosting-stack_base=0 # (int , init-time) default = '0x20800000' : Virtual address of base of descending stack
12 | armcortexm7ct.semihosting-stack_limit=0 # (int , init-time) default = '0x20700000' : Virtual address of stack limit
13 | armcortexm7ct.vfp-present=1 # (bool , init-time) default = '1' : Set whether the model has VFP support
14 | fvp_mps2.mps2_visualisation.disable-visualisation=1 # (bool , init-time) default = '0' : Enable/disable visualisation
15 | fvp_mps2.telnetterminal0.start_telnet=0 # (bool , init-time) default = '1' : Start telnet if nothing connected
16 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM85/Target.clayer.yml:
--------------------------------------------------------------------------------
1 | layer:
2 | type: Target
3 | description: Cortex-M85 with TrustZone target components and files
4 |
5 | packs:
6 | - pack: ARM::Cortex_DFP
7 |
8 | for-device: ARMCM85
9 |
10 | components:
11 | - component: Device:Startup&C Startup
12 |
13 | linker:
14 | - regions: RTE/Device/$Dname$/regions_$Dname$.h
15 |
16 | groups:
17 | - group: FVP
18 | files:
19 | - file: ./fvp_config.txt
20 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/Target/CM85_noTZ/Target.clayer.yml:
--------------------------------------------------------------------------------
1 | layer:
2 | type: Target
3 | description: Cortex-M85 target components and files
4 |
5 | packs:
6 | - pack: ARM::Cortex_DFP
7 |
8 | for-device: ARMCM85
9 | processor:
10 | trustzone: off
11 |
12 | components:
13 | - component: Device:Startup&C Startup
14 |
15 | linker:
16 | - regions: RTE/Device/$Dname$/regions_$Dname$.h
17 |
18 | groups:
19 | - group: FVP
20 | files:
21 | - file: ./fvp_config.txt
22 |
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Examples/vcpkg-configuration.json:
--------------------------------------------------------------------------------
1 | {
2 | "registries": [
3 | {
4 | "name": "arm",
5 | "kind": "artifact",
6 | "location": "https://artifacts.tools.arm.com/vcpkg-registry"
7 | }
8 | ],
9 | "requires": {
10 | "arm:tools/kitware/cmake": "3.31.5",
11 | "arm:tools/ninja-build/ninja": "1.12.0",
12 | "arm:tools/open-cmsis-pack/cmsis-toolbox": "2.8.0",
13 | "arm:compilers/arm/armclang": "6.23.0",
14 | "arm:compilers/arm/arm-none-eabi-gcc": "14.2.1",
15 | "arm:compilers/arm/llvm-embedded": "19.1.5",
16 | "arm:debuggers/arm/armdbg": "6.4.0",
17 | "arm:models/arm/avh-fvp": "11.28.32"
18 | }
19 | }
--------------------------------------------------------------------------------
/CMSIS/RTOS2/FreeRTOS/Source/handlers.c:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * @file irq_handler.c
3 | * @brief CMSIS-FreeRTOS Interrupt Handler
4 | * @version 9.1.0
5 | * @date 11 Aug 2017
6 | *
7 | * @note
8 | *
9 | ******************************************************************************/
10 | /*
11 | * Copyright (c) 2017 Arm Limited. All rights reserved.
12 | *
13 | * SPDX-License-Identifier: Apache-2.0
14 | *
15 | * Licensed under the Apache License, Version 2.0 (the License); you may
16 | * not use this file except in compliance with the License.
17 | * You may obtain a copy of the License at
18 | *
19 | * www.apache.org/licenses/LICENSE-2.0
20 | *
21 | * Unless required by applicable law or agreed to in writing, software
22 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT
23 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24 | * See the License for the specific language governing permissions and
25 | * limitations under the License.
26 | */
27 |
28 | #include
29 |
30 | #include "RTE_Components.h"
31 | #include CMSIS_device_header
32 | #include "irq_ctrl.h"
33 |
34 | /* The function called by the RTOS port layer after it has managed interrupt
35 | entry. */
36 | void vApplicationIRQHandler( uint32_t ulICCIAR )
37 | {
38 | uint32_t ulInterruptID;
39 | IRQHandler_t h;
40 |
41 | /* Re-enable interrupts. */
42 | __enable_irq();
43 |
44 | /* The ID of the interrupt can be obtained by bitwise anding the ICCIAR value
45 | with 0x3FF. */
46 | ulInterruptID = ulICCIAR & 0x3FFUL;
47 |
48 | /* Call the function installed in the array of installed handler functions. */
49 | h = IRQ_GetHandler (ulInterruptID);
50 |
51 | /* Call handler function */
52 | if (h != NULL) {
53 | h();
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/Documentation/Doxygen/linkchecker.rc:
--------------------------------------------------------------------------------
1 | [output]
2 | ignoreerrors=
3 | mag.svg
4 | mag_sel.svg
5 | mag_d.svg
6 | mag_seld.svg
7 | ../tab_a.png
8 | ../tab_ad.png
9 | minus.svg
10 | plus.svg
11 | minusd.svg
12 | plusd.svg
13 |
14 | [filtering]
15 | ignorewarnings=
16 | http-redirected
17 |
--------------------------------------------------------------------------------
/Documentation/Doxygen/src/images/freertos_config_h_cmsis_rtos.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ARM-software/CMSIS-FreeRTOS/1eedee62fe372847db7e6821d333cdb806e38df3/Documentation/Doxygen/src/images/freertos_config_h_cmsis_rtos.png
--------------------------------------------------------------------------------
/Documentation/Doxygen/src/images/freertos_config_h_native.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ARM-software/CMSIS-FreeRTOS/1eedee62fe372847db7e6821d333cdb806e38df3/Documentation/Doxygen/src/images/freertos_config_h_native.png
--------------------------------------------------------------------------------
/Documentation/Doxygen/src/images/hello_out.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ARM-software/CMSIS-FreeRTOS/1eedee62fe372847db7e6821d333cdb806e38df3/Documentation/Doxygen/src/images/hello_out.png
--------------------------------------------------------------------------------
/Documentation/Doxygen/src/images/manage_rte_freertos_native.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ARM-software/CMSIS-FreeRTOS/1eedee62fe372847db7e6821d333cdb806e38df3/Documentation/Doxygen/src/images/manage_rte_freertos_native.png
--------------------------------------------------------------------------------
/Documentation/Doxygen/src/images/manage_rte_freertos_rtos2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ARM-software/CMSIS-FreeRTOS/1eedee62fe372847db7e6821d333cdb806e38df3/Documentation/Doxygen/src/images/manage_rte_freertos_rtos2.png
--------------------------------------------------------------------------------
/Documentation/Doxygen/src/images/project_window_freertos_native.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ARM-software/CMSIS-FreeRTOS/1eedee62fe372847db7e6821d333cdb806e38df3/Documentation/Doxygen/src/images/project_window_freertos_native.png
--------------------------------------------------------------------------------
/Documentation/Doxygen/src/images/project_window_freertos_rtos2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ARM-software/CMSIS-FreeRTOS/1eedee62fe372847db7e6821d333cdb806e38df3/Documentation/Doxygen/src/images/project_window_freertos_rtos2.png
--------------------------------------------------------------------------------
/Documentation/Doxygen/src/images/trustzone_out.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ARM-software/CMSIS-FreeRTOS/1eedee62fe372847db7e6821d333cdb806e38df3/Documentation/Doxygen/src/images/trustzone_out.png
--------------------------------------------------------------------------------
/Documentation/Doxygen/style_template/cmsis_logo_white_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ARM-software/CMSIS-FreeRTOS/1eedee62fe372847db7e6821d333cdb806e38df3/Documentation/Doxygen/style_template/cmsis_logo_white_small.png
--------------------------------------------------------------------------------
/Documentation/Doxygen/style_template/dropdown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ARM-software/CMSIS-FreeRTOS/1eedee62fe372847db7e6821d333cdb806e38df3/Documentation/Doxygen/style_template/dropdown.png
--------------------------------------------------------------------------------
/Documentation/Doxygen/style_template/extra_search.css:
--------------------------------------------------------------------------------
1 |
2 | dark-mode-toggle {
3 | position: absolute;
4 | right: 205px;
5 | padding-top: 3px;
6 | color: var(--arm_light_gray);
7 | }
8 |
9 | .tablist .MSearchBox {
10 | pointer-events: none;
11 | display: inline-block;
12 | white-space : nowrap;
13 | background: none;
14 | border-radius: 0.0em;
15 | height: 0em;
16 | width: 0em;
17 | line-height: 0px;
18 | }
19 |
20 | .tablist .MSearchField {
21 | pointer-events: none;
22 | display: inline-block;
23 | vertical-align: middle;
24 | width: 0em;
25 | height: 0px;
26 | margin: 0 0;
27 | padding: 0;
28 | line-height: 0em;
29 | border:none;
30 | outline: none;
31 | -webkit-border-radius: 0px;
32 | border-radius: 0px;
33 | background: none;
34 | }
35 |
36 | .tablist .MSearchBoxInactive {
37 | pointer-events: none;
38 | opacity:0.0;
39 | }
40 |
41 | .tablist .MSearchBoxActive {
42 | pointer-events: none;
43 | opacity:0.0;
44 | }
45 |
46 | .tablist .MSearchBoxInactive:hover {
47 | pointer-events: none;
48 | opacity:0.0;
49 | }
--------------------------------------------------------------------------------
/Documentation/Doxygen/style_template/extra_tabs.css:
--------------------------------------------------------------------------------
1 |
2 | /* in Doxygen 1.9.2 'tabs' is assigned to second navigation row (navrow1) with
3 | 'Main Page', 'Namespaces', etc */
4 |
5 | .tabs, .tabs1, .tabs2, .tabs3, .main-nav {
6 | background-color: var(--arm_light_gray);
7 | color: var(--arm_black);
8 | width: 100%;
9 | z-index: 101;
10 | font-family: 'Futura PT W01 Medium', 'Lato Light', Lato, Calibri, sans-serif;
11 | font-size: 14px;
12 | font-weight: 800;
13 | }
14 |
15 | .tabs1 {
16 | background-color: var(--arm_black);
17 | font-size: 16px;
18 | }
19 |
20 | .tabs1 a {
21 | color:while;
22 | }
23 |
24 | .tabs {
25 | background-color: var(--nav_tabs-background-color);
26 | border-top-style:solid;
27 | border-top-width:1px;
28 | border-top-color:var(--nav_tabs-border-color);
29 | }
30 |
31 | .tablist, .main-menu {
32 | margin: 0;
33 | padding: 0;
34 | display: table;
35 | line-height: 28px;
36 | }
37 |
38 | .tablist li {
39 | float: left;
40 | display: table-cell;
41 | background-color: var(--nav_tabs-background-color);
42 | border-right-style:solid;
43 | border-right-width:1px;
44 | border-right-color:var(--nav_tabs-border-color);
45 | list-style: none;
46 | margin:0px;
47 | }
48 |
49 | .tabs1 .tablist li {
50 | background-color: var(--arm_black);
51 | font-weight: 1000;
52 | }
53 |
54 | .tablist a {
55 | display: block;
56 | padding: 0 10px;
57 | color: var(--arm_dark_gray);
58 | font-weight: 600;
59 | outline: none;
60 | }
61 |
62 | .tabs1 .tablist a {
63 | padding: 3px 20px;
64 | color: white;
65 | background-color:var(--arm_black);
66 | }
67 |
68 | .tablist li.current a {
69 | background-color: var(--arm_dark_gray);
70 | color: white;
71 | }
72 |
73 | .tabs1 .tablist li.current a {
74 | background-color: var(--arm_blue);
75 | }
76 |
77 | .tabs .tablist a {
78 | background-color: var(--nav_tabs-background-color);
79 | color: var(--nav_tabs-text-color);
80 | }
81 | .tabs .tablist li.current a {
82 | background-color: var(--nav_tabs-background-active-color);
83 | color: var(--nav_tabs-text-active-color);
84 | }
85 |
86 | .tabs a:hover {
87 | color: var(--arm_orange);
88 | }
89 |
90 | .tabs li.current a:hover {
91 | color: white;
92 | }
93 |
94 | .tabs1 a:hover {
95 | color: var(--arm_yellow);
96 | }
97 |
--------------------------------------------------------------------------------
/Documentation/Doxygen/style_template/footer.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
15 |
16 |
17 |
18 |