??? 12/19/06 13:00 Read: times |
#129743 - boostrap+application Responding to: ???'s previous message |
If Your compiler/linker supports ORG directive - everything
other depends only from You and chip used. - build bootloader, relocated in some segment. Start vector will(must) point to bootloader entry point. Program chip with bootloader. - build applictaion , located in erasable segments , which bootloader can erase/program. In final binary file You will have reset vector, pointed to application entry point. Remove these bytes(delete). Now You can send application to bootloader. But.. .. here You still have problemm with other vectors - for interrupts. If micro can execute from RAM - its ok, both bootloader and application can copy (when starting) place independent routines into ram. Other way is to define (via ORG) entry points for interrupts in application and declare these adresses when building bootloader. So interrupts will pass trough bootloader - bootloader code will make branch to application interrupt routines , when application(not bootloader) is active. This post is only an opinion, not expirience. In my practice i'm using Winbond 78e516b - bootloader is placed in additional flash room (4kB), bootloader can be invoked by application software or by hardware connection (P2.6=0 and P2.7=0,or P4.3=0; in reset condition). For example - we preprogramm PLCC chips with bootloader and application, which is kind of bootloader too.Both are <2kB. After this chips are going to be soldered. When boards arrive for assembling, application is running and waiting to switch to 'hidden' booloader. PC reprograms application trough RS232. After that reprogramming is still availlable- bootloader can be invoked trough hardware or trough software command. regards, Stefan |
Topic | Author | Date |
Multi-Application Programming for 8051 | 01/01/70 00:00 | |
Different projects | 01/01/70 00:00 | |
boostrap+application | 01/01/70 00:00 | |
LX51 not essential. | 01/01/70 00:00 | |
Yes i did it.![]() | 01/01/70 00:00 |