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.

[参考译文] TM4C1294KCPDT:向 FlashROM 写入任意值

Guru**** 1144750 points
Other Parts Discussed in Thread: TM4C1294KCPDT
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1238113/tm4c1294kcpdt-writing-arbitrary-values-to-flashrom

器件型号:TM4C1294KCPDT

我正在研究如何使用 TM4C1294KCPDT 从固件写入 FlashROM。

是否可以使用"TivaWare 外设驱动程序库"通过简单地调用 ROM_FlashProgram ()将任意数据写入到特定地址,而无需锁定 CPU 或操作寄存器?
-------------------------------------------------------
示例:
ROM 区域
0x00000000 - 0x0007FFFF
方案领域
0x00000208 - 0x000298f9
写入目标 ROM 地址
0x00040000

#include "rom.h"
ub data[]={ 0x31、0x32、0x33、0x34 };
ROM_FlashProgram (data、0x00040000、sizeof (data));
-------------------------------------------------------
此外、参考 TM4C1294KCPDT 数据表、我尝试在当前固件开始时执行以下 FlashROM 初始化处理、这是否有必要?

MEMTIM0 |=(0x06 << 6)|//闪存组时钟高电平时间3.5个系统时钟周期
(0x00 << 5)|//闪存组时钟边沿上升
(0x05 << 0);//闪存等待状态5个等待状态
RSCLKCFG |= 0x80000000;// MEMTIM0更新
Bootcfg |= 0x00000010;//  

非常感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [quote userid="518871" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1238113/tm4c1294kcpdt-writing-arbitrary-values-to-flashrom

    我正在研究如何使用 TM4C1294KCPDT 从固件写入 FlashROM。

    [/报价]

    您好!

     这是可能的。 请参阅外设驱动程序用户指南。 另请参阅下面的。  如果您再次尝试对相同的地址进行编程、请确保您要编程的闪存页面必须首先被擦除。  

     我不确定您写入 MAIN 闪存的目的是什么。 请注意、还有一个6KB EEPROM 用于存储常用数据。 与 MAIN 闪存不同、您无需应用程序擦除 EEPROM。 所有这些都由硬件在后台处理。 从用户的角度来看、EEPROM 更像是 SRAM。 您只需对其进行读取/写入。  请参阅数据表中的 EEPROM 以了解其是否适合您的应用。 下面是一个示例。  

    [quote userid="518871" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1238113/tm4c1294kcpdt-writing-arbitrary-values-to-flashrom |MEMTIM0 |=(0x06 << 6)|//闪存组时钟高电平时间3.5系统时钟周期
    (0x00 << 5)|//闪存组时钟边沿上升
    (0x05 << 0);//闪存等待状态5个等待状态
    RSCLKCFG |= 0x80000000;// MEMTIM0更新
    Bootcfg |= 0x00000010;// 

    您无需手动执行此操作。 当调用 SysCtlClockFreqSet()来配置系统时钟时,所有与闪存有关的等待状态都将得到处理。