diff --git a/bsp/lpc2478/lpc2478_rom.lds b/bsp/lpc2478/lpc2478_rom.lds index d710277d105e13155066e5aa59b8f81ab11ff3d4..78f741aaf67174f59eb85be641c93ddf772cae5c 100644 --- a/bsp/lpc2478/lpc2478_rom.lds +++ b/bsp/lpc2478/lpc2478_rom.lds @@ -16,10 +16,24 @@ SECTIONS __text_end = .; __rodata_start = .; - .rodata : { *(.rodata) *(.rodata.*)} + .rodata : + { + *(.rodata) + *(.rodata.*) + /* section information for finsh shell */ + . = ALIGN(4); + __fsymtab_start = .; + KEEP(*(FSymTab)) + __fsymtab_end = .; + . = ALIGN(4); + __vsymtab_start = .; + KEEP(*(VSymTab)) + __vsymtab_end = .; + . = ALIGN(4); + } __rodata_end = .; - . = 0x40000000; /*Data in SRAM*/ + . = 0x40000000; /*Data in SRAM*/ __data_start = .; . = ALIGN(4); diff --git a/bsp/lpc2478/lpc2478_rom.sct b/bsp/lpc2478/lpc2478_rom.sct new file mode 100644 index 0000000000000000000000000000000000000000..6fa4ba0a0b26550a04cf7c841dee74bd4dbc6cf4 --- /dev/null +++ b/bsp/lpc2478/lpc2478_rom.sct @@ -0,0 +1,15 @@ +; ************************************************************* +; *** Scatter-Loading Description File generated by uVision *** +; ************************************************************* + +LR_IROM1 0x00000000 0x00080000 { ; load region size_region + ER_IROM1 0x00000000 0x00080000 { ; load address = execution address + *.o (RESET, +First) + *(InRoot$$Sections) + .ANY (+RO) + } + RW_IRAM1 0x40000000 0x00010000 { ; RW data + .ANY (+RW +ZI) + } +} + diff --git a/bsp/lpc2478/rtconfig.py b/bsp/lpc2478/rtconfig.py index 0212b401a45b3664361cba30b31e9b3b8ffc19b7..fcad8d96190f1cbf65b667ef8e22973f1ab2331d 100644 --- a/bsp/lpc2478/rtconfig.py +++ b/bsp/lpc2478/rtconfig.py @@ -1,18 +1,22 @@ # toolchains options ARCH='arm' -CPU='lpc2478' -CROSS_TOOL='keil' +CPU='lpc24xx' +CROSS_TOOL='gcc' if CROSS_TOOL == 'gcc': PLATFORM = 'gcc' - EXEC_PATH = 'D:/SourceryGCC/bin' + EXEC_PATH = 'E:/Program Files/CodeSourcery/Sourcery G++ Lite/bin' elif CROSS_TOOL == 'keil': PLATFORM = 'armcc' - EXEC_PATH = 'd:/Keil' - + EXEC_PATH = 'E:/Keil' BUILD = 'debug' if PLATFORM == 'gcc': + print "=========================" + print "Can not support GNU GCC!!" + print "=========================" + exit (0) + # toolchains PREFIX = 'arm-none-eabi-' CC = PREFIX + 'gcc' @@ -24,10 +28,10 @@ if PLATFORM == 'gcc': OBJDUMP = PREFIX + 'objdump' OBJCPY = PREFIX + 'objcopy' - DEVICE = ' -mcpu=ARM7TDMI' - CFLAGS = DEVICE + ' -DRT_USING_MINILIBC' + DEVICE = ' -mcpu=arm7tdmi' + CFLAGS = DEVICE AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp' - LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread-lpc2478.map,-cref,-u,Reset_Handler -T lpc2478_rom.ld' + LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread-lpc2478.map,-cref,-u,Reset_Handler -T lpc2478_rom.lds' CPATH = '' LPATH = '' @@ -48,7 +52,7 @@ elif PLATFORM == 'armcc': LINK = 'armlink' TARGET_EXT = 'axf' - DEVICE = ' --device DARMSTM' + DEVICE = ' --device DARMP' CFLAGS = DEVICE + ' --apcs=interwork' AFLAGS = DEVICE LFLAGS = DEVICE + ' --info sizes --info totals --info unused --info veneers --list rtthread-lpc2478.map --scatter lpc2478_rom.sct' @@ -74,7 +78,7 @@ elif PLATFORM == 'iar': LINK = 'ilinkarm' TARGET_EXT = 'out' - DEVICE = ' --cpu DARMSTM --thumb' + DEVICE = ' --cpu DARMP' CFLAGS = '' AFLAGS = ''