Hi all, I am a newbie of ARM embedded programming, only worked with ARM mcu for a little more than 3 months. I had a problem that at this stage am unable to solve and would appreciate if anyone can help or give suggestion. In my application, I had a bootloader that, on device reset, it detects on network (via Lonwork's MIP) if the axf inmage should be updated. If the axf needs update, the bootloader receives and assembles the packets of the new axf file sent to it via a separate application to a RAM area, then CRC checks the file before write the updated axf image to flash ROM area starts a fixed address. The bootloader handles vectors setup, remap, and read/write to and from the flash and start the application etc. The axf file is compiled and linked separately using ARM Project Manager from C codes without any ARM asssembly remapping and setup as this has already been done by the bootloader So far, I have the bootloader works as intended and verified that the updated axf image has been correctly written to the flash area as intended. However when the bootloader jumps to the address where the (updated) axf file begin to execute the application, nothing happens. That is the application does not run. If anyone has any solution or suggestion, it would be greatly appreciated. Thanks, Victor
updated axf image in flash
Started by ●January 18, 2007
Reply by ●January 22, 20072007-01-22
Hi all I found out what the problem was. The entry point to the image of my application which I compiled separately was almost always NOT at the start of the image as I assumed (dangerous assumption). Every time the application recompiled with minor alteration, the address of entry point of its image changes and is indicated at the end of the listing. What I do is to pass this entry point address from the external app and stored it in a location in flash. When I am ready to execute the application, I read the entry point address from this location and jump to it. It works ok now. Cheers, Victor Lu>Hi all, > >I am a newbie of ARM embedded programming, only worked with ARM mcu fora>little more than 3 months. I had a problem that at this stage am unableto>solve >and would appreciate if anyone can help or give suggestion. > >In my application, I had a bootloader that, on device reset, it detectson>network (via Lonwork's MIP) if the axf inmage should be updated. >If the axf needs update, the bootloader receives and assembles thepackets>of the new axf file sent to it via a separate application to a RAM area,>then CRC checks the file before write the updated axf image to flash ROM >area starts a fixed address. > >The bootloader handles vectors setup, remap, and read/write to and from >the flash and start the application etc. >The axf file is compiled and linked separately using ARM Project Manager >from C codes without any ARM asssembly remapping and setup as this has >already >been done by the bootloader > > >So far, I have the bootloader works as intended and verified that the >updated axf image has been correctly written to the flash area as >intended. >However when the bootloader jumps to the address where the (updated) axf >file begin to execute the application, nothing happens. >That is the application does not run. If anyone has any solution or >suggestion, it would be greatly appreciated. > >Thanks, >Victor > > >