OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6106|回复: 12

请教IAP的问题

[复制链接]

14

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2012-8-21
在线时间
29 小时
发表于 2013-6-17 21:55:09 | 显示全部楼层 |阅读模式
用bootloader加载APP可以理解,但是如果直接把app的烧写的flash的初始地址改为0x08010000,再程序中把向量表的偏移量也设为0x10000,不知道这样为什么程序会跑飞。还希望原子哥给予解答一下,确实对底层了解比较少。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-6-18 00:30:31 | 显示全部楼层
回复【楼主位】枫叶情缘:
---------------------------------
请先学习下我们战舰板的串口IAP实验,这个例程.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

25

主题

683

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1351
金钱
1351
注册时间
2012-4-25
在线时间
195 小时
发表于 2013-6-18 09:13:12 | 显示全部楼层
应该是你哪搞错了,很早之前我就是这样弄的
1-1
回复 支持 反对

使用道具 举报

14

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2012-8-21
在线时间
29 小时
 楼主| 发表于 2013-6-19 13:20:39 | 显示全部楼层
回复【2楼】 正点原子 :
回复【楼主位】 枫叶情缘 : --------------------------------- 请先学习下我们战舰板的串口IAP实验,这个例程.
---------------------------------
例程我看了,板子也在试过,现在就是一个地方搞不太懂,下面的两段话是从《STM32的IAP方案》中摘出来的:
3、 在新程序main函数执行的过程中,一个中断请求来临,PC指针仍会回转至地址为0x8000004中断向量表处,而并不是新程序的中断向量表,如图2中标号○5所示。注意到这是由STM32的硬件机制决定的。
4
、 根据中断源跳转至对应的中断服务,如图2中标号○6所示。注意此时是跳转至了新程序的中断服务程序中。


其中3明白,关键是4为什么它直接跳转到新程序的中断服务程序中了,而不是bootloader的中断服务程序中,求解?

回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-6-19 18:45:26 | 显示全部楼层
应为设置的中断向量偏移表。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

14

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2012-8-21
在线时间
29 小时
 楼主| 发表于 2013-6-21 08:45:44 | 显示全部楼层
回复【3楼】mygod:
应该是你哪搞错了,很早之前我就是这样弄的
---------------------------------
我的意思是能不能不用bootloader程序,直接通过修改APP程序的中断向量表的偏移量,即在main函数的第一行加上SCB->VTOR = FLASH_BASE | 0x10000;    这样一段,再修改一下flash的烧写地址从0x08000000开始,我试了好几次都不行,不知道是本来就不支持还是我没改好程序。
求解答
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-6-22 13:01:59 | 显示全部楼层
可以,本来就是这么做的.
你还是先学习下我们的串口IAP例程吧,把那个例程弄懂了,自然就明白了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

14

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2012-8-21
在线时间
29 小时
 楼主| 发表于 2013-6-24 08:44:57 | 显示全部楼层
回复【7楼】正点原子:
可以,本来就是这么做的. 你还是先学习下我们的串口IAP例程吧,把那个例程弄懂了,自然就明白了.
---------------------------------
原子哥的例程我看了好几遍了,现在的疑问或者问题就是直接把那个IAP例程中的《RTC实验_FLASH_APP》直接通过mcuisp烧写到stm32中,为什么不能直接运行呢,非要用bootloader加载?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-6-24 10:27:44 | 显示全部楼层
回复【8楼】枫叶情缘:
---------------------------------
你觉得为什么要能运行?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

14

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2012-8-21
在线时间
29 小时
 楼主| 发表于 2013-6-24 10:47:44 | 显示全部楼层
回复【9楼】正点原子:
---------------------------------
这个就像我把程序不是烧在flash的0x08000000地址,而是往后面偏了0x10000。
我的设想是既然设置了向量偏移量,那上电之后执行复位向量应该也能找到偏移后的复位函数把,难道不能这么理解么?
我感觉我钻了牛角了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-6-24 16:16:08 | 显示全部楼层
如果能按你的理解,那就应该可以运行了.
你自己试试能不能运行就知道了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-6-24 16:16:32 | 显示全部楼层
答案从实践得来
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-6-24 16:18:25 | 显示全部楼层
就像刚出社会的小伙子,方方正正.

经过社会的磨练,就变得圆圆滑滑了....
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-18 10:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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