KEA128 UART Bootloader

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

KEA128 UART Bootloader

跳至解决方案
1,941 次查看
LiangDevJack
Contributor II

你好,我在KEA128单片机开发遇到一个问题,这个问题通过Jlink烧写程序调试是完全没有问题的,但是当我通过bootloader下载该程序,出现主程序死机的情况。

当我使用以下该程序(设置占空比)时,通过bootloader下载之后,程序出现死机现象。当我把该函数的内容注释掉,则一切正常。这种情况Jlink烧写是完全没有问题的,这个问题让我无从下手,希望能得到帮助,告诉我应该往那个方向寻找答案。

void heater_output(uint32 duty)
{
if(heater_switch==on)
{
ftm_pwm_duty(ftm0,ftm_ch0,duty);//设置占空比
}
else
{
heater_pwm_duty=0;
ftm_pwm_duty(ftm0,ftm_ch0,0);
}
}

这是我的跳转程序

void bootup_application(uint32_t appEntry, uint32_t appStack)
{
static void (*jump_to_application)(void);
static uint32_t stack_pointer;

//shutdown_drivers();
jump_to_application = (void (*)(void))appEntry;//跳转APP入口地址
stack_pointer = appStack; //堆栈指针
// SCB->VTOR = appEntry;
__set_MSP(appStack); //设置主程序堆栈指针
__set_PSP(appStack); //设置进程堆栈指针
jump_to_application(); //跳转
}

0 项奖励
回复
1 解答
1,818 次查看
xiangjun_rong
NXP TechSupport
NXP TechSupport

Hi,

建议您考虑S32K系列, 它是车规级芯片。

https://www.nxp.com/products/processors-and-microcontrollers/s32-automotive-platform/s32k-auto-gener...

 

如果你老师进入hardFault, 请看看stack是否分配小了。

BR

XiangJun Rong

在原帖中查看解决方案

0 项奖励
回复
5 回复数
1,910 次查看
xiangjun_rong
NXP TechSupport
NXP TechSupport

Hi,

请使用下列代码:

//shutdown_drivers();
jump_to_application = (void (*)(void))appEntry;//跳转APP入口地址

jump_to_application =jump_to_application +1;
stack_pointer = appStack; //堆栈指针
// SCB->VTOR = appEntry;
__set_MSP(appStack); //设置主程序堆栈指针
__set_PSP(appStack); //设置进程堆栈指针
jump_to_application(); //跳转

因为是thumb指令集, 请试一下,看行不行

BR

XiangJunRong

0 项奖励
回复
1,903 次查看
LiangDevJack
Contributor II
你好,当我把这行代码放进去,出现一个错误,(jump_to_application =jump_to_application +1;)使用的是IAR软件编译器,报错信息为,Error[Pe852]: expression must be a pointer to a complete object type 。这个该如何解决呀?

0 项奖励
回复
1,867 次查看
xiangjun_rong
NXP TechSupport
NXP TechSupport

Hi,

那你把appEntry加上1.

BR

XiangJun Rong

0 项奖励
回复
1,852 次查看
LiangDevJack
Contributor II
你好,谢谢您的回复,我通过不下载仿真调试发现总是进入HardFault_Handler函数,我觉得可能是调用层次比较深,然后再主循环里直接调用设置占空比的函数,结果没有出现卡死情况。请问这种情况在这款芯片常见吗,我的APP程序大概33K左右,从0x8000开始,如果我想在项目中选择性能更好的性价比的车规级芯片,能运行更多算法,我应该如何选择。
0 项奖励
回复
1,819 次查看
xiangjun_rong
NXP TechSupport
NXP TechSupport

Hi,

建议您考虑S32K系列, 它是车规级芯片。

https://www.nxp.com/products/processors-and-microcontrollers/s32-automotive-platform/s32k-auto-gener...

 

如果你老师进入hardFault, 请看看stack是否分配小了。

BR

