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配置为引导模式?
对于独立闪存操作、您需要使两个引导引脚为逻辑高电平= 3.3V (VDDIO)。 除非已修改 OTP 值、否则 Get Mode 的默认操作是引导至闪存。
此致!
Matthew
我的应用也没有在调试器模式下运行。 至少 它应该 在调试器模式下工作、即使 我没有将引导引脚设置为高电平、对吗?
示例程序"F28035_example_nonBIOS_flash"不会设置引导引脚。 它在我的 EVM 中作为独立应用程序运行。
您能否查看我所做的更改并帮助我解决问题
最新动态:
在将 "F28035.cmd"文件替换为示例中给出的链接器文件后、我能够在调试模式下运行程序。 此外、当我正常加载程序时、程序也会运行。
问题是、它在我重启电源后无法正常工作
我排除了将启动引脚设置为高电平的可能性、因为在下电上电后可以运行示例程序
我会在 C2000Ware 中查看此示例 、C:\ti\c2000\C2000Ware_5_04_00_00\device_support\f2803x\examples\c28\flash_F28035;这将显示从 RAM 引导到闪存以进行代码转换所需的步骤。
需要注意的一点是、在这个示例中有重新分配的 PIE 矢量、我想您希望在 PIE 矢量存储器复制之后使 RAM 发生闪存、并确保正确分配新的矢量。 如果你没有任何中断、这无关紧要、只需想一想这些中断是否需要从 RAM 运行、并且在一定程度上假定代码被复制。
此致!
Matthew
您好、Matthew:
感谢您的答复。 我的问题现已解决。 坦率地说、我不知道 以前的问题是什么。 通过选择已处理的闪存命令文件来创建全新项目。
很抱歉、我没有更新该主题