Hello, I have stripped a large project of all its files, except the startup file. Then I added USB support and adjusted the scatter file, like this:
; ************************************************************* ; *** Scatter-Loading Description File generated by uVision *** ; ************************************************************* LR_IROM1 0x00000000 0x00004000 { ; load region size_region ER_IROM1 0x00000000 0x00004000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) ;HTTP_demo.o (+RO) ;HTTP_CGI.o (+RO) .ANY (+RO) } RW_IRAM1 0x40000000 0x00010000 { ; RW data ;HTTP_CGI.o (+ZI +RW) ; *FS_ARM_L.lib (+ZI) ; *TCP_ARM_L.lib (+ZI) .ANY (+RW +ZI) } ; RW_IRAM2 0x7FD00000 0x00004000 { ; LPC24_EMAC.o (+ZI +RW) ;;; ;*FS_ARM_L.lib (+ZI) ; } RW_IRAM2 0x7FE00000 0x00004000 { ;; LPC24_EMAC.o (+ZI +RW) ;; ;*FS_ARM_L.lib (+ZI) .ANY (+RW +ZI) } RW_RAM1 0xA0000000 0xA0FFFFFF { ; RW data ;; ;LPC24_EMAC.o (+ZI +RW) ;; .ANY (+RW +ZI) ; SYS_DEF.o (+ZI +RW) ;; SYS_FILESYSTEM.o (+ZI +RW) ;; SYS_IO.o (+ZI +RW) ;; SYS_DEF_EXT_RAM.o (+ZI +RW) ;; SYS_MAIN.o (+ZI +RW) ;; SYS_RTC.o (+ZI +RW) ;; SYS_TIMER.o (+ZI +RW) ; SYS_UART2.o (+ZI +RW) .ANY (+RW +ZI) } }
the problem is that my reset vector is not mapped to address 0x0, see map file entry:
0x00000000 0x00000008 Code RO 219 * !!!main __main.o(c_t.l) 0x00000008 0x0000003c Code RO 316 !!!scatter __scatter.o(c_t.l) 0x00000044 0x00000028 Code RO 318 !!handler_copy __scatter_copy.o(c_t.l) 0x0000006c 0x0000002c Code RO 320 !!handler_zi __scatter_zi.o(c_t.l) 0x00000098 0x00000004 Ven RO 243 .emb_text lib_init.o(c_t.l) 0x0000009c 0x00000010 Code RO 243 .emb_text lib_init.o(c_t.l) 0x000000ac 0x00000024 Code RO 4 .text lpc2400.o 0x000000d0 0x00000008 Ven RO 195 .text boot_usbuser.o 0x000000d8 0x0000004a Code RO 195 .text boot_usbuser.o 0x00000122 0x00000002 PAD 0x00000124 0x00000004 Ven RO 213 .text uread4.o(c_t.l) 0x00000128 0x00000020 Code RO 213 .text uread4.o(c_t.l) 0x00000148 0x00000004 Ven RO 215 .text uwrite4.o(c_t.l) 0x0000014c 0x00000020 Code RO 215 .text uwrite4.o(c_t.l) 0x0000016c 0x00000040 Code RO 217 .text stkheap2.o(c_t.l) 0x000001ac 0x00000004 Ven RO 221 .text switch8.o(h_t.l) 0x000001b0 0x00000018 Code RO 221 .text switch8.o(h_t.l) 0x000001c8 0x00000010 Code RO 223 .text callvia.o(h_t.l) 0x000001d8 0x00000010 Code RO 232 .text rt_stackheap_storage_intlibspace.o(c_t.l) 0x000001e8 0x0000000c Code RO 236 .text libspace.o(c_t.l) 0x000001f4 0x00000004 Code RO 255 .text use_no_semi.o(c_t.l) 0x000001f8 0x00000004 PAD 0x000001fc 0x00000004 Data RO 89 .ARM.__at_0x1FC boot_sbl_iap.o 0x00000200 0x00000328 Code RO 3 RESET lpc2400.o
Can offer an explanation?
I forgot to add retarget.c to my project...