Content originally posted in LPCWare by IanJames on Fri Nov 22 08:20:50 MST 2013
Hi,
I have a problem that manifests itself when a Power On Reset is performed.
I have two projects(PRJ1 andf PRJ2) in the same LPCXPRESSO workspace - both using a common library (CMSISv2p00_LPC12xx). The source and headers are the same.
If I program a board with PRJ1, remove the programming header and power off and on then everything is OK. If I program the board with PRJ2 then after the power off and on cycle the board goes into continuous reset.
I know this to be the case because I should be transmitting characters out of UART0 once second.
With PRJ I see the data correctly
With PRJ I see continuous data - also the programmer has difficulty in programming the board.
I have been looking in to the files produced and the only difference I can see is in the .map files and I have found the following difference:
PRJ1
.isr_vector 0x00000000 0xbc ./src/cr_startup_lpc12xx.o
0x00000000 g_pfnVectors
0x000000bc . = ALIGN (0x4)
0x000000bc __section_table_start = .
0x000000bc __data_section_table = .
0x000000bc 0x4 LONG 0x14bc LOADADDR (.data)
*(.isr_vector)
.isr_vector 0x00000000 0xbc ./src/cr_startup_lpc12xx.o
0x00000000 g_pfnVectors
0x000000bc . = ALIGN (0x4)
0x000000bc __section_table_start = .
0x000000bc __data_section_table = .
0x000000bc 0x4 LONG 0x14a0 LOADADDR (.data)
Now I have little knowledge of what the above means but it appears to have a 'knock on' effect on the addresses of the following interrupt vectors. The difference between 0x14bc and 0x14a0 is 0x1c (or 28 decimal)
If anyone has any ideas about this I would be very grateful - its driving me nuts and wasting an awful lot of time.
Thanks,
Ian James