This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Keil uVision5 ARM CORTEX M23 Error

Hi there!

I'm new on bare-metal programming and trying to code a basic template (a main that increments the counter var value) for Renesas RA2A1 evaluation board. The reason of doing bare-metal without the smart configurator of Renesas is due to avoid the FSP and BSP that e2studio always uses, in order to have the control of all code parts. The need to have all the control of the code is due to a safety related environment, needed to certify in the future. So when starting a simple project, I use ARM Cortex M23 (ARMCM23) template with the CMSIS Core and Device Startup software components selected. I'm following a Udemy course of Complete ARM Cortex-M Bare-Metal Programming (Israel Gbati), he starts the project as I explained and the add to the source group a main.c file with just the following:

Int main ()

{

Int counter = 0;

++counter;

}

Seems a simple code that should compile correctly, but when building always gives the same error:

.\Objects\CoreBox.axf: Error: L6218E: Undefined symbol Image$$ARM_LIB_STACK$$ZI$$Limit (referred from startup_armcm23. o).

Not enough information to list load addresses in the image map.

Searching on the internet and forums as well seems a common error about configuration, but the given solutions don't solve out the problem. Does anyone know what I'm doing wrong?

I attach the project. Thanks in advance!

ARM CORTEX M23.rar

Parents
  • Hello aitor_azkolain,

    please go to Options for Target ... -> Linker and unselect the option "Use Memory Layout from Target Dialog". Then go to the "Scatter File" option and click the drop-down arrow on the right. From the list, pick the ARMCM23_ac6.sct. With that, the project should build.

    Reason is, the new C-Startup file uses the stack configuration via the scatter file and imports the symbols from there. The ARMCM23_ac6.sct defines them, while the auto-generated scatter file does not.

Reply
  • Hello aitor_azkolain,

    please go to Options for Target ... -> Linker and unselect the option "Use Memory Layout from Target Dialog". Then go to the "Scatter File" option and click the drop-down arrow on the right. From the list, pick the ARMCM23_ac6.sct. With that, the project should build.

    Reason is, the new C-Startup file uses the stack configuration via the scatter file and imports the symbols from there. The ARMCM23_ac6.sct defines them, while the auto-generated scatter file does not.

Children