I'm using Keil MDK Pro v5.43, and trying to build a bare-metal app, using armclang toolchain, for Cortex-M23. As I'm new to Arm, I'm struggling to understand all that's needed to develop the startup/bootloader and memory (scatter) load files.
I've looked through much of the Arm Cortex-M Architecture Reference and Arm Compiler for Embedded 6 documents but still can't seem to put all the pieces together correctly. I have startup code that builds and loads but won't run using the Model ARMv8-M Debugger
I'm looking for recommendations for Tutorials with full, realistic examples that describe developing for this bare-metal environment/architecture, whether using CMSIS or rolling-my-own startup code.
Thank you in advance for your assistance.
Some related, but general, articles are, for example:
"Using scatter files"
https://developer.arm.com/documentation/dui0474/f/using-scatter-files
"Scatter-Loading description file <device>_ac6.sct"
https://arm-software.github.io/CMSIS_6/main/Core/linker_sct_pg.html
"Startup File startup_<Device>.c"
https://arm-software.github.io/CMSIS_6/latest/Core/startup_c_pg.html
"Stack, Heap and RTOS Configuration"
https://www.keil.com/pack/doc/mw/General/html/mw_using_stack_and_heap.html
Furthermore:
"How to set up and debug a user application together with a bootloader"
https://developer.arm.com/documentation/ka005060/1-0/
https://developer.arm.com/documentation/ka002218/latest
"Introduction to the Armv8-M Architecture and its Programmers Model User Guide"
https://developer.arm.com/documentation/107656/0101/Getting-started-with-Armv8-M-based-systems/Common-Microcontroller-Software-Interface-Standard--CMSIS-
"Run and debug application loaded in RAM"
https://developer.arm.com/documentation/ka004796/1-0
"Placing the stack and heap with a scatter file"
https://developer.arm.com/documentation/100748/0624/Mapping-Code-and-Data-to-the-Target/Placing-the-stack-and-heap-with-a-scatter-file?lang=en
"ARMLINK: Boot from flash and load application to RAM"
https://developer.arm.com/documentation/ka003923/1-0
"ARMCLANG: Using the Heap and Stack"
https://developer.arm.com/documentation/ka003329/1-0
"ARMLINK: Using Linker Scatter File for Buffer Management"
https://developer.arm.com/documentation/ka002220/1-0
armv8-m_exception_model_user_guide_107706_0100_01_en.pdf
DDI0553B_y_armv8m_arm.pdf