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

In circuit programming

I have an (external) 512 Kbyte flash using the Harvard model, and an Atmel 89C51 processor.

I understand the code must move the boot loader code from flash to RAM for execution. (This assumption based on recent articles in Embedded Systems Programming and Circuit Cellar.)

I assume this means a separate RAM chip must be installed in the program (ie, not data) space.

Is this correct?

Any references or articles on this topic with respect to 8051 family?

Thanks.

Parents
  • Typically, the initialization code and boot loader are permanently located in the 89C5x internal flash. The external flash is then mapped into banks above the internal code address space.

    Since the boot loader itself will not be field upgradeable, this code should be tight, general purpose, and well tested.

    The external flash should be programmed in accordance with JEDEC standard 21-C section 3.5, which can be found at:

    http://www.jedec.org

    Remember that during programming the external flash must be mapped into the data memory space, so that you can write and verify it. We sometimes temporarily disable some RAM or memory mapped I/O using a flash programing mode control bit (one of the 89C5x I/O ports) to make room in the data space for the flash.

    I suppose you could use RAM instead of internal flash to run your boot loader, but this requires that the flash be pre-programmed when the board is manufactured. As Mark pointed out, the RAM, like the flash, will have to be mapped into both the code and data address spaces.

Reply
  • Typically, the initialization code and boot loader are permanently located in the 89C5x internal flash. The external flash is then mapped into banks above the internal code address space.

    Since the boot loader itself will not be field upgradeable, this code should be tight, general purpose, and well tested.

    The external flash should be programmed in accordance with JEDEC standard 21-C section 3.5, which can be found at:

    http://www.jedec.org

    Remember that during programming the external flash must be mapped into the data memory space, so that you can write and verify it. We sometimes temporarily disable some RAM or memory mapped I/O using a flash programing mode control bit (one of the 89C5x I/O ports) to make room in the data space for the flash.

    I suppose you could use RAM instead of internal flash to run your boot loader, but this requires that the flash be pre-programmed when the board is manufactured. As Mark pointed out, the RAM, like the flash, will have to be mapped into both the code and data address spaces.

Children
No data