您的位置 首页 电子

F020在线晋级程序

分为三大CODE保存区:升级程序区+用户程序区+用户Main入口地址保存区复位0x0000-0x0003地址保存LJMPmain命令例如C:0x000002F741LJMPSTART…


分为三大CODE保存区:
晋级程序区+用户程序区+用户Main进口地址保存区

复位0x0000-0x0003地址保存LJMP main指令
例如
C:0x000002F741LJMPSTARTUP1(C:F741)
0x0000 – 0x0003存储的便是02F741 ,其间02是LJMP指令码,F741是跳转地址(main),其实也不是main的地址,在main之前,还维护仓库初始化等代码(经过汇编能够看到)。

0x0003之后的是各种中止的地址,比方你的程序中
void SMBUS_ISR (void) interrupt 7
{
}
SMBUS_ISR这个SMBUS中止函数的地址就保存在0x003B处

一个程序实践上便是由中止向量+用户代码程序构成
其间中止向量是在第一个扇区内

关于KEIL来说,除非特别指定函数地址,在编写完程序后,编译器会主动分配函数的地址,也就说改动编译后,中止向量中的地址都可能发生改动

关于KEIL,能够指定程序代码的位址,但这个位址是用户代码地址。
例如在Option For Target -àBL Loate -àcode Range 0XEA00-0XFDFF
代码实践区:中止向量(第一个扇区)+ 0XEA00-0XFDFF

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/dianzi/276738.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部