【问题标题】:AVR flash memory reading and writingAVR闪存读写
【发布时间】:2016-02-26 05:43:12
【问题描述】:

我不了解有关 AVR 中闪存访问的一项基本知识。 正如数据表所说,闪存页由 atmega16 的 64 个字组成,共有 128 页。由于它有 16kbytes 的闪存,因此很容易得到字大小为 2 字节,页面大小为 128 字节。

嗯.. 在 Spi 编程模式中有加载和写入指令。首先,它们之间有什么区别?

第二个问题是关于加载内存页面指令。有两条指令:一条用于低字节,一条用于高字节。我们必须发送四个字节:命令标识字节(如果我可以这样称呼的话)、地址的 MSB、地址的 LSB 和数据字节。问题究竟是该指令的作用是什么?尽管我们加载的页面由 128 个字节组成,但这里的高字节和低字节是什么?

【问题讨论】:

    标签: memory avr memory-address flash-memory


    【解决方案1】:

    嗯.. 在 Spi 编程模式中有加载和写入指令。首先,它们之间有什么区别?

    您可能不知道“页面缓冲区”。要将新数据写入页面,必须先填充页面缓冲区。它持有一个临时页面,必须逐字填写。 -> 加载指令

    缓冲区在一次操作中被复制到闪存中。 -> 写指令

    第二个问题是关于加载内存页面指令。有两条指令:一条用于低字节,一条用于高字节。我们必须发送四个字节:命令标识字节(如果我可以这样称呼的话)、地址的 MSB、地址的 LSB 和数据字节。问题究竟是该指令的作用是什么?尽管我们加载的页面由 128 个字节组成,但这里的高字节和低字节是什么?

    它是指加载到页面缓冲区中的每个单词的低字节和高字节。

    【讨论】:

    • 一个页面只有 64 个地址,尽管有 128 个字节。地址 MSB:LSB 指的是 2 个字节(1 个字),因此有两条不同的指令,一条用于加载该位置数据的高字节,另一条用于加载低字节。
    • 谢谢。我得到了它。我还必须阅读 Atmel 的系统内编程手册。
    猜你喜欢
    • 1970-01-01
    • 2021-09-23
    • 2019-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多