请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320F28388D 主题中讨论的其他器件:C2000WARE
您好!
我在 flash.h 中偶然发现了以下代码(driverlib/2838x/driverlib_cm)。
#ifdef _cplusplus
#pragma code_section (".TI.ramfunc");
#endif
静态内联空
FLASH_setWaitstates (uint32_t ctrlBase、uint16_t 等待状态)
{
//
//检查参数。
//
断言(Flash_isCtrlBaseValid (ctrlBase));
//
//等待状态是4位宽。
//
assert (waitstates <= 0xFU);
//
//将闪存读取等待状态量写入相应的寄存器。
//
}
在我看来、此处缺失了对寄存器的实际写入。 版本4.01.000的 C2000软件时、 实际上会写入寄存器。 替换为:
HWREG (ctrlBase + FLASH_O_FRDCNTL)=
(HWREG (ctrlBase + FLASH_O_FRDCNTL)&
~(uint32_t) FLASH_FRDCNTL_RWAIT_M)|
((uint32_t) waitstates << FLASH_FRDCNTL_RWAIT_S);