netX 90 APP side Flash Memory programming

Q

Is it possible to programm the netX 90 APP side Flash Memory INTFLASH 2 from the user application?

A

The Flash Memory INTFLASH 2 on the netX 90 APP side is regarded as ROM for storage of program code and const data. The program code is executed "in place", i.e. the CPU fetches instructions directly from the flash memory. INTFLASH 2 is not intended to be used as remanent data storage.

Why?

Because it is not possible to execute code from flash memory and erase/program it at the same time. While an INTFLASH 2 sector is erased or programmed, the CPU must not fetch any instruction from the flash memory.

Technically it is possible to locate the flash programming software routines into the SRAM or SDRAM and execute code exclusively from RAM during erase/write access to INTFLASH 2. No interrupts may occur in this case, which might lead to a flash read access (e.g. call of ISRs, interrupt vector table access). This is practically not possible in parallel to a running real time ethernet communication.

Hilscher does not provide such a solution.

Proposed solutions:

  • usage of an external SPI or SQI Flash Memory for remanent data storage
    Hilscher provides an → example software
  • in use case C it is possible to download/upload data over iDPM to the netX 90 COM side firmware, which stores the data into the filesystem of the external SQI Flash Memory.
    The cifX API functions xChannelDownload(), xChannelUpload() or the underlaying mailbox packet services can be used.
    (warning) This mechanism is not intended to be used for frequently changing data like logging or operation time counters, etc. It is intended for "static" configuration data.