TI中文支持网
TI专业的中文技术问题搜集分享网站

28027串口在线升级bootloader程序跳转不成功

在使用SCI串口对flash烧写进行在线烧写程序前,将bootloader程序和应用程序一起烧写进flash,上电后不要升级时,bootloader跳转到应用程序执行,但是DSP不起机。在单步调试的时候,能够看到PC指针确实指向了应用程序的入口地址,并且一直在执行应用程序。

将该bootloader程序和28032上的应用程序一起烧写进flash的时候,28032能够正常启机,是否是我的28027没有哪里没有设置

mangui zhang:

你好  只能用串口烧写吗    用仿真器烧写后是否正常

排除串口烧写是否成功 

 

在使用SCI串口对flash烧写进行在线烧写程序前,将bootloader程序和应用程序一起烧写进flash,上电后不要升级时,bootloader跳转到应用程序执行,但是DSP不起机。在单步调试的时候,能够看到PC指针确实指向了应用程序的入口地址,并且一直在执行应用程序。

将该bootloader程序和28032上的应用程序一起烧写进flash的时候,28032能够正常启机,是否是我的28027没有哪里没有设置

Martin Yu:

建议检查下Boot方式是否正确。

在使用SCI串口对flash烧写进行在线烧写程序前,将bootloader程序和应用程序一起烧写进flash,上电后不要升级时,bootloader跳转到应用程序执行,但是DSP不起机。在单步调试的时候,能够看到PC指针确实指向了应用程序的入口地址,并且一直在执行应用程序。

将该bootloader程序和28032上的应用程序一起烧写进flash的时候,28032能够正常启机,是否是我的28027没有哪里没有设置

min liu5:

回复 Martin Yu:

因为我在做28027的SCI串口在线升级,我的28027bootloader程序放在了扇区A,应用程序放在了扇区C、D;最开始应用程序的入口地址是0x3F7FF6,通过JTAG烧写进flash后,DSP是能够正常工作的。而后将应用程序的入口地址改为0x3F3FF6,bootloader程序的入口地址为0x3F7FF6,bootloader程序实现向应用程序的跳转函数是void JumpToApp()

{

      DINT;

     IER = 0x0000;

    IFR = 0x0000;

    asm("MOVL  XAR7,#0x3F3FF6");

   asm(" JMP  *XAR7");

}

因为我之前做过的DCDC模块的28032的CAN在线升级,将28027的bootloader烧写进DCDC的28032,同时也烧写进DCDC的应用程序是能够完成启机并且正常工作的,这个说明我的跳转函数是没有问题的。但是在进行PFC 28027升级时,通过单步调试发现PC指针在bootloader程序段运行一段时间后跳到了应用程序所在的扇区C、D运行。DSP上电后,bootloader程序没有检测到升级信号后,会跳到应用程序执行,结果发现DSP不起机,好像跳转后DSP就像死机了一样。

现在我想明白的是,为什么在28032中是可以的,是否是我的PFC程序有地方没有设置好,而致使DSP运行bootloader程序后就不再运行应用程序

在使用SCI串口对flash烧写进行在线烧写程序前,将bootloader程序和应用程序一起烧写进flash,上电后不要升级时,bootloader跳转到应用程序执行,但是DSP不起机。在单步调试的时候,能够看到PC指针确实指向了应用程序的入口地址,并且一直在执行应用程序。

将该bootloader程序和28032上的应用程序一起烧写进flash的时候,28032能够正常启机,是否是我的28027没有哪里没有设置

min liu5:

回复 mangui zhang:

因为我在做28027的SCI串口在线升级,我的28027bootloader程序放在了扇区A,应用程序放在了扇区C、D;最开始应用程序的入口地址是0x3F7FF6,通过JTAG烧写进flash后,DSP是能够正常工作的。而后将应用程序的入口地址改为0x3F3FF6,bootloader程序的入口地址为0x3F7FF6,bootloader程序实现向应用程序的跳转函数是void JumpToApp()

{

      DINT;

     IER = 0x0000;

    IFR = 0x0000;

    asm("MOVL  XAR7,#0x3F3FF6");

   asm(" JMP  *XAR7");

}

因为我之前做过的DCDC模块的28032的CAN在线升级,将28027的bootloader烧写进DCDC的28032,同时也烧写进DCDC的应用程序是能够完成启机并且正常工作的,这个说明我的跳转函数是没有问题的。但是在进行PFC 28027升级时,通过单步调试发现PC指针在bootloader程序段运行一段时间后跳到了应用程序所在的扇区C、D运行。DSP上电后,bootloader程序没有检测到升级信号后,会跳到应用程序执行,结果发现DSP不起机,好像跳转后DSP就像死机了一样。

