在Bootloader官方例程bootldasm工程中bootloader.asm第2522行后面几行:
;/// 前面开注释使编译地址 0x801冲突,确定填充到0x0800地址,即满足前1k+1字节的填满
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 固定和bootloader相关函数的入口,使前1K固定适用各种程序空间放置
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.ORG 0X0801
PAGESEL _int_fun0
CALL _int_fun0 ;// 高级中断入口
CRET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.ORG 0X0804
PAGESEL _int_fun1
CALL _int_fun1 ;// 低级中断入口
CRET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.ORG 0X0807
PAGESEL _startup
CALL _startup ;// 进入到用户程序的引导管理 :加载校准(bootloader加载过的,可以省略)
PAGESEL __gsinit_startup
CALL __gsinit_startup ;// 初始化RAM的函数,变量清零或初值设入
PAGESEL _MAIN_FUN
CALL _MAIN_FUN ;// 转入用户代码
CRET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 前1k外的不可自写段不做代码使用,但扣除最后x字节的脚本配置,具体型号要参考chiponcc目录下kfl的型号配置,KF8F4156占用8个地址
.ORG 0X1FE0
.dw 0x0000
.dw 0x0000
.dw 0x0000
.dw 0x0000
.dw 0x0000
.dw 0x0000
1.前面开注释使编译地址 0x801冲突,确定填充到0x0800地址,即满足前1k+1字节的填满
这句注释,0x0800地址不是2K×16位吗,注释里怎么写成1k+1个字节?
2.还有.ORG 0Xxxx,这几个语句的地址代表什么?不同型号的芯片又怎么修改?
求大佬帮忙解答一下,谢谢。 |