stm32的芯片读出hex,写入一个新的板子,居然不能用,为什么?

sxbug 2017-06-08 04:03:34
stm32L05K8,用st link读了一个hex文件出来 起始 0x08000000,长度 0x1000,读取没有问题,得到了一个hex文件。然后写入一块一模一样的板子中,正常写入。居然不能正常工作。
这个就不明白了,请高人指点,我自己不是很懂,请高人指点。
...全文
1593 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
JPLZL10000 2019-06-03
  • 打赏
  • 举报
回复
很简单嘛,程序中有UID的检测咯,只能在一个芯片上使用
hello_mcu 2017-06-10
  • 打赏
  • 举报
回复
引用 4 楼 of123 的回复:
hex 文件记录的例子: 数据记录:类型字节TT = 00。例如 :10246200464C5549442050524F46494C4500464C33 10: 数据长度,16 字节; 2462: 数据起始地址; 00: 记录类型,数据记录; 464C5549442050524F46494C4500464C: 数据; 33: 检查和。 文件结束记录:类型字节TT = 01。例如 :00000001FF 00: 数据长度,0 字节; 0000: 数据起始地址,无意义; 01: 记录类型,文件结束记录; FF: 检查和。 前面的冒号是记录起始标志。
受教了。
熊已出没 2017-06-09
  • 打赏
  • 举报
回复
很有可能软件作了加密处理。
sxbug 2017-06-09
  • 打赏
  • 举报
回复
楼上高人。谢谢 我读取的hex文件就是这样的。 :020000040800F2 :2000000090080020C100000875230008612300080000000000000000000000000000000033 :200020000000000000000000000000003D2400087D07000800000000772300083F240008BE :20004000D5000008D5000008D5000008D5000008D500000881070008E1070008210800089E :2000600000000000D5000008D5000008D5000008D50000086523000800000000D50000089F :2000800000000000D50000080000000000000000D500000800000000D5000008D5000008EC :2000A000D5000008D5000008D5000008D5000008212C0008D500000800000000000000009A :2000C0000548804705480047FEE7FEE7FEE7FEE7FEE7FEE7FEE7000049240008055800085B :2000E00030B50B46014600202022012409E00D46D5409D4205D31D469540491B2546954018 :2001000040191546521E002DF1DC30BD70B500242546002801DA01244042002901DA01254C :200120004942FFF7DDFFAC4200D04042002C00D0494270BD03460B439B0703D009E008C9A8 :20014000121F08C0042AFAD203E00B780370401C491C521EF9D27047D2B201E00270401CED :20016000491EFBD270470022F6E710B513460A4604461946FFF7F0FF204610BDF0B5074674 :200180000846584087B0C00F049048000E46590040084908BC1A884105D2384631461E4682 :2001A00017460B4602465800400810434CD0300D039040055900400D490D0590401A0290A8 事情是这样的。我让别人做了一个lora的转发板子,以前都是他们做好发给我的。今天我问他们要了远程想自己写进去,结果不行。我就想偷懒,先从一个可用的模块导一个 二进制文件出来,再写到其它的板子里面去。这样就最简单。结果也不行。 高人我想知道,假设别人都没有加密,用什么工具能确保,我读取的二进制文件,能成功写到另一块板子中呢?谢谢
dceacho 2017-06-09
  • 打赏
  • 举报
回复
除了目标文件,配置区也很重要
of123 2017-06-08
  • 打赏
  • 举报
