|
View:
New views
5 Messages
—
Rating Filter:
Alert me
|
|
|
strucking up in infinite loop for IXP 425Hi,
we are porting ecos for ixp425 we have flashed the image as per the sugessition in the forum but we are running in the infinite loop at this point icache_boundary: // Here is where we switch from boot address (0x000000000) to the // actual flash runtime address. We align to cache boundary so we // execute from cache during the switchover. Cachelines are 8 words. str r1, [r2, #IXP425_EXP_CNFG0] // make the EXP bus switch nop nop nop nop ----> mov pc, r0 nop where the instruction says pc value to load into r0 is at the same location and it goes into infinite loop and never stops execution if i change the pc to ignore the step mov pc,r0 then the code is allowing single stepping but the instruction is not getting effected can any one help out to sort this problem. thanks & regards, Sumanth |
|
|
Re: strucking up in infinite loop for IXP 425On Tue, Feb 28, 2006 at 02:15:38AM -0800, sumanth wrote:
> > Hi, > > we are porting ecos for ixp425 we have flashed the image as > per the sugessition in the forum but we are running in the infinite loop at > this point > > icache_boundary: > // Here is where we switch from boot address (0x000000000) to the > // actual flash runtime address. We align to cache boundary so we > // execute from cache during the switchover. Cachelines are 8 words. > str r1, [r2, #IXP425_EXP_CNFG0] // make the EXP bus switch > nop > nop > nop > nop > ----> mov pc, r0 > nop > > where the instruction says pc value to load into r0 is at the same > location and it goes into infinite loop and never stops execution > > if i change the pc to ignore the step mov > pc,r0 then the code is allowing single stepping but the instruction is not > getting effected > > can any one help out to sort this problem. You probably have your memory map wrong in the linker file .mlt. What address are you linking the image to run at. Andrew -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss |
|
|
|
|
|
Re: strucking up in infinite loop for IXP 425On Fri, Mar 03, 2006 at 10:22:21AM +0530, sumanth.kondlada@... wrote:
> > > Hi Andrew > > thanks for your help Andrew > > I have changed the address from 20000 to 0 location as given > in > manual as per your sugessition in .mlt and .ldi files with > this > I am able to continue upto cyg_hal_plf_pci_init , I am > strucking > at pci , I am strucked up at this call > > HAL_PCI_CFG_WRITE_UINT32(0, 0, CYG_PCI_CFG_BAR_1, > 0x01000000); > > are there any pointers at this situation that can help me Actually, this is not what i said. All i did was ask the question where it was linked to run at. You see that often the FLASH is mapped to 0x0 at boot time. Early in the boot sequence this mapping is changed. The FLASH is put into high memory and RAM is put at 0x0. You program looked to be looping at the point that it jumped from the low address in flash to the high address in flash. So you need to check a few things.... Is the memory map setup so that the image runs at its high address? It should do. All the startup code before the jump will be position independant and so can run at either address. After the jump the code is position dependent and can only run at the address it was linked to. Before the jump what address was in the PC? Low or high? It should be low. When it tries to make the jump, does it try to jump to the low or the high address? It should be high. Is the high address actually correct for the hardware? Just before the jump take a look at the contents of the memory at the high address and make sure it does contain the code. Andrew -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss |
|
|
|
| Free embeddable forum powered by Nabble | Forum Help |