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-Application Programming of 89C51RD+

In the following code fragment,

QDATA code NtscROM[CSR_ROM_SIZE] =
{
// Philips configuration ROM for NTSC
0x0404E525, // Bus Info Length, CRC length, CRC
0x31333934, // "1394"
0xE0644000, // node capabilities
0x00603700, // node_vendor_id:0x006037 Philips Semiconductors, chip_id_hi
0x4E545343, // chip_id_low

I need my running application to over-write some of the entries
in the compiled-in "ROM" table. Philips has some assembly samples
(See Philips Application Note AN461) but I don't know how to fit
this together with my 'C' code. Anybody know how to do this?

Thanks,
jmh

Parents
  • The RD+ has a built-in API to flash code (see datasheet of RD+). The functions of this API are not compatible with the calling conventions of C51, so you have to write some wrapper functions in assembly, to move parameters to the correct registers.

    Your table has to be put into a separate block of the flash memory. The RD+ is divided in four of such blocks.

    By the way, I've heard that the RD+ will be obsolete next year, so better look for the RD2.

Reply
  • The RD+ has a built-in API to flash code (see datasheet of RD+). The functions of this API are not compatible with the calling conventions of C51, so you have to write some wrapper functions in assembly, to move parameters to the correct registers.

    Your table has to be put into a separate block of the flash memory. The RD+ is divided in four of such blocks.

    By the way, I've heard that the RD+ will be obsolete next year, so better look for the RD2.

Children