回复
一个 .hex 文件的例子。你的文件是这样吗? :09222200313233343536373839D6 :10212D0078027C007D017BFF7A2279227E007F0977 :10213D001220D343B20843B301E5B320E7FB43B309 :10214D000890000B7410F0A3E4F0FF74022FF582D9 :10215D00E43400F583E0FE90000BE0FCA3E02FF5E6 :10216D0082E43CF583EEF00FEFB409DF7B017A00DA :10217D0079007D097C00E4FFFE1221EAE4FF740280 :10218D002FF582E43400F583E0FE90000BE0FCA314 :10219D00E02FF582E43CF583EEF00FEFB409DF900C :1021AD000000E0FF90000BE0FCA3E0FD2409F582A8 :1021BD00E43CF583EFF0900001E0FFED240AF58299 :1021CD00E43CF583EFF07B017A0079007D0B7C0018 :0C21DD00E4FFFE1221EA90000D7401F0F6 :0121E90022D3 :1021EA0090000EEEF0A3EFF043B04090000EE054E2 :1021FA007FF5FAA3E0F5FBEC4480F5FAEDF5FB4335 :10220A00F140E5F120E6FBE5FD1220F9900001E539 :08221A00FC12210B53B0BF229E :0320000002222B8E :06222B0075810702212D60 :10200300E709F608DFFA8046E709F208DFFA803EBF :1020130088828C83E709F0A3DFFA8032E309F608AC :10202300DFFA8078E309F208DFFA807088828C8314 :10203300E309F0A3DFFA806489828A83E0A3F608C8 :10204300DFFA805889828A83E0A3F208DFFA804CA2 :1020530080D280FA80C680D4806980F28033801079 :1020630080A680EA809A80A880DA80E280CA8033E2 :1020730089828A83ECFAE493A3C8C582C8CCC5835A :10208300CCF0A3C8C582C8CCC583CCDFE9DEE7802A :102093000D89828A83E493A3F608DFF9ECFAA9F0A9 :1020A300EDFB2289828A83ECFAE0A3C8C582C8CCFF :1020B300C583CCF0A3C8C582C8CCC583CCDFEADE18 :1020C300E880DB89828A83E493A3F208DFF980CC7A :1020D30088F0EF60010E4E60C388F0ED2402B40473 :1020E3000050B9F582EB2402B4040050AF2323451A :0620F300822390205373CC :1020F900BB010689828A83F0225002F722BBFE01C6 :02210900F322BF :10210B00F8BB010DE58229F582E5833AF583E8F00A :10211B00225006E92582C8F622BBFE05E92582C8B6 :02212B00F2229E :00000001FF
of123 2017-06-08
  • 打赏
  • 举报
回复
hex 文件记录的例子: 数据记录:类型字节TT = 00。例如 :10246200464C5549442050524F46494C4500464C33 10: 数据长度,16 字节; 2462: 数据起始地址; 00: 记录类型,数据记录; 464C5549442050524F46494C4500464C: 数据; 33: 检查和。 文件结束记录:类型字节TT = 01。例如 :00000001FF 00: 数据长度,0 字节; 0000: 数据起始地址,无意义; 01: 记录类型,文件结束记录; FF: 检查和。 前面的冒号是记录起始标志。
of123 2017-06-08
  • 打赏
  • 举报
回复
从芯片中读出的机器码,应该是二进制目标码。读出来应写成 .bin 文件。 .hex 文件是一种格式文件,每一条记录都有数据长度、起始地址、记录类型、数据和检查和。其中数据域是目标码。 下载时,即便传输的是 .hex 文件,Bootloader 也会解析出其中的数据写入。 你读出的数据,除非经过你反向的处理,是无法生成 .hex 文件的。 如果 Bootloader 支持二进制文件下载,那么你试试直接写入。 否则,你真的要编一个程序将 .bin 文件转换成 .hex 文件。
sxbug 2017-06-08
  • 打赏
  • 举报
回复
硬件是没有问题的,以前都正常工作,然后重写了hex文件后,不能正常工作了。 软件没写入成功,这个怎么判断? 其它加密功能,那我再找找 谢谢
woshi_ziyu 2017-06-08
  • 打赏
  • 举报
回复
1. 第二块电路板硬件有问题 2. 软件没有写入成功 3. 硬件有其他的加密功能

27,372

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