Executing from external Flash

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Executing from external Flash

    I have an application running on an NXP LPC2468 and trying to run out of external NOR FLASH.
    I use IAR EWARM ( and PPARM (2.31) and linking with lib os4t_tl__r.a
    The program comiples and links fine and looking at the map file, all intvect and code is at 0x80000000 onwards.
    I have MEMMAP=0x03 (memory remapped for vectors at 0x80000000).
    After the usual initialisations I call OS_Start.
    When the code runs, the OS timer interrupt fires and calls OS_TICK_Handle. I have one task (this is just a simple test at the moment) and that gets created successfully (it is shown in EW task view).
    However, the task never gets scheduled (I don't even see it getting to OS_Idle). The OS tick interrupt continues to run, it's just that the scheduler doesn't appear to run. If I step through code I see it is in OSKERN.o, OS_TICK_Handle.o etc (I don't have source version) so everything seems to run except no task get scheduled.
    If I build and run from internal FLASH everything is fine. A simple test program with a couple of interrupts but without the OS runs fine from external memory also.
    Has anyone else seen an issue with running embOS from external FLASH at CS0 on LPC2468?
    Any help much appreciated,

  • In case anyone was interested, I now have it working. In the end it was a flash wait state issue. Probably explains why I could step through the code, but not execute normally.
    Since then, I now copy from flash to extrenal sdram, remap vectors and execute from sdram.