This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

如何利用UniFlash读出完整的 可以反汇编的.out文件

Other Parts Discussed in Thread: UNIFLASH

我面临的状况是 我们开发的 拥有全部源代码的产品 在一段时间后小批量出现莫名其妙的报警 完全不符合程序的逻辑

我用UNIFLASH从几台故障机中读取器件内的程序区域,均与正常的烧录完成的器件中读出的不同,而几台故障机之间确是相同的。

我们的记录中不存在不同版本使用了相同的版本号,除非处于开发测试阶段的版本流入了生产单位。

我目前的想法是,既然我可以从器件中读取整个flash区域,也有cmd文件,是否可以通过某种方式获得故障机中读取的COFF文件的反汇编,来理清问题。

目前我从器件 28034 中读取的3E8000到 3F8000区域读取的 .out文件,用dis2000反汇编出来的都是数据格式,解析不出来代码。

  • 所有flash内容都当作data来处理了,编译器输出的ELF文件 才会存在段信息
    所以不是正常编译出来的.out文件可能不支持直接反汇编,因为信息不全,比如cmd, map等等
  • 如果能被你轻易反汇编出来,那就不安全的,放弃这个办法吧。还是从代码层面进行分析,找到是硬件问题还是软件问题,这样比较靠谱。
  • 好吧 可是什么样的情况会让flash区域的内容都变掉呢 这里应该不能被代码修改掉吧
  • 正常情况下flash中的程序是不会被修改的,要修改flash中的程序需要用到flash API函数