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.
工具与软件:
您好!
我正在使用 TI 28035实验套件。 我将程序更改为从闪存而不是 RAM 运行。 它工作一次、但当我进行下电上电时、它停止工作
已参考 SPRA958L 及其示例程序、但无法解决我的问题。 我能够运行示例程序"F28035_example_nonBIOS_flash"
遵循的步骤:
// Exterail 通过链接器定义 d
外部 UINT16 RamfuncsLoadStart;
外部 UINT16 RamfuncsLoadSize;
外部 UINT16 RamfuncsRunStart;
//将闪存驻留函数复制到 RAM
memcpy ((UINT16*)&RamfuncsRunStart、(UINT16 *)&RamfuncsLoadStart、
(unsigned long)&RamfuncsLoadSize);
//启用闪存等待状态
InitFlash();
asm (" EALLOW"); // Enable EALLOW protected register access (启用 EALLOW 受保护寄存器访问)
//逐步检查前三个32位位置(六个16位位置)。
//这些位置由 ROM 引导加载程序在调试期间使用。
memcpy ((UINT16 *)&PieVectTable+6、(UINT16 *)&PieVectTableInit+6256-6);
asm (" EDIS"); // Disable EALLOW protected register access (禁用 EALLOW 受保护寄存器访问)
是否必须将 GPIO 37和 GPIO 34配置为引导模式?
我会在 C2000Ware 中查看此示例 、C:\ti\c2000\C2000Ware_5_04_00_00\device_support\f2803x\examples\c28\flash_F28035;这将显示从 RAM 引导到闪存以进行代码转换所需的步骤。
需要注意的一点是、在这个示例中有重新分配的 PIE 矢量、我想您希望在 PIE 矢量存储器复制之后使 RAM 发生闪存、并确保正确分配新的矢量。 如果你没有任何中断、这无关紧要、只需想一想这些中断是否需要从 RAM 运行、并且在一定程度上假定代码被复制。
此致!
Matthew