|
From: Steven P. <sd...@th...> - 2008-03-25 19:18:49
|
Greetings All,
sdcc-2.6.0 was successfully compiling code for a Cypress FX2LP chip until
it hit this bug - [ 1888147 ] SIGSEGV using auto variable.
This spurred me to upgrade to sdcc-2.8.0 (currently using #5117). However,
since doing that, I've come across another problem. The code is loaded
successfully into the FX2LP, but after reset, it behaves unpredictably -
often not renumerating properly and thus not appearing on the USB bus.
Rolling back to a previous version of my code allows sdcc-2.6.0 to compile
it without the SIGSEGV using auto variable problem. This previous version
of my code still exhibits the second problem when compiling with
sdcc-2.8.0. This allows comparison between the output of the two sdcc
versions.
There is a difference between the main .rst files as follows:
sdcc-2.6.0:
438 .area HOME (CODE)
0000 439 __interrupt_vect:
0000 02 00 67 440 ljmp __sdcc_gsinit_startup
sdcc-2.8.0:
447 .area HOME (CODE)
0064 448 __interrupt_vect:
0064 02 00 6C 449 ljmp __sdcc_gsinit_startup
I assume that HOME is meant to be the start of the code segment and that it
should start at address 0000? Why does sdcc-2.8.0 start the interrupt
vector table at 0064? Am I misunderstanding something?
Any other pointers for where I can look to solve this problem would be
greatly appreciated.
Thanks
Steven
|