Hello,
This question is relative to linker script with Compiler armclang 'V6.14' (For the other toolchain IAR , GNUARM ,it works )
I need to place code aligned to flash PAGE SIZE (0x2000 or 8192) to be able to set hardware protection.
As follow , here is the description of the issue.
With a Linker file having the following value for Code placement LR_CODE 0x0c024400 0x20000 {
ER_TFM_CODE 0x0c024400 { *.o (RESET +First) * (+RO)
} TFM_UNPRIV_CODE +0 ALIGN 0x2000 { stm32u5xx_hal*.o (+RO) tick.o (+RO) *(SFN) *armlib* }
}
We get the following error :
Build started: Project: Project_s *** Using Compiler 'V6.14', folder: 'C:\Keil_v5\ARM\ARMCLANG\Bin' Build Project 'Project_s' - Target xxxxxxxxxxx _TFM_Appli_S' linking... xxxxxxxxxxx_S\Exe\Project.axf: Error: L6244E: Load region LR_CODE address (0x0c024400) not aligned on a 8192 byte boundary. Not enough information to list image symbols. Finished: 1 information, 0 warning and 1 error messages. " xxxxxxxxxxx _S\Exe\Project.axf" - 1 Error(s), 0 Warning(s). Target not created. Build Time Elapsed: 00:00:03
If we change the linker file as follow : LR_CODE 0x0c024400 0x20000 {
ER_TFM_CODE 0x0c024400 { *.o (RESET +First) * (+RO)
} TFM_UNPRIV_CODE +0 ALIGN 0x400 { stm32u5xx_hal*.o (+RO) tick.o (+RO) *(SFN) *armlib* }
} No Error is reported.
Is this an known issue with ARMCLANG ?
Best Regards
.