|
1、STM32F103VE每页大小为2K。
(1)、整个ROM 空间分为四个部分:
三个程序区: Boot程序、用户程序、IAP升级程序备份
一个标志区: 用户程序标志
a、 Boot程序地址: 0x08000000-0x080027FF 0-4页 共10k 用于程序升级并判断是否有有效程序并跳转到0x08002804 处运行程序
b、 用户程序地址: 0x08002800-0x080347FF 5—104页 共200k 用户程序
c、 IAP升级程序备份地址: 0x08034800-0x080667FF 105—204页 共200k 用于IAP对用户程序进行升级
d、 程序标志地址: 0x08070000-0x080703FF 224页 共2k 保存用户程序是否已经写入标志只有最低四个字节有用。
(2)、RAM分为三个部分:
a、0x20000000-0x200013FF 共5K 用于Boot程序变量使用
b、0x20001400-0x2000EFFF 共60K 用于应用程序变量使用
2. 程序更新过程
(1)、加电后先进入0x0800 0004 Boot程序区
(2)、判断是否有升级程序命令,如果有则进行程序升级,如果3S之内没有升级程序命令,判断224页(0x08070000--0x080703FF)的值进行相应的跳转或不跳转。
a、(0x08070000-- 0x08070003)的值为0x0000 0001,则跳转到地址0x08002804处开始执行程序,此地址为应用程序的起始地址。
b、(0x08070000-- 0x08070003)的值不为0x0000 0001,则等待升级命令。
(3)、注意事项1、应用程序的向量表偏移地址需改为0x2800(NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x2800);)2、在我的程序里面加入应用程序的时候总中断是屏蔽的,在应用程序中需打开总中断。
3、贴出源代码(里面总共有三部分1、BOOT代码2、带ucos应用程序代码3、VC6.0编写的简单升级程序)
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|