??? 03/18/09 12:11 Read: times |
#163569 - modules Responding to: ???'s previous message |
in the bootloader:
$NOMOD51 $include (CAPPBASE.h) EXTRN CODE (?C_STARTUP) EXTRN CODE (ISR_EI0) ............ EXTRN BIT (GBboot) CSEG AT 000h ;reset ljmp startup CSEG AT 003h ;int 0 ljmp ISC_EI0 ....... // here switches between boot and app. ISC_EI0: jnb GBboot,appET0 //int 0 ljmp ISR_EI0 appET0: ljmp APPBASE + 000h .... startup:; setb GBboot mov dptr,#0fbffh mov a,#0 movc a,@a+dptr jnz startAP ; if last page of flash is erased we are in app mode ljmp ?C_STARTUP startAP: clr GBboot ljmp APPBASE + 060h end in the app $NOMOD51 $include (MAPPBASE.h) EXTRN CODE (ISR_EI0) EXTRN CODE (?C_STARTUP) CSEG AT APPBASE + 000h ;int 0 ljmp ISR_EI0 ....... CSEG AT APPBASE + 060h ;int 20 ljmp ?C_STARTUP end startup modified like this $INCLUDE (cyf120.h) ?C_C51STARTUP SEGMENT CODE ?STACK SEGMENT IDATA RSEG ?STACK DS 1 EXTRN CODE (?C_START) PUBLIC ?C_STARTUP RSEG ?C_C51STARTUP ?C_STARTUP: ;; disable watchdog (should be enabled after initialization) Erik |
Topic | Author | Date |
Bootloader code in C - ISR locations | 01/01/70 00:00 | |
I have done something similar ..... | 01/01/70 00:00 | |
my application code is in C but bootloader in assembly 8051 | 01/01/70 00:00 | |
modules | 01/01/70 00:00 | |
Thanks![]() | 01/01/70 00:00 |