Hello, I am developing an application with a bootloader area between 0x0-0x2fff and the application starts at 0x3000. When I check the option "Use Memory Layout from Target Dialog" on "Options for Target/Linker" the linker creates a correct applicatin image starting at 0x3000. As I have a third RAM area I had to use a scatter file. With this option the linker does not consider the bootloader area and place the code starting at 0x0. I have also used the Misc Controls as "--ro-base=0x00003000" and R/O Base: as 0x3000 but it did not work.
Which setting is missing? Thanks,
Andre
Hello again,
When I declare safe_buffer[0x68B4] a data abort exception happens at address 0x00003220
__scatterload_zeroinit: 0x0000320C E3B03000 MOVS R3,#rtc_tsk_usage(0x00000000) 0x00003210 E3B04000 MOVS R4,#rtc_tsk_usage(0x00000000) 0x00003214 E3B05000 MOVS R5,#rtc_tsk_usage(0x00000000) 0x00003218 E3B06000 MOVS R6,#rtc_tsk_usage(0x00000000) 0x0000321C E2522010 SUBS R2,R2,#0x00000010 ->0x00003220 28A10078 STMCSIA R1!,{R3-R6} 0x00003224 8AFFFFFC BHI 0x0000321C 0x00003228 E1B02E82 MOVS R2,R2,LSL #29 0x0000322C 28A10030 STMCSIA R1!,{R4-R5} 0x00003230 45813000 STRMI R3,[R1] 0x00003234 E12FFF1E BX R14
Does anyone know how to fix it?
Regards Andre
I have noticed that R1 = 0x40010010 is higher than the maxim valid address for the 64K area : 0x40000000. This maybe the cause of the data abort.
Hello all again! I have found the problem.
The scatter file was wrong. Line RW_IRAM1 0x40000040 0x10000 was replaced with RW_IRAM1 0x40000040 0xFFC0
Cheers, Andre