XiangJun Rong

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-1988432%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3EKEA128%20UART%20Bootloader%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1988432%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%EF%BC%8C%E6%88%91%E5%9C%A8KEA128%E5%8D%95%E7%89%87%E6%9C%BA%E5%BC%80%E5%8F%91%E9%81%87%E5%88%B0%E4%B8%80%E4%B8%AA%E9%97%AE%E9%A2%98%EF%BC%8C%E8%BF%99%E4%B8%AA%E9%97%AE%E9%A2%98%E9%80%9A%E8%BF%87Jlink%E7%83%A7%E5%86%99%E7%A8%8B%E5%BA%8F%E8%B0%83%E8%AF%95%E6%98%AF%E5%AE%8C%E5%85%A8%E6%B2%A1%E6%9C%89%E9%97%AE%E9%A2%98%E7%9A%84%EF%BC%8C%E4%BD%86%E6%98%AF%E5%BD%93%E6%88%91%E9%80%9A%E8%BF%87bootloader%E4%B8%8B%E8%BD%BD%E8%AF%A5%E7%A8%8B%E5%BA%8F%EF%BC%8C%E5%87%BA%E7%8E%B0%E4%B8%BB%E7%A8%8B%E5%BA%8F%E6%AD%BB%E6%9C%BA%E7%9A%84%E6%83%85%E5%86%B5%E3%80%82%3C%2FP%3E%3CP%3E%E5%BD%93%E6%88%91%E4%BD%BF%E7%94%A8%E4%BB%A5%E4%B8%8B%E8%AF%A5%E7%A8%8B%E5%BA%8F%EF%BC%88%E8%AE%BE%E7%BD%AE%E5%8D%A0%E7%A9%BA%E6%AF%94%EF%BC%89%E6%97%B6%EF%BC%8C%E9%80%9A%E8%BF%87bootloader%E4%B8%8B%E8%BD%BD%E4%B9%8B%E5%90%8E%EF%BC%8C%E7%A8%8B%E5%BA%8F%E5%87%BA%E7%8E%B0%E6%AD%BB%E6%9C%BA%E7%8E%B0%E8%B1%A1%E3%80%82%E5%BD%93%E6%88%91%E6%8A%8A%E8%AF%A5%E5%87%BD%E6%95%B0%E7%9A%84%E5%86%85%E5%AE%B9%E6%B3%A8%E9%87%8A%E6%8E%89%EF%BC%8C%E5%88%99%E4%B8%80%E5%88%87%E6%AD%A3%E5%B8%B8%E3%80%82%E8%BF%99%E7%A7%8D%E6%83%85%E5%86%B5Jlink%E7%83%A7%E5%86%99%E6%98%AF%E5%AE%8C%E5%85%A8%E6%B2%A1%E6%9C%89%E9%97%AE%E9%A2%98%E7%9A%84%EF%BC%8C%E8%BF%99%E4%B8%AA%E9%97%AE%E9%A2%98%E8%AE%A9%E6%88%91%E6%97%A0%E4%BB%8E%E4%B8%8B%E6%89%8B%EF%BC%8C%E5%B8%8C%E6%9C%9B%E8%83%BD%E5%BE%97%E5%88%B0%E5%B8%AE%E5%8A%A9%EF%BC%8C%E5%91%8A%E8%AF%89%E6%88%91%E5%BA%94%E8%AF%A5%E5%BE%80%E9%82%A3%E4%B8%AA%E6%96%B9%E5%90%91%E5%AF%BB%E6%89%BE%E7%AD%94%E6%A1%88%E3%80%82%3C%2FP%3E%3CP%3Evoid%20heater_output(uint32%20duty)%3CBR%20%2F%3E%7B%3CBR%20%2F%3Eif(heater_switch%3D%3Don)%3CBR%20%2F%3E%7B%3CBR%20%2F%3Eftm_pwm_duty(ftm0%2Cftm_ch0%2Cduty)%3B%2F%2F%E8%AE%BE%E7%BD%AE%E5%8D%A0%E7%A9%BA%E6%AF%94%3CBR%20%2F%3E%7D%3CBR%20%2F%3Eelse%3CBR%20%2F%3E%7B%3CBR%20%2F%3Eheater_pwm_duty%3D0%3B%3CBR%20%2F%3Eftm_pwm_duty(ftm0%2Cftm_ch0%2C0)%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3E%E8%BF%99%E6%98%AF%E6%88%91%E7%9A%84%E8%B7%B3%E8%BD%AC%E7%A8%8B%E5%BA%8F%3C%2FP%3E%3CP%3Evoid%20bootup_application(uint32_t%20appEntry%2C%20uint32_t%20appStack)%3CBR%20%2F%3E%7B%3CBR%20%2F%3Estatic%20void%20(*jump_to_application)(void)%3B%3CBR%20%2F%3Estatic%20uint32_t%20stack_pointer%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%2F%2Fshutdown_drivers()%3B%3CBR%20%2F%3Ejump_to_application%20%3D%20(void%20(*)(void))appEntry%3B%2F%2F%E8%B7%B3%E8%BD%ACAPP%E5%85%A5%E5%8F%A3%E5%9C%B0%E5%9D%80%3CBR%20%2F%3Estack_pointer%20%3D%20appStack%3B%20%2F%2F%E5%A0%86%E6%A0%88%E6%8C%87%E9%92%88%3CBR%20%2F%3E%2F%2F%20SCB-%26gt%3BVTOR%20%3D%20appEntry%3B%3CBR%20%2F%3E__set_MSP(appStack)%3B%20%2F%2F%E8%AE%BE%E7%BD%AE%E4%B8%BB%E7%A8%8B%E5%BA%8F%E5%A0%86%E6%A0%88%E6%8C%87%E9%92%88%3CBR%20%2F%3E__set_PSP(appStack)%3B%20%2F%2F%E8%AE%BE%E7%BD%AE%E8%BF%9B%E7%A8%8B%E5%A0%86%E6%A0%88%E6%8C%87%E9%92%88%3CBR%20%2F%3Ejump_to_application()%3B%20%2F%2F%E8%B7%B3%E8%BD%AC%3CBR%20%2F%3E%7D%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1990791%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3ERe%3A%20KEA128%20UART%20Bootloader%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1990791%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2C%3C%2FP%3E%0A%3CP%3E%E5%BB%BA%E8%AE%AE%E6%82%A8%E8%80%83%E8%99%91S32K%E7%B3%BB%E5%88%97%EF%BC%8C%20%E5%AE%83%E6%98%AF%E8%BD%A6%E8%A7%84%E7%BA%A7%E8%8A%AF%E7%89%87%E3%80%82%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fwww.nxp.com%2Fproducts%2Fprocessors-and-microcontrollers%2Fs32-automotive-platform%2Fs32k-auto-general-purpose-mcus%3AS32K-MCUS%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fwww.nxp.com%2Fproducts%2Fprocessors-and-microcontrollers%2Fs32-automotive-platform%2Fs32k-auto-general-purpose-mcus%3AS32K-MCUS%3C%2FA%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E5%A6%82%E6%9E%9C%E4%BD%A0%E8%80%81%E5%B8%88%E8%BF%9B%E5%85%A5hardFault%2C%20%E8%AF%B7%E7%9C%8B%E7%9C%8Bstack%E6%98%AF%E5%90%A6%E5%88%86%E9%85%8D%E5%B0%8F%E4%BA%86%E3%80%82%3C%2FP%3E%0A%3CP%3EBR%3C%2FP%3E%0A%3CP%3EXiangJun%20Rong%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1989845%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3ERe%3A%20KEA128%20UART%20Bootloader%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1989845%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3E%E4%BD%A0%E5%A5%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E6%82%A8%E7%9A%84%E5%9B%9E%E5%A4%8D%EF%BC%8C%E6%88%91%E9%80%9A%E8%BF%87%E4%B8%8D%E4%B8%8B%E8%BD%BD%E4%BB%BF%E7%9C%9F%E8%B0%83%E8%AF%95%E5%8F%91%E7%8E%B0%E6%80%BB%E6%98%AF%E8%BF%9B%E5%85%A5HardFault_Handler%E5%87%BD%E6%95%B0%EF%BC%8C%E6%88%91%E8%A7%89%E5%BE%97%E5%8F%AF%E8%83%BD%E6%98%AF%E8%B0%83%E7%94%A8%E5%B1%82%E6%AC%A1%E6%AF%94%E8%BE%83%E6%B7%B1%EF%BC%8C%E7%84%B6%E5%90%8E%E5%86%8D%E4%B8%BB%E5%BE%AA%E7%8E%AF%E9%87%8C%E7%9B%B4%E6%8E%A5%E8%B0%83%E7%94%A8%E8%AE%BE%E7%BD%AE%E5%8D%A0%E7%A9%BA%E6%AF%94%E7%9A%84%E5%87%BD%E6%95%B0%EF%BC%8C%E7%BB%93%E6%9E%9C%E6%B2%A1%E6%9C%89%E5%87%BA%E7%8E%B0%E5%8D%A1%E6%AD%BB%E6%83%85%E5%86%B5%E3%80%82%E8%AF%B7%E9%97%AE%E8%BF%99%E7%A7%8D%E6%83%85%E5%86%B5%E5%9C%A8%E8%BF%99%E6%AC%BE%E8%8A%AF%E7%89%87%E5%B8%B8%E8%A7%81%E5%90%97%EF%BC%8C%E6%88%91%E7%9A%84APP%E7%A8%8B%E5%BA%8F%E5%A4%A7%E6%A6%8233K%E5%B7%A6%E5%8F%B3%EF%BC%8C%E4%BB%8E0x8000%E5%BC%80%E5%A7%8B%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%88%91%E6%83%B3%E5%9C%A8%E9%A1%B9%E7%9B%AE%E4%B8%AD%E9%80%89%E6%8B%A9%E6%80%A7%E8%83%BD%E6%9B%B4%E5%A5%BD%E7%9A%84%E6%80%A7%E4%BB%B7%E6%AF%94%E7%9A%84%E8%BD%A6%E8%A7%84%E7%BA%A7%E8%8A%AF%E7%89%87%EF%BC%8C%E8%83%BD%E8%BF%90%E8%A1%8C%E6%9B%B4%E5%A4%9A%E7%AE%97%E6%B3%95%EF%BC%8C%E6%88%91%E5%BA%94%E8%AF%A5%E5%A6%82%E4%BD%95%E9%80%89%E6%8B%A9%E3%80%82%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1989682%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3ERe%3A%20KEA128%20UART%20Bootloader%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1989682%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2C%3C%2FP%3E%0A%3CP%3E%E9%82%A3%E4%BD%A0%E6%8A%8AappEntry%E5%8A%A0%E4%B8%8A1.%3C%2FP%3E%0A%3CP%3EBR%3C%2FP%3E%0A%3CP%3EXiangJun%20Rong%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1988700%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3ERe%3A%20KEA128%20UART%20Bootloader%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1988700%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3E%E4%BD%A0%E5%A5%BD%EF%BC%8C%E5%BD%93%E6%88%91%E6%8A%8A%E8%BF%99%E8%A1%8C%E4%BB%A3%E7%A0%81%E6%94%BE%E8%BF%9B%E5%8E%BB%EF%BC%8C%E5%87%BA%E7%8E%B0%E4%B8%80%E4%B8%AA%E9%94%99%E8%AF%AF%EF%BC%8C%EF%BC%88jump_to_application%20%3Djump_to_application%20%2B1%EF%BC%9B%EF%BC%89%E4%BD%BF%E7%94%A8%E7%9A%84%E6%98%AFIAR%E8%BD%AF%E4%BB%B6%E7%BC%96%E8%AF%91%E5%99%A8%EF%BC%8C%E6%8A%A5%E9%94%99%E4%BF%A1%E6%81%AF%E4%B8%BA%EF%BC%8CError%5BPe852%5D%3A%20expression%20must%20be%20a%20pointer%20to%20a%20complete%20object%20type%20%E3%80%82%E8%BF%99%E4%B8%AA%E8%AF%A5%E5%A6%82%E4%BD%95%E8%A7%A3%E5%86%B3%E5%91%80%EF%BC%9F%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1988570%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3ERe%3A%20KEA128%20UART%20Bootloader%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1988570%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2C%3C%2FP%3E%0A%3CP%3E%E8%AF%B7%E4%BD%BF%E7%94%A8%E4%B8%8B%E5%88%97%E4%BB%A3%E7%A0%81%EF%BC%9A%3C%2FP%3E%0A%3CP%3E%2F%2Fshutdown_drivers()%3B%3CBR%20%2F%3Ejump_to_application%20%3D%20(void%20(*)(void))appEntry%3B%2F%2F%E8%B7%B3%E8%BD%ACAPP%E5%85%A5%E5%8F%A3%E5%9C%B0%E5%9D%80%3C%2FP%3E%0A%3CP%3Ejump_to_application%20%3Djump_to_application%20%2B1%EF%BC%9B%3CBR%20%2F%3Estack_pointer%20%3D%20appStack%3B%20%2F%2F%E5%A0%86%E6%A0%88%E6%8C%87%E9%92%88%3CBR%20%2F%3E%2F%2F%20SCB-%26gt%3BVTOR%20%3D%20appEntry%3B%3CBR%20%2F%3E__set_MSP(appStack)%3B%20%2F%2F%E8%AE%BE%E7%BD%AE%E4%B8%BB%E7%A8%8B%E5%BA%8F%E5%A0%86%E6%A0%88%E6%8C%87%E9%92%88%3CBR%20%2F%3E__set_PSP(appStack)%3B%20%2F%2F%E8%AE%BE%E7%BD%AE%E8%BF%9B%E7%A8%8B%E5%A0%86%E6%A0%88%E6%8C%87%E9%92%88%3CBR%20%2F%3Ejump_to_application()%3B%20%2F%2F%E8%B7%B3%E8%BD%AC%3C%2FP%3E%0A%3CP%3E%E5%9B%A0%E4%B8%BA%E6%98%AFthumb%E6%8C%87%E4%BB%A4%E9%9B%86%EF%BC%8C%20%E8%AF%B7%E8%AF%95%E4%B8%80%E4%B8%8B%EF%BC%8C%E7%9C%8B%E8%A1%8C%E4%B8%8D%E8%A1%8C%3C%2FP%3E%0A%3CP%3EBR%3C%2FP%3E%0A%3CP%3EXiangJunRong%3C%2FP%3E%3C%2FLINGO-BODY%3E