• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

stm32使用keil编译出来的hex固件比flash大

DengQilong 2017-12-09 浏览量:1498
居然能下载进去,下载进去居然还能运行,这是什么bug吗
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
其他答案 数量:4
  • hex的大小并不是芯片Flash的大小,Hex中有很多其他的附加信息
    • 发布于2017-12-09
    • 举报
    • 评论 2
    • 1
    • 0
WHL245387 回复了 汉云 :云汉正解,可以把HEX转成bin再看下大小,如果bin文件比flash大还能下载运行,那就要再折腾折腾了。 回复
电子老工程师 回复了  :见附件 回复

  • stm32标称的Flash容量是官方保证能用的容量,其实际最大容量可能比标称容量大,但是大于标称容量的部分原厂不保证能用。所以大于Flash容量一些通常也是可以的,但是原厂不保证品质。
    • 发布于2017-12-09
    • 举报
    • 评论 2
    • 0
    • 0
电子老工程师 回复了  :在分析中 回复
电子老工程师 回复了  :从这份资料来看里面的实物与客户收到的实物一样https://datasheet.octopart.com/MP-66U-F-5-TE-Connectivity-datasheet-44967959.pdf 回复

  • 拿stm32f103vct6和stm32f103vet6两款芯片来说官方给的FLASH容量分别是256K和512 K,但是实际上这两款芯片里面的东西是一模一样的只是出厂的时候做做了一些设置刻上了不同丝印。我就遇到类似的问题:使用stm32f103vct6时栈指针指向了大概64K的位置,但是官方宣称的是这款芯片的ram只有48K。当时就纳闷了,原来这是一个披着vct6外衣的vet6。。。ps:最佳答案好任性!!!
    • 发布于2017-12-09
    • 举报
    • 评论 2
    • 0
    • 0
DengQilong 回复了 WHL245387 :你的意思是ST偷懒,一个系列的其实内存都一样大,只是字面上不同???? 回复
WHL245387 回复了 WHL245387 :应该不仅是字不一样。可能还有某些出厂设置不同。但是我确实遇到再vct6上用的64K RAM 的 情况。可以参考下这个帖子http://bbs.21ic.com/icview-141375-1-1.html,有兴趣可以跟ST求证一下。 回复

  • hex里面只有一部分是用户程序数据,另外,如果用户程序数据大于flash空间,多余的数据就会被丢弃。

    • 发布于2018-01-30
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :HSM4204 HUASHUO(华朔) 封装不同 回复

相关问题

问题达人换一批

stm32使用keil编译出来的hex固件比flash大