3958|8

72

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教香版和做过IAP的朋友两个关于IAP的问题 [复制链接]

__________________
                  |
                  |
用户程序          |
(应用程序1)       |
                  |
------------------                  
中断向量表      |
(中断向量表2)   |
-------------------0X08002000                
  IAP-BootLoader  |
------------------                  
程序中断向量表    |
(中断向量表1)   |                
-------------------0X08000000


请问

1 。我在做CM3的IAP升级程序的时候,我把BOOT程序放在从0X08000000开始的地方,应用程序放在0X08002000开始的地方,也就是不从0X08000000开始,可是程序中断向量表却在0X08000000开始,也就是说应用程序一旦发生中断,比如TIMER中

断,程序就跳到0X08000000到0X080000E8中的一行即跳到中断向量表1了,可这已是BOOT程序了呀?也就是说:在用户程序(应用程序1)中,进不了中断了,我怎么改,要应用程序1在产生中断的时候跳到中断向量表2,而中断向量表2中有一

条跳转指令,跳转到对应的中断服务程序中。
2。关于烧写的问题,如何能在FLASH中把程序烧成如上图所示的样子,是否是这样分别建两个工程,把着两个工程lnkarm_flash.xcl的-DROMSTART分别设为-DROMSTART=0x08002000和-DROMSTART=0x08002000,就可以了吗?

此帖出自stm32/stm8论坛

最新回复

                                 回ST_ARM:打错字了        1。  关于烧写的问题,如何能在FLASH中把程序烧成如上图所示的样子,是否是这样分别建两个工程(IAP-BootLoader工程  和用户程序工程)把着两个工程lnkarm_flash.xcl的-DROMSTART分别设为IAP-BootLoader工程的 -DROMSTART=0x08002000 和用户程序工程 -DROMSTART=0x08002000,就可以了吗?我用的的力源的烧写软件。程序在FLASH中结构如1楼的图所示。2。文档AN2557我看了,怎么设置PC上的终端软件是说了,可那个PC上的终端软件叫什么名字,在哪下载啊   详情 回复 发表于 2009-2-24 15:46
点赞 关注
 

回复
举报

76

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

还有在笔记AN2557中提到的上位机程序

                                 还有在笔记AN2557中提到的上位机程序(串口中端)在哪有的下载啊?是否随便一个串口终端都可以呢?
此帖出自stm32/stm8论坛
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

笔记AN2557中的程序只能用IAR FOR ARM 5.2打开吧

                                 笔记AN2557中的程序只能用IAR FOR ARM 5.2打开吧,4.22好象打不开
此帖出自stm32/stm8论坛
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

4
 

请参考ST的IAP应用文档:AN2557

                                 你的两个问题在该文档里都有解答。
此帖出自stm32/stm8论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

5
 

补充一下

补充一下,我在第二个工程中把,
NVIC_SetVectorTabl(NVIC_VectTab_FLASH, 0x00002000); 改了
此帖出自stm32/stm8论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

6
 

AN2557中那个PDF中有答案?

                                 AN2557中那个PDF中有答案?
此帖出自stm32/stm8论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

7
 

AN2557

 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

8
 

为何要改?

NVIC_SetVectorTabl(NVIC_VectTab_FLASH, 0x00002000); 改为什么了?

1 。我在做CM3的IAP升级程序的时候,我把BOOT程序放在从0X08000000开始的地方,应用程序放在0X08002000开始的地方,也就是不从0X08000000开始,可是程序中断向量表却在0X08000000开始,也就是说应用程序一旦发生中断,比如TIMER中
断,程序就跳到0X08000000到0X080000E8中的一行即跳到中断向量表1了,可这已是BOOT程序了呀?也就是说:在用户程序(应用程序1)中,进不了中断了,我怎么改,要应用程序1在产生中断的时候跳到中断向量表2,而中断向量表2中有一条跳转指令,跳转到对应的中断服务程序中

答:在用户程序中,运行了NVIC_SetVectorTabl(NVIC_VectTab_FLASH, 0x00002000);,系统就将Cortex-M3的中断跳转地址变为以0x2000为相对起始地址,当发生中断时,中断将跳转到Flash中以0x2000+相对偏移量的地址,以Timer为例,就跳到0X080020E8,而不是0X080000E8。


2。关于烧写的问题,如何能在FLASH中把程序烧成如上图所示的样子,是否是这样分别建两个工程,把着两个工程lnkarm_flash.xcl的-DROMSTART分别设为
-DROMSTART=0x08002000 和
-DROMSTART=0x08002000,就可以了吗?
你的两个工程为什么是一样的?
此帖出自stm32/stm8论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

9
 

回ST_ARM:打错字了

回ST_ARM:打错字了
        1。  关于烧写的问题,如何能在FLASH中把程序烧成如上图所示的样子,是否是这样分别建两个工程(IAP-BootLoader工程  和用户程序工程)
把着两个工程lnkarm_flash.xcl的-DROMSTART分别设为
IAP-BootLoader工程的 -DROMSTART=0x08002000 和
用户程序工程 -DROMSTART=0x08002000,就可以了吗?我用的的力源的烧写软件。程序在FLASH中结构如1楼的图所示。
2。文档AN2557我看了,怎么设置PC上的终端软件是说了,可那个PC上的终端软件叫什么名字,在哪下载啊
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表