OpenEdv-开源电子网

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

关于IAP编程,bootloader用26K,相关参数设置

[复制链接]

4

主题

84

帖子

1

精华

高级会员

Rank: 4

积分
666
金钱
666
注册时间
2013-10-21
在线时间
88 小时
发表于 2014-7-4 07:45:19 | 显示全部楼层 |阅读模式
5金钱
芯片是STM32F103RCT6,我IAP的引导程序想用26K,设置了#define FLASH_APP1_ADDR 0x08006800   //第一个应用程序起始地址(存放在FLASH),

FLASH APP里面sys.c,MY_NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x6800);

设置了这个还不行吗?跳转不到APP区,求教原子哥

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1844
金钱
1844
注册时间
2014-6-27
在线时间
983 小时
发表于 2014-7-4 10:46:57 | 显示全部楼层
这个问题应该不大,只要设置的空间大小放得下IAP引导程序就行,我调试了一个SD卡IAP程序,可以了,但是发现编译后Program Size: Code=10172 RO-data=175744 RW-data=344 ZI-data=9832,好像这个数字不对,太大,编译原子哥给的程序这些数字很小,在这个情况,我的设置是 #define FLASH_APP1_ADDR 0x08005000,也可以用,下载小程序,怎样运行都行,大一点的程序,几十K吧,下载后第一次可以用,把SD取下来,复位,就不能用了,不知道怎么回事。
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-7-4 12:47:43 | 显示全部楼层
回复【2楼】TinyBoy:
---------------------------------
1、bootloader程序涉及到中断的话,就得修改中断地址偏移了
2、你的bootloader这么大么?我的编译后都很小,查看一下看下哪个地方的程序不用就可以删掉,免得占用地方
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

4

主题

84

帖子

1

精华

高级会员

Rank: 4

积分
666
金钱
666
注册时间
2013-10-21
在线时间
88 小时
 楼主| 发表于 2014-7-4 13:38:26 | 显示全部楼层
回复【3楼】Badu_Space:
---------------------------------
我用w5100做的一个http 网页访问更新程序的东西
回复

使用道具 举报

10

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1844
金钱
1844
注册时间
2014-6-27
在线时间
983 小时
发表于 2014-7-4 15:32:43 | 显示全部楼层
Code=10172 这个看起来还好,就是RO-data=175744 看不明白
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-7-4 23:08:10 | 显示全部楼层
回复【5楼】TinyBoy:
---------------------------------
Ro就是read only的意思,也就是你const之类的数组太多了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

10

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1844
金钱
1844
注册时间
2014-6-27
在线时间
983 小时
发表于 2014-7-7 11:00:13 | 显示全部楼层
谢谢原子哥,我搞明白了!我发现,如果const之类的数组太多,在分配IROM1的时候,还要考虑为这些const之类的数据也留下空间才行,我的一个应用程序,需要用到很多const之类的数据,如果我的IROM1分配的时候:用0x8005000和0x7B000,用IAP下载后无法运行,我改成:用0x8005000和0x4B000,就可以了,当然,这是数字可以通过编译出来的提示来计算分配的空间大小。
回复

使用道具 举报

4

主题

84

帖子

1

精华

高级会员

Rank: 4

积分
666
金钱
666
注册时间
2013-10-21
在线时间
88 小时
 楼主| 发表于 2014-7-7 11:03:07 | 显示全部楼层
回复【7楼】TinyBoy:
---------------------------------
为啥我的问题没人说下呢。bootloader不能超过20K么
回复

使用道具 举报

10

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1844
金钱
1844
注册时间
2014-6-27
在线时间
983 小时
发表于 2014-7-7 11:34:40 | 显示全部楼层
可以啊,你计算一下,然后根据计算设置空间大小就可以了。
回复

使用道具 举报

10

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1844
金钱
1844
注册时间
2014-6-27
在线时间
983 小时
发表于 2014-7-7 16:58:20 | 显示全部楼层
你分配128K给APP看,当然,APP如果不从超过128K的话,就是说,从NVIC_VectTab_FLASH+0x6800起,后面的不要全部分配给APP。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-6 13:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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