TI论坛
直播中

高媛

7年用户 162经验值
私信 关注
[问答]

求教2812的启动及中断过程

看到资料2812启动过程是这样的:
1:上电运行时根据MP/MC引脚的状态决定是从片外的3fffc0处读取复位向量或者时从片内的rom的3fffc0处读取复位向量。MC方式下从片内读取,MP方式下从片外读取。
2:一般我们用的是MC方式,即从片内读取复位向量,在片内的rom 3fffc0处有一个地址为3ffc00。
3:复位后处理器从3fffc0处读取3ffc00这个地址,所以程序从3ffc00处开始执行
4:3ffc00处开始的就是initboot过程吧,根据IO管教的状态判断该进入那一种引导方式
5:在SCITXA引脚为高电平时就是flash boot方式,此时置PC=3F7FF6
6:在片内flash的3F7FF6和3F7FF7处有一个跳转指令,该跳转指令就是LB _c_int00
7:执行这个跳转指令后程序就开始运行c_int00这个函数了
8:这个函数就是建立一个c程序的运行环境,等建立完c运行环境后c_int00调用main函数
9:main函数开始就是我们自己编写的应用程序了。
请问这样的过程描述正确么?
外设的中断是不是在任何启动模式后,都只有通过PIE才能处理么?  PIE的中断向量表是在用户程序里COPY进去的么?  如果不COPY中断向量表,但有使用了外设中断,那将出现什么情况.跑飞么?

回帖(3)

孙燕冉

2018-11-21 14:56:02
你的理解是正确的
举报

冯敬宇

2018-11-21 15:11:48
xiaonan,
1. C2000的上电启动与你说的 step1~9一致,不同系列区别在于step1判定引导模式的方式不一样而已。
2. 外设的中断需要使能PIE进行中断扩展。PIE的中断向量表是在RAM的,所以用户必须在main中对中断向量表进行初始化,否则RAM中的内容是随机的。如果没在中断向量表初始化成正确的函数入口,那么当中断产生的时候,CPU到RAM区域去拿函数入口地址,如果是不对的,那肯定会跑飞。
Eric
                                                                         - ERIC
举报

高媛

2018-11-21 15:20:40
引用: guigui_7044 发表于 2018-11-21 09:26
xiaonan,
1. C2000的上电启动与你说的 step1~9一致,不同系列区别在于step1判定引导模式的方式不一样而已。
2. 外设的中断需要使能PIE进行中断扩展。PIE的中断向量表是在RAM的,所以用户必须在main中对中断向量表进行初始化,否则RAM中的内容是随机的。如果没在中断向量表初始化成正确的函数入口,那么当中断产生的时候,CP ...

非常感谢你的回答,现在明白两个中断向量表的区别了。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分