2015-06-30 02:27 AM
Hi
I am working with stm32 using GNU ARM Eclipse plugin.I want to modify the linker scripts to change the program start addressCan anyone help me? Thanks2015-06-30 04:05 AM
Hello
in the first section named MEMORY, you just have to modify the following address:FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 1024K ORIGINI hope this answered your questions.Syrine2015-06-30 04:19 AM
thank you for your response
Problem not solved. I can't stop the MCU2015-06-30 04:47 AM
Problem not solved. I can't stop the MCU
Ok, but what have you actually done? Is you're debugger capable of this? The processor is going to look for a vector table at 0x08000000, so you'd need a boot loader there to call your application code wherever you've placed that. You'd want that on a 512-byte boundary, and on a Flash sector/page boundary.2015-06-30 06:07 AM
2015-06-30 06:24 AM
Is there any other solution without using a bootloader?
You could place the initial two vector entries at 0x08000000, which from the processors perspective is mapped at address zero by the state of the BOOTx pins. The processor has some well defined startup characteristics, these aren't going to be changed by altering the linker script. May be you can better define what it is you're trying to achieve?2015-06-30 06:34 AM
May be you can better define what it is you're trying to achieve?
I want just to don't write my code from the address 0x8000000 ,because the region :0x8000000 to 0x8003000 i need it for other use.So i have to put my code outside this region2015-06-30 07:36 AM
Ok, well you're going to have to adjust your expectations against how the processor actually functions. Might I suggest a review of the TRM, and the books of Joseph Yiu, for some foundation.
At a minimal level you need to place the Initial SP/PC values at the base of memory, in this case 0x08000000, as this is where the processor is going to for those values. One booted you can assign a different address for the Vector Table. In the case of the M3/M4 parts by changing the value written in SCB->VTOR2015-07-01 03:49 AM
At a minimal level you need to place the Initial SP/PC values at the base of memory, in this case 0x08000000
Can you explain more how and where i can do this ?
2015-07-01 06:42 AM
Hello Cesar,
Can you please try this modification?MEMORY{FLASH (rx) : ORIGIN = 0x08003000, LENGTH = 1012K}Syrine.