This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Placing code in NAND flash

Hello,

I am about to start working on a product that is supposed to contain one LPC2478/CM3 variant with 512[KB] internal flash, replacing a product with 2 such processors. Obviously I have a serious problem with ROM, but the designer assured me that some of the code "will be stored in NAND flash". In order to make that work, to my understanding the code in the NAND flash must be copied, by hand, by the program in internal flash, to absolute addressed in external RAM, to which the code can jump (because scatter loading cannot do it). Debugging is going to be hard; if code in the NAND flash needs to be debugged, first my bootloader/application will have to program the NAND flash because uv4 cannot do it (I think), and only then can a debug session be started. In addition, I don't think I'm going to have any debug information for that code.
Do you have any thought/recommendations/corrections you want to share with me?
Thanks in advance

Parents
  • Tamir,

    I would try to avoid using the NAND, because exactly the problems you have mentioned (not directly support in MDK, wear leveling, etc).

    Usually, when you need NANDs you add SDRAMs also to execute the code from SDRAM.

    Other option: ATMEL AT91SAM9263? you have support in MDK, it use a DataFlash for code storage(8 pins and really cheap) then dump to SDRAM for execution.

    If you have no choice, check uClinux, it has support for the LPC2478 NAND controller, you can use the code as base.

Reply
  • Tamir,

    I would try to avoid using the NAND, because exactly the problems you have mentioned (not directly support in MDK, wear leveling, etc).

    Usually, when you need NANDs you add SDRAMs also to execute the code from SDRAM.

    Other option: ATMEL AT91SAM9263? you have support in MDK, it use a DataFlash for code storage(8 pins and really cheap) then dump to SDRAM for execution.

    If you have no choice, check uClinux, it has support for the LPC2478 NAND controller, you can use the code as base.

Children