打印

请教使iap时,主程式要如何设定?

[复制链接]
1331|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
古代人|  楼主 | 2013-2-5 10:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目前在网路上看到2种作法,请问高手们哪种作法才是正确的

作法1:(主程式位置移到0x08003000)
1_修改main.c 中的 NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
      修改成NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x3000);

2_stm32f10x_nvic.h 中的 #defineNVIC_VectTab_FLASH ((u32)0x08000000)
      改为#define NVIC_VectTab_FLASH  ((u32)0x08003000)
3_ lnkarm_flash.xcl 中-DROMSTART=0x8000000改为 -DROMSTART=0x8003000           


作法2:(主程式位置移到0x08003000)
1_修改main.c 中的 NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
      修改成NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x3000);
2_stm32f10x_flash.icf中
     define symbol __ICFEDIT_intvec_start__ = 0x08003000;
     define symbol __ICFEDIT_region_ROM_start__= 0x08003000;

请问1_作法1、作法2哪个才是正确的
     2_lnkarm_flash.xcl找不到?
沙发
dijiudanpianji| | 2013-2-5 12:18 | 只看该作者
记得第九单片机论坛上有很详细的帖子

使用特权

评论回复
板凳
yyql008| | 2013-2-5 21:43 | 只看该作者
应该都可以吧....
你说的主程序即IAP改两个东西就行了.....
一是重新定义flash,因为IAP占用一部分flash,所以你要把IAP占用的去掉.
二是重定义中断向量表,因为IAP会用到中断,主程序也可能用到同个中断,还有falsh重定义了,中断向量表也常常要修改.
你写得两个例子都是做那两件事....,没有谁对谁错,哪个能用就用哪个...
比如IAR,我就只重定义了向量表,二重定义flash,是在工程配置里设置的,不需要改flash的宏定义

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

14

帖子

0

粉丝