When speaking about good bootloader product for Microchip’s various MCU product series, I put my two cents in “ds30 Loader” from Mikael Gustafsson. However, “ds30 Loader” is no longer available for free to support Micorchip’s latest 70MHz dsPIC33E/PIC24E products… continue on yu.xueming.org
Updates: my blog has moved! Check out yu.xueming.org
Looking for advice regarding IVTs. I’ve done past bootloaders utilizing the normal IVT for the bootloader, and the AIVT for the app, but the dsPIC33EP architecture does not have an AIVT. How would you go about designing a bootloader/app combo where both need IVTs?
Thanks for any help!
-Devon
Hi Devon. The dsPIC33EP does have IVT/AIVT. And the bootloader, or at least my design, doesn’t require the usage of interrupts.
Does the flash file contain new interrupt vectors each time you do a new application ? IE the flash program also overwrites and erases the interrupt table ?
Don’t we need to write a customer gld file in order to locate the boot code as well ? Thanks
Yes, the compile hex file always contain codes for interrupt codes even if you are not using any of them. The interrupt table always gets erased and overwritten.
GLD file is not needed in my approach.
The routine which first erases the flash must start at location zero correct ? Also, how can no GLD file be used. What locates the bootloader at the end of memory ? Thank you
Yes, erase starts from address zero, but you can do any order you want. Bootloader itself was burned into flash through a programmer. You will need to tell the compiler where bootloader will be stored in the program memory (flash). e.g. .section *, code, address(xxxxxx)