工具/软件:Code Composer Studio
您好!
引导加载程序时 、在执行 Zero_out_Integration_Word 函数以清除校验和后。 将 pFunc_ptr 设置为非法位置0x70000以按如下方式进行复位。 但是、0x70000是 DPWM2的位置。
如果我使用 DPWM2、是否会导致引导加载程序故障? 当我使用 DPWM2时、它会清除校验和、似乎复位一次、但 不会进入 ROM、这会导致 引导加载 程序失败。 如果我不使用 DPWM2、可以
引导加载程序成功。 或者、如果我将 除0x70000 以外的 pFunc_ptr 设置为0xF0000以进行复位、或者在清除校验和以进行复位后使用 SysRegs.SYSECR.bit.reset = 2、它也会成功引导加载程序。
您能解释一下吗? 谢谢。
{
{
寄存器 uint32 * pu32Program_Index =(uint32 *) 0x19000;//存储程序的目标地址
寄存器 uint32 * pu32Source_Index =(uint32 *) Zero_out_Integration_Word;//设置 pflash 的源地址;
{
*(pu32Program_Index++)=*(pu32Source_Index++);
}
}
{
寄存器 tpFunc_ptr pFunc_ptr;
pFunc_ptr =(tpFunc_ptr) 0x19000; //将函数设置为0x19000
pFunc_ptr ();
pFunc_ptr =(tpFunc_ptr) 0x70000; //将函数设置为非法位置
pFunc_ptr (); //force reset
}