wang cui wrote: > Fine for me. > Does eCos maintainer read this? Is it worth to patch this into CVS?
Yes. Send a proposed patch to [EMAIL PROTECTED] and we'll review it. > > >> From: Sergei Gavrikov <[EMAIL PROTECTED]> >> To: wang cui <[EMAIL PROTECTED]> >> CC: [EMAIL PROTECTED], [email protected] >> Subject: Re: [ECOS] LPC2XXX: Spurious Interrupts Issue >> Date: Sat, 3 Feb 2007 00:39:19 +0200 (EET) >> >> >> >> On Fri, 2 Feb 2007, wang cui wrote: >> >>>> Thanks, I brief look at the patch. You fix the LPC2XX vector table. >>>> ... >>> I raised discrssion about this issue serval months ago: >>> http://sources.redhat.com/ml/ecos-discuss/2006-08/msg00225.html I >>> think Gary's advice is a good solution, and I just havn't done it yet. >>> So still leave this piece of ugly code here. :-) >> >>> As I need burn the image into off-chip flash, so the ARM_VECTOR_0x14 >>> should be set correctly without rely on burner. Of cource, your >>> suggestion of do it with a script in "make" process is good, but how >>> about Redboot(I don't think modify Redboot's make process is >>> resonable)? And other newbies may be very hard to catch this >>> problem(because they can't find any info from CVS except search >>> maillist). >>> >>> So I suggest to solve it in Gary's way. We add a CDL interface in ARM >>> arch package to allow user configure ARM_VECTOR_0x14, then add a CDL >>> implemention in LPC2XXX's variant package. >>> >>> What is your opinion? Hope we can solve this issue. >> >> I did miss that issue. I read, thanks, So, there is an inclusion >> of the <pkgconf/hal.h> at first in vector.S, therefore, to wrap >> 'unused' vector at 0x14 (as Gary suggested) by that condition in >> vector.S would be enough for everybody >> >> #ifdef CYGSEM_HAL_ARM_VECTOR_0x14 >> .word CYGSEM_HAL_ARM_VECTOR_0x14 >> #else >> .word 0 >> #endif >> >> IMO, such a CDL option would be introduced in variant, that will >> be in cyg/hal/hal_arm_lpc2xxx.h (= hal.h) then >> >> cdl_option CYGSEM_HAL_ARM_VECTOR_0x14 { >> display "Default value of unused vector" >> flavor data >> default_value <today value> >> description " >> In order to detect if a valid program is present, every >> user program must have a program signature. This signature >> is a word-wide number that is stored in the unused >> location in the ARM7 vector table at 0x00000014. The >> program signature is the two's compliment of the checksum >> of the ARM vector table." >> } >> >> Gary pointed out then >> >> Gary> The other problem I see is that this may not >> Gary> be constant as you have made it. Would it not >> Gary> change if the various other vector handlers move >> Gary> around, i.e. if 'abort_data' changes address, >> Gary> etc? Would it not need to be [re]calculated? >> >> Well, we know that <cyg/hal/hal_platform_setup.h> include itself in >> vector.S then (after hal.h), therefore, the target specific assembler >> code would contain a commented note (at EOF), like a memory stick >> >> #if 0 >> #undef CYGSEM_HAL_ARM_VECTOR_0x14 >> // In order to detect if a valid program is present, >> // every user program must have a program signature. This >> // signature is a word-wide number that is stored >> // in the unused location in the ARM7 vector table >> // at 0x00000014. The program signature is the two's >> // compliment of the checksum of the ARM vector table. >> #define CYSEM_HAL_ARM_VECTOR_0x14 <tommorow value> >> #endif >> >> In this case an advanced user would be overwrite that then without >> reconfigure build tree. -- ------------------------------------------------------------ Gary Thomas | Consulting for the MLB Associates | Embedded world ------------------------------------------------------------ -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