现在我想明白的是,为什么在28032中是可以的,是否是我的PFC程序有地方没有设置好,而致使DSP运行bootloader程序后就不再运行应用程序

在使用SCI串口对flash烧写进行在线烧写程序前,将bootloader程序和应用程序一起烧写进flash,上电后不要升级时,bootloader跳转到应用程序执行,但是DSP不起机。在单步调试的时候,能够看到PC指针确实指向了应用程序的入口地址,并且一直在执行应用程序。

将该bootloader程序和28032上的应用程序一起烧写进flash的时候,28032能够正常启机,是否是我的28027没有哪里没有设置

min liu5:

回复 mangui zhang:

因为我在做28027的SCI串口在线升级,我的28027bootloader程序放在了扇区A,应用程序放在了扇区C、D;最开始应用程序的入口地址是0x3F7FF6,通过JTAG烧写进flash后,DSP是能够正常工作的。而后将应用程序的入口地址改为0x3F3FF6,bootloader程序的入口地址为0x3F7FF6,bootloader程序实现向应用程序的跳转函数是void JumpToApp()

{

      DINT;

     IER = 0x0000;

    IFR = 0x0000;

    asm("MOVL  XAR7,#0x3F3FF6");

   asm(" JMP  *XAR7");

}

因为我之前做过的DCDC模块的28032的CAN在线升级,将28027的bootloader烧写进DCDC的28032,同时也烧写进DCDC的应用程序是能够完成启机并且正常工作的,这个说明我的跳转函数是没有问题的。但是在进行PFC 28027升级时,通过单步调试发现PC指针在bootloader程序段运行一段时间后跳到了应用程序所在的扇区C、D运行。DSP上电后,bootloader程序没有检测到升级信号后,会跳到应用程序执行,结果发现DSP不起机,好像跳转后DSP就像死机了一样。

现在我想明白的是,为什么在28032中是可以的,是否是我的PFC程序有地方没有设置好,而致使DSP运行bootloader程序后就不再运行应用程序

在使用SCI串口对flash烧写进行在线烧写程序前,将bootloader程序和应用程序一起烧写进flash,上电后不要升级时,bootloader跳转到应用程序执行,但是DSP不起机。在单步调试的时候,能够看到PC指针确实指向了应用程序的入口地址,并且一直在执行应用程序。

将该bootloader程序和28032上的应用程序一起烧写进flash的时候,28032能够正常启机,是否是我的28027没有哪里没有设置

harte zhang:

回复 min liu5:

请问你的问题解决了没?是不是boot room 引导失败导致看门狗复位了?

在使用SCI串口对flash烧写进行在线烧写程序前,将bootloader程序和应用程序一起烧写进flash,上电后不要升级时,bootloader跳转到应用程序执行,但是DSP不起机。在单步调试的时候,能够看到PC指针确实指向了应用程序的入口地址,并且一直在执行应用程序。

将该bootloader程序和28032上的应用程序一起烧写进flash的时候,28032能够正常启机,是否是我的28027没有哪里没有设置

min liu5:

回复 harte zhang:

不是的   我的是因为bootloader和应用程序使用了同一个中断   而在两个程序中产生了冲突

在使用SCI串口对flash烧写进行在线烧写程序前,将bootloader程序和应用程序一起烧写进flash,上电后不要升级时,bootloader跳转到应用程序执行,但是DSP不起机。在单步调试的时候,能够看到PC指针确实指向了应用程序的入口地址,并且一直在执行应用程序。

将该bootloader程序和28032上的应用程序一起烧写进flash的时候,28032能够正常启机,是否是我的28027没有哪里没有设置

naruto:

回复 min liu5:

不知道可不可以参考你的CAN在线升级资料,谢谢

在使用SCI串口对flash烧写进行在线烧写程序前,将bootloader程序和应用程序一起烧写进flash,上电后不要升级时,bootloader跳转到应用程序执行,但是DSP不起机。在单步调试的时候,能够看到PC指针确实指向了应用程序的入口地址,并且一直在执行应用程序。

将该bootloader程序和28032上的应用程序一起烧写进flash的时候,28032能够正常启机,是否是我的28027没有哪里没有设置

Hardy Zhou:

回复 min liu5:

重新设计bootloader和主程序,使用同一个外设串口模块,最好分别使用查询和中断模式.

都使用中断处理的话,处理ISR跳转比较麻烦,不灵活.

赞(0)
未经允许不得转载:TI中文支持网 » 28027串口在线升级bootloader程序跳转不成功
分享到: 更多 (0)