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

Secondary UART bootloader example

I'm looking for some example code to write a secondary UART based bootloader, my design has an external supervisor/watchdog IC on the board, this means that for the initial programming I need to disable this with a jumper.

Currently the unit is programmed by opening up the unit, fitting a jumper to disable the watchdog and another to pull the ISP pin low, power on the unit and then load the firmware using flash magic.

What i'd like to be able to do is send the application code a command to enter my secondary bootloader, and have that take care of kicking the watchdog.

However when i look for examples everything I find is for things like USB, Ethernet or CAN/I2C, and I don't think are using the same command set as the ROM bootloader.

are there any examples of a UART based bootloaders?

I'd really like to avoid having to write my own flash applications to go with the bootloader, hence wanting to basically replicate the ROM bootloader.

Thanks

Parents
  • Writing a boot loader is a task one typically has to own as a developer. One might have to own writing the complementary Linux or Windows application too.

    You could ask NXP for source of their ROM loader, or review a disassembly so that you might use parts of it directly, either via an API, or mix-n-match some of your own wrapper code to manage your board.

    Often the primary loader can permit downloading a secondary loader into RAM, this can then deal with idiosyncrasies of specific board hardware.

    Secondary loaders frequently implement a different protocol, that's not vendor specific, often something that already works in the terminal application the end user might already have, like X/Y-MODEM

Reply
  • Writing a boot loader is a task one typically has to own as a developer. One might have to own writing the complementary Linux or Windows application too.

    You could ask NXP for source of their ROM loader, or review a disassembly so that you might use parts of it directly, either via an API, or mix-n-match some of your own wrapper code to manage your board.

    Often the primary loader can permit downloading a secondary loader into RAM, this can then deal with idiosyncrasies of specific board hardware.

    Secondary loaders frequently implement a different protocol, that's not vendor specific, often something that already works in the terminal application the end user might already have, like X/Y-MODEM

Children
No data