打印

STM32(或者其他型号MCU)程序烧写问题

[复制链接]
3967|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
magic_yuan|  楼主 | 2013-2-18 14:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
magic_yuan|  楼主 | 2013-2-18 14:41 | 只看该作者
如果系统在烧写代码之前进行FALSH块进行检测,那么应该会跳过。。。。。。???

使用特权

评论回复
板凳
airwill| | 2013-2-18 14:47 | 只看该作者
烧写 的时候是按照编译后的结果写进去的. 不论是好的地方, 还是坏的地方, 都是照写不误 (不会跳过那些坏掉的单元).
之后可以通过校验来识别烧写的错误.

使用特权

评论回复
地板
magic_yuan|  楼主 | 2013-2-18 15:13 | 只看该作者
airwill 发表于 2013-2-18 14:47
烧写 的时候是按照编译后的结果写进去的. 不论是好的地方, 还是坏的地方, 都是照写不误 (不会跳过那些坏掉 ...

多谢大侠。
   之后的校验能查出系统将代码写入了“坏死”的单元,然后进行更正(即跳过该“坏死”单元而写入好的地方)?

使用特权

评论回复
5
airwill| | 2013-2-18 16:11 | 只看该作者
然后进行更正(即跳过该“坏死”单元而写入好的地方)?
恐怕是做不到, 因为同样的数据换个地方, 恐怕这些代码不能正常执行了.

使用特权

评论回复
6
magic_yuan|  楼主 | 2013-2-18 17:13 | 只看该作者
airwill 发表于 2013-2-18 16:11
然后进行更正(即跳过该“坏死”单元而写入好的地方)?
恐怕是做不到, 因为同样的数据换个地方, 恐怕这些 ...

那一个MCU里面程序FLASH坏一个单元基本就挂了!?简直有点浪费,不能像U盘一样自动跳过坏死区域!

使用特权

评论回复
7
z_no1| | 2013-2-18 17:22 | 只看该作者
要MCU里FLASH坏一个实在是不容易的。除非你真拿它当EEROM用。10K次寿命不少了,你要烧多少次程序才能烧坏啊。1分钟一次,也要7天呢。如果你真要用FLASH当EEROM用,你自己做一个算法不就结了?
发帖是好事,另外还要动脑子想。

使用特权

评论回复
8
magic_yuan|  楼主 | 2013-2-18 17:29 | 只看该作者
z_no1 发表于 2013-2-18 17:22
要MCU里FLASH坏一个实在是不容易的。除非你真拿它当EEROM用。10K次寿命不少了,你要烧多少次程序才能烧坏啊 ...

多谢大侠!
   我的应用确实是有些特殊。10K次太少,我希望至少是100K次。
   水平有限呢,呵呵。
   写算法估计得改烧写软件了,有待学习提高。

使用特权

评论回复
9
Simon21ic| | 2013-2-18 17:43 | 只看该作者
通用的烧写器应该不具备这个功能,不过可以定制实现这个功能

使用特权

评论回复
10
magic_yuan|  楼主 | 2013-2-18 17:56 | 只看该作者
Simon21ic 发表于 2013-2-18 17:43
通用的烧写器应该不具备这个功能,不过可以定制实现这个功能

多谢!
  定制是指找人开发了!?或者市面上或者MCU公司原厂有这类烧写器?

使用特权

评论回复
11
airwill| | 2013-2-18 18:05 | 只看该作者
magic_yuan 发表于 2013-2-18 17:29
多谢大侠!
   我的应用确实是有些特殊。10K次太少,我希望至少是100K次。
   水平有限呢,呵呵。

通过编程器, 你要烧 10K 次? 太夸张了吧?
平均每天烧个 30~40 次, 够你折腾1年的.
除非当 EEPROM 由软件自动写, 否则你真的不用担心.
当然, 如果真遇到 FLASH 坏块, 也并非没有办法
1. 起始地址就跳过坏块, 之前的 FLASH 都不用了. 这是最简单的办法
2. 定位 FLASH 空间. 编译的时候, 跳过坏块区域 (不过这要使用有些复杂的连接命令)

使用特权

评论回复
评论
Simon21ic 2013-2-18 18:21 回复TA
看具体需求再具体分析,现在下不了什么结论 
12
Simon21ic| | 2013-2-18 18:20 | 只看该作者
magic_yuan 发表于 2013-2-18 17:56
多谢!
  定制是指找人开发了!?或者市面上或者MCU公司原厂有这类烧写器? ...

找人开发或者自己开发,主要看你的预算,预算是在太少的话,只能用现成的通用编程器,不过一般不具备你要的功能。当然,即使找人开发的话,你也要明确准备好你的需求,因为也许可能可以通过其他方式实现你要的功能,而不用定制编程器。

使用特权

评论回复
13
magic_yuan|  楼主 | 2013-2-18 23:14 | 只看该作者
airwill 发表于 2013-2-18 18:05
通过编程器, 你要烧 10K 次? 太夸张了吧?
平均每天烧个 30~40 次, 够你折腾1年的.
除非当 EEPROM 由软件 ...

多谢大侠。
  我希望烧写程序的寿命如同电脑的内存和硬盘的寿命一样。即对下位机MCU的编程寿命和上位机写的编译平台寿命差不多。
   注:市面上的控制平台都是PC机,通过在PC机上写代码来实现控制,现在我想用MCU来代替PC机,但顾虑MCU烧写FLASH的寿命问题。
   所以提出这个问题来请教相关大侠。。。。

使用特权

评论回复
14
magic_yuan|  楼主 | 2013-2-18 23:15 | 只看该作者
Simon21ic 发表于 2013-2-18 18:20
找人开发或者自己开发,主要看你的预算,预算是在太少的话,只能用现成的通用编程器,不过一般不具备你要 ...

多谢!
   如果效果好,寿命长,预算在数K以内,呵呵。

使用特权

评论回复
15
magic_yuan|  楼主 | 2013-2-18 23:16 | 只看该作者
当然估计数K没人鸟我,哈哈。

使用特权

评论回复
16
Simon21ic| | 2013-2-18 23:23 | 只看该作者
如果只是要做几个自己用的话,数K可能够了,如果是要按照产品的要求开发的话,建议施主还是放弃这个念头吧,因为即使能够顾找到人愿意做,估计那个人也不太做得好。当然,就功能而言,LZ要的这个功能其实并不复杂,现在那些做编程器的都可以搞定的。

使用特权

评论回复
17
magic_yuan|  楼主 | 2013-2-18 23:29 | 只看该作者
Simon21ic 发表于 2013-2-18 23:23
如果只是要做几个自己用的话,数K可能够了,如果是要按照产品的要求开发的话,建议施主还是放弃这个念头吧 ...

多谢。
  只需要针对STM32或者或许一种速度更快的MCU设计的编程器即可。达到增加烧写寿命的目的即可。

使用特权

评论回复
18
江枫渔火| | 2013-2-19 11:31 | 只看该作者
你可以用分散加载去设定你的代码位置,避开损坏的区域,不过在生产中,这种措施的必要性应该不大,因为芯片的坏块不会都有或都在一个地方,你也不可能针对每个芯片去写一下分散加载脚本。

使用特权

评论回复
19
flyinginred| | 2013-2-19 21:30 | 只看该作者
程序编译好之后 代码所在的地址已经固定了 烧录到别的地方 程序还能运行么?

使用特权

评论回复
20
flyinginred| | 2013-2-19 21:36 | 只看该作者
不如直接用带座的 直接换cpu好了

使用特权

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

本版积分规则

个人签名:发到3000帖时,生活大概完成了一种转折。

359

主题

2770

帖子

7

粉丝