Strictly necessary cookies are on by default and cannot be turned off. Functional, Performance and Tracking/targeting/sharing cookies can be turned on below based on your preferences (this banner will remain available for you to accept cookies). You may change your cookie settings by deleting cookies from your browser. Then this banner will appear again. You can learn more details about cookies HERE.
Strictly necessary (always on)
Functional, Performance and Tracking/targeting/sharing (default off)
I am working on a custom board based on FX3 that has no EEPROM or hardcoded bootloader to acommodate 0xA0 vendor requests without implementation. So I implemented my own vendor request that transfers from a computer to RAM the image of a firmware, Since I want to execute it as well I thought that modifying the reset interrupt and then causing a warm reset would do the trick. However I am unable to figure out how can I know the entry point of a firmware I am uploading at runtime and if it is possible to do it without having to request for it as parameter. How does the hardcoded bootloader know what the entry point of an image soon to be uploaded to RAM is ?
- FX3 has got an internal hard-coded boot-loader which supports A0 vendor command to load the firmware into the RAM. Please let know the reason why this cannot be used in your application to download the firmware to RAM.
- Anyway, custom vendor commands can be used to load the firmware image file into the FX3 RAM. To implement this, the code handling the vendor command must be designed to check the integrity of the firmware file that is being downloaded into the RAM. As a reference implementation, you can refer to the Fx3BootAppGcc example firmware that comes with the FX3 SDK.
- The FX3 IMG file format is mentioned in the below app note. Refer to sections 5.3 and 5.4
The firmware entry point is specified by a 4-byte address after the termination of the image and before the checksum. This address can be passed as a parameter to the CyFx3BootJumpToProgramEntry() API to switch the control to the entry point of the newly loaded firmware.