Hello,
I want to develop a target board specific peripheral driver library for a Cortex-M3 controller which can be used by several applications just referencing the BSP library in the project.
In a first step I was able to build a library, link it with a test application and execute the functions of the library. So everything works fine so far.
My test application consists only of a simple main function and the standard startup code of the controller. In a second step I tried to move the startup file of the test application to my library, because this item shall also be a standard part of the library
Rebuilding the test application I get the following error message:
.\Objects\COMMs-Board-BSP-Test.sct(8): error: L6236E: No section matches selector - no section to be FIRST/LAST.
As a scatter file I used the following definition:
LR_IROM1 0x00000000 0x00080000 { ; load region size_region ER_IROM1 0x00000000 0x00080000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_IRAM1 0x1FFF0000 0x00010000 { ; RW data .ANY (+RW +ZI) } }
I checked that the startup.o was part of my library (armar option --sizes), but it seems that the linker is not able to get the startup_K22.o file.
I tried to extract the startup.o from the library as described in your post http://www.keil.com/support/docs/3748.htm
No I get the follwoing two errors
.\Objects\COMMs-Board-BSP-Test.axf: Error: L6218E: Undefined symbol __use_two_region_memory (referred from startup_K22.o). .\Objects\COMMs-Board-BSP-Test.axf: Error: L6218E: Undefined symbol __initial_sp (referred from entry2.o).
The __initial_sp has been defined with the EXPORT directive in the startup file. How can I now solve this issues?
Best regards, Mario
+++ Update +++
I finallay managed to include the startup code to my library. There was an issue with the startup code itself. I discovered a different file from the exmaple projects were everything works as expected.
From my side the issue is closed.
Regards, Mario
Hi, Mario:
how do you fix the problem? what issue with the startup code.
I encounter the same problem.
Best regards.
eric
Same problem, he seemed to describe at least two. Best just to present your own issue, with the errors you see, and the code you are using.
If you are not seeing __initial_sp it might be because the startup.s file isn't pulled into the project, or it lacks code to described and export the stack.
The other might be because the sections being called out don't have suitable attributes.