8767|12

17

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

关于STM32F100远程升级 [复制链接]

如题,操作如下:板子上有一块片外FLASH,通过串口把程序代码发到单片机烧入片外FLASH,然后单片机自动重启,把片外FLASH的程序更新到单片机上。应该怎么实现?

此帖出自stm32/stm8论坛

最新回复

你的思路是正确的,要注意细节问题 比如你在编译程序的时候一区与二区的地址设置  详情 回复 发表于 2011-4-23 08:34
点赞 关注
 

回复
举报

2131

帖子

0

TA的资源

至上芯片

沙发
 

回复 楼主 SF-BVC 的帖子

1:修改启动代码的加载地址
2:中断向量表的操作
如果说的有问题咱们可以在讨论一下
此帖出自stm32/stm8论坛
 
个人签名处处留心皆学问!
 

回复

4138

帖子

0

TA的资源

五彩晶圆(中级)

板凳
 

回复 沙发 daicheng 的帖子

都是用寻址嘛版主???
此帖出自stm32/stm8论坛
 
 

回复

1282

帖子

10

TA的资源

五彩晶圆(初级)

4
 
有没有这方面的程序?
学习下!
此帖出自stm32/stm8论坛
 
 
 

回复

4138

帖子

0

TA的资源

五彩晶圆(中级)

5
 
这方面很有研究的,叫我课程的老师给我们讲过他们用单片机做的东西就可以在线更新程序的
此帖出自stm32/stm8论坛
 
 
 

回复

2131

帖子

0

TA的资源

至上芯片

6
 

回复 4楼 fxw451 的帖子

现在的产品 都需要能 网络的操作升级 ,只要把跳转地址 中断向量表地址 处理好就行
此帖出自stm32/stm8论坛
 
个人签名处处留心皆学问!
 
 

回复

4138

帖子

0

TA的资源

五彩晶圆(中级)

7
 

回复 6楼 daicheng 的帖子

学习了老大哈哈哈
此帖出自stm32/stm8论坛
 
 
 

回复

1059

帖子

0

TA的资源

纯净的硅(高级)

8
 
学习了.坐等分享经验~
此帖出自stm32/stm8论坛
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

9
 

我已经把代码下载片外FLASH的程序做好了。现在不知道怎么把片内FLASH分区?

此帖出自stm32/stm8论坛
 
 
 

回复

2131

帖子

0

TA的资源

至上芯片

10
 

回复 9楼 SF-BVC 的帖子

分区 你想把程序分成几个部分 ?你可以详细说一下 不然我也不清楚怎么回答你
此帖出自stm32/stm8论坛
 
个人签名处处留心皆学问!
 
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

11
 

我现在的板子是从用户区启动的,我想把内部的用户区分成两个部份,前面16K是一个BOOT区,剩下的是一个应用区。BOOT区会检查是否要更新应用区程序,如果需要则更新,否则运行应用区程序。我昨天看了一段USB更新的代码。仿了一下好像不行。

typedef void (*pFunction)(void);

pFunction Jump_To_Application;

u32 JumpAddress;

int main(void)

{

  if (((*(vu32*)0x8003000) & 0x2FFF0000 ) == 0x20000000)

  { /* Jump to user application */

   JumpAddress = *(vu32*) (ApplicationAddress + 4);

   Jump_To_Application = (pFunction) JumpAddress;

    /* Initialize user application's Stack Pointer */

    __MSR_MSP(*(vu32*) ApplicationAddress);

   Jump_To_Application();

  }

}

这一块好像是跳转过去的。应用区好像是分配在0x08003000。我昨天用这一段下载到0x08003C00,然后把另一个之前用的程序下载到0x08003C00,程序运行到__MSR_MSP这个函数的时候就死在那里了,应该是堆栈之类的出问题,回不去了。

[ 本帖最后由 SF-BVC 于 2011-4-22 15:11 编辑 ]
此帖出自stm32/stm8论坛
 
 
 

回复

2131

帖子

0

TA的资源

至上芯片

12
 

回复 11楼 SF-BVC 的帖子

你的思路是正确的,要注意细节问题
比如你在编译程序的时候一区与二区的地址设置
此帖出自stm32/stm8论坛
 
个人签名处处留心皆学问!
 
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

13
 
我现在把APP的ICF文件的ROM开始改为0x08004000,把BOOT的ICF文件的ROM开始改为0x08000000。分别下载到FLASH中,还是跑不起来。是不是直接用JLINK下载不行?我想先试一下跳转是否成功。
此帖出自stm32/stm8论坛
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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