请教版主,我用的dec33的评估板,想问个bootload的问题?
这是通过_c_int00调用的,初始化运行环境
_c_int00:
;
; Set up the initial stack pointer
;
LDI MMR1,AR0
LSH 9,AR0
LDI PBCR_VAL,R0 ;Init STRB Control Register
STI R0,*+AR0(PBCR)
LDP stack_addr ;get page of stored address
LDI @stack_addr,SP ;load the address into SP
LDI SP,FP ;and into FP too
IACK *AR1
;
; Do autoinitialization
;
LDP init_addr ;get page of stored address;
LDI @init_addr,AR0 ;get address of init tables
CMPI -1,AR0 ;if RAM model, skip init
BEQ done
LDI *AR0++,RC ;get first count
BZD done ;if 0, nothing to do
LDI *AR0++,AR1 ;get dest address
LDI *AR0++,R0 ;get first word
SUBI 1,RC ;count - 1
do_init:
RPTB init ;block copy
init: STI R0,*AR1++
|| LDI *AR0++,R0
LDI R0,RC ;move next count into RC
OR R0,R0 ;test r0 for zero
BNZD do_init ;if there is more, repeat
LDI *AR0++,AR1 ;get next dest address
LDI *AR0++,R0 ;get next first word
SUBI 1,RC ;count - 1
done:
;
; For the small model, set up the DP to point to the .bss section
;
LDP .bss
;
; Call main()
;
CALL _main
CALL _exit
RETI
.end
这里面那几句是关于调用bootloader。a\'sm的啊,请高手指教!
我看到_c_int00只是对一些变量进行初始化,没看到怎么调用bootloader往flash写程序的啊,请指教!