I have bootloader code that uses the first and last few sectors of flash on an LPC2xxx. In the startup assembly file the vectors & protection code word load at 0x0, then there is an .org 0x7b000 statement that puts the program code up high. There is no specific "fill" command. When I go to debug and the program loads to flash, all the sectors in the middle get erased and filled with 0. I don't want that because it erases the "main" code that I have previously loaded. Is there a way to tell the system to ignore the unused area? Right now it thinks that the startup section includes all the empty space, rather than only the first 0x200 bytes. I essentially need to define a "noload" section between 0x1000 and 0x7b000 so that it will leave those sectors alone. Is this possible??? (Using gcc & openocd)
Ah, was looking in the wrong place. I just edited the linker script to remove the memory I didn't want touched:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
Vectors and reset handler go in flash1, everything else goes up in flash2.
Reply
Please log in before posting.