【问题标题】:Writing .hex file to Internal FlashROM of 8051 microcontroller using SPI bus使用 SPI 总线将 .hex 文件写入 8051 微控制器的内部 FlashROM
【发布时间】:2012-12-13 13:41:59
【问题描述】:

我正在使用 EEPROM 上的 SPI 总线以及 8051 的内部 ROM 进行固件升级,基本上是在这两个存储设备上写入一个 .hex 文件。我可以看到那里写入的 .hex 文件。我可以看到slave 和 master 通信正常,但无法在我的内存设备上写入任何内容。

如果您有建议并且遇到过类似问题,请告诉我实际问题出在哪里。

欢迎任何意见。

问候, 拉维

【问题讨论】:

  • 你可能想解释你做了什么,发布你的代码,指定你正在使用的硬件,举例说明你可以看到什么和看不到/什么是和没有发生,你尝试过什么,等等。一个明显的事情是 .hex 文件是原始数据的 ASCII 表示,所以需要一些翻译,有些人忘记了这一点......
  • 大多数可重新编程的存储设备需要一些操作序列来解锁它们,然后才能写入。您发送的命令是否正确?
  • 我的 SPI EEprom 芯片是 AT25128,因为我一直保持 WP(bar) 引脚始终为高电平,这意味着我可以写入任何数据。我使用了下面提到的链接中的代码(spi -test.c):lists.gnu.org/archive/html/ltib/2010-11/msg00010.html 用于我的 SPI EEprom。当我运行代码时,我得到了状态寄存器值:0x02,这意味着我可以随时在该芯片上写入数据。如果我做错了什么,请纠正。
  • 我是否需要将该 .hex 文件转换为其他格式,才能将其写入 EEprom。就我而言,我的主人是“ARM(32位处理器)”,目标是8051控制器的内部ROM。
  • 我的 SPI 总线是 8Mhz,当我写入数据时,在 128 KB EEprom 上写入 26 kb 大小的文件需要 15 分钟。

标签: embedded 8051


【解决方案1】:

我认为可能需要更多信息。无论如何,我可以看到以下几个陷阱:

  • Hex 文件不一定是内存映像。我使用过的 8051 通常使用 Intel Hex,这是一种描述内存的 ASCII 格式。格式有据可查here.

  • 如果您在写入 EEPROM 时遇到问题,您可能没有编写正确的指令。通常,SPI EEPROM 将被字节寻址,但内部仍然有分页。您应该在页面边界开始写入并写入整个页面,然后发出另一个写入命令,等等。按照惯例,如果您超出页面,或者从页面中间开始,它将循环。因此,如果您的页面长度为 8 个字节,并且您从索引 4 开始写入 0-7,您将得到:

    Page Start: Index 0 = 4
                Index 1 = 5
                Index 2 = 6
                Index 3 = 7
                Index 4 = 0
                Index 5 = 1
                Index 6 = 2
                Index 7 = 3
    
    • 大多数 EEPROM 都有锁定机制,以防止在完成后意外写入。如果已设置锁,则需要编写解锁方法(如果有,数据手册中会详细说明)

为了进一步帮助您,如果可以,请参考零件编号和更好的数据表。

【讨论】:

  • @SCM: 1. 是的,我的文件本身就是这种格式。事实上我也检查了你提到的链接。 2. 数据表中提到我的页面大小是 64 字节,但我使用的是 128 字节,是我做错了什么吗? 3. 我没有任何锁定机制,只是我将我的 WP(bar) 引脚设置为高电平以写入数据。我的芯片是 AT25128 SPI EEprom。
  • @SCM: 1. 是的,我的文件本身就是这种格式。事实上我也检查了你提到的链接。 2. 数据表中提到我的页面大小是 64 字节,但我使用的是 128 字节,我做错了什么吗? 3. 文件是否需要转换为其他格式而不是 .hex,因为它有各种我们没有在 EEprom 上编写的内容,例如地址、记录类型、校验和等。我在 Linux OS 上使用 C 进行编程。请提供您的意见。
猜你喜欢
  • 1970-01-01
  • 2010-10-28
  • 1970-01-01
  • 2015-03-11
  • 2011-02-24
  • 1970-01-01
  • 1970-01-01
  • 2011-12-22
  • 1970-01-01
相关资源
最近更新 更多