搜索
bottom↓
回复: 8

请教单片机程序升级中为什么需要定义用户中断向量表?

[复制链接]
(65903321)

出0入0汤圆

发表于 2019-3-16 10:33:01 | 显示全部楼层 |阅读模式
本帖最后由 擦鞋匠 于 2019-3-16 10:57 编辑

额,我准备使用iar+msp430f5438a做个bootloader,实现串口程序升级。现有如下疑问,恳请各位不吝赐教!谢谢!

图1:


图2:


问题1:如图1,这是msp430f5438a标准.xcl文件,请问,针对constant-data,为什么10000-10039被故意漏掉?

问题2:如图2,程序code和常量数据constant-data是统一编址的,地址你范围是005C00h-045BFFh,但是中间需要“智能跳过”中断向量表00FF80h-00FFFFh,为什么不直接将中断向量表地址直接放在这段内存(005C00h-045BFFh)的开始位置或者结尾位置呢?

问题3:升级iap程序和应用app程序不能使用同一个中断向量表嘛,干嘛非要在应用app程序中额外定义用户中断向量表呢?如果非要定义用户中断向量表,那么这个用户中断向量表的地址可以任意指定嘛?

恳请各位指教,感谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
(65698505)

出0入0汤圆

 楼主| 发表于 2019-3-18 19:26:37 | 显示全部楼层
欢迎大家莅临指导,感谢!
(65696267)

出0入0汤圆

发表于 2019-3-18 20:03:55 | 显示全部楼层
本帖最后由 CoolBird007 于 2019-3-18 20:05 编辑

坐等高手回答。
(65695258)

出0入0汤圆

发表于 2019-3-18 20:20:44 | 显示全部楼层
BOOLOADER 要用中断,指定的地址就放了BOOLOADER中断代码了, APP中断代码不重新指定位置,那就把BOOLOAER的中断代码覆盖了
(65689890)

出0入0汤圆

 楼主| 发表于 2019-3-18 21:50:12 | 显示全部楼层
tcm123 发表于 2019-3-18 20:20
BOOLOADER 要用中断,指定的地址就放了BOOLOADER中断代码了, APP中断代码不重新指定位置,那就把BOOLOAER ...

感谢阁下悉心指教!
我还是有点迷糊,难道是担心bootloader和app中相同的中断源会发生冲突?
那如果我bootloader和app中不存在相同的中断源(或者我在bootloader中根本就不使用中断),那是不是就可以不用额外定义用户中断了?
(65650281)

出0入0汤圆

发表于 2019-3-19 08:50:21 | 显示全部楼层
擦鞋匠 发表于 2019-3-18 21:50
感谢阁下悉心指教!
我还是有点迷糊,难道是担心bootloader和app中相同的中断源会发生冲突?
那如果我boo ...

代码烧写时通常按页写了,就会覆盖BOOTLOADER除中断向量表外的其他代码,所以一般APP跟BOOTLOADER一般放在不同的地址区间

这只是我的理解
(65640737)

出55入66汤圆

发表于 2019-3-19 11:29:25 来自手机 | 显示全部楼层
简单的说,bootloader不知道固件的中断处理函数地址,所以需要中断向量表转向
(65640458)

出0入0汤圆

发表于 2019-3-19 11:34:04 | 显示全部楼层
我怎么记得430的16位MCU,中断向量位置是固定的?
(65635548)

出0入0汤圆

发表于 2019-3-19 12:55:54 | 显示全部楼层
可以把APP放在flash前半部分, BOOT放在flash后半部分, 那么APP就不需要处理中断向量重映射.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号 )

GMT+8, 2021-4-17 05:01

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表