How do I instruct the linker to locate all program code after a specific address, e.g. at 0x2000 onwards?
See Application Note AN533, Section 6, steps #1 and #2.
This is the bootloader App Note, but the instructions are still applicable. In short:
1. Change the reset vector in the startup code.
2. Move the interrupt vectors.
More information can be found here:
I have an existing project that used the 8-bit Microntroller Studio tool. I want to migrate to Simplicity Studio. Is there an easy way to do that?
Simplicity Studio allows you to import many project types. The Silicon Labs IDE creates a project file with the extension <ProjectName>.wsp. In order to use this project with Simplicity Studio you can follow these steps:
1) From the Simplicity Studio IDE select [File] > [Import...].
2) From the [Import] GUI window select [MCU Project] and select [Next].
3) Browse to the directory where the <ProjectName>.wsp file is located using the [Browse...] button then select [Next].
4) Select the target part for the project using the [Part:] drop down menu.
5) You can leave the default settings for the project and click [Finish].
The project will now be imported into Simplicity Studio.
I am receiving errors when compiling an EFM8 bootloader. For example:
make: *** [EFM8BB3_UART0_Bootloader.omf] Error 1 *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: ?C_STARTUP MODULE: ./src/SILABS_STARTUP.OBJ (?C_STARTUP) DEFINED: ./src/boot_startup.OBJ (BOOT_STARTUP)
How can I fix this compilation error?
When an example is brought into the IDE from Simplicity Studio > Software Examples, the standard SILABS_STARTUP.A51 startup file is automatically added to your project.
The standard startup file works for all software examples except the bootloader, because the bootloader source contains a customized startup file, boot_startup.asm.
The solution is to delete SILABS_STARTUP.A51 (right click the file > Delete) and rebuild.