KEA128 UART Bootloader

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

KEA128 UART Bootloader

跳至解决方案
1,718 次查看
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,595 次查看
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,687 次查看
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,680 次查看
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,644 次查看
xiangjun_rong
NXP TechSupport
NXP TechSupport

Hi,

那你把appEntry加上1.

BR

XiangJun Rong

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