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.
我刚接触这个芯片,请教一下各位大佬两个问题:
1、怎么让esmHighInterrupt中断强制产生,需要修改哪个寄存器的值?
2、sys_startup.c文件中的exit(0)函数会在什么情况下产生?我想让程序强制执行这个函数有什么办法?
谢谢!
1、怎么让esmHighInterrupt中断强制产生,需要修改哪个寄存器的值?
2、sys_startup.c文件中的exit(0)函数会在什么情况下产生?我想让程序强制执行这个函数有什么办法?
关于芯片的启动您可以看一下
https://www.ti.com/lit/an/spna138a/spna138a.pdf
1.1 Hercules MCUs Device Startup
能否说明一下您现在的主要实现功能/需求是怎样的?
问题是这样的,我现在的一个项目需要做软件的认证与确认,有一项测试时代码覆盖率为100%,包括void _c_int00(void)和esmHighInterrupt以及exit();所有C语言代码都需要运行到,需要模拟产生exit()和esmHighInterrupt中断。所以我是想问,
1、是否是在debug的时候修改ESMIESR1->INTENSET的位为1,以及ESMSR1->ESF为1,就会自动进入esmHighInterrupt函数?
2、exit()函数实在main函数之后调用,main函数是个死循环,怎么让程序跳出main函数执行exit()函数呢?
void _c_int00(void)
{
......................
__TI_auto_init();
/* USER CODE BEGIN (75) */
/* USER CODE END */
/* call the application */
/*SAFETYMCUSW 296 S MR:8.6 <APPROVED> "Startup code(library functions at block scope)" */
/*SAFETYMCUSW 326 S MR:8.2 <APPROVED> "Startup code(Declaration for main in library)" */
/*SAFETYMCUSW 60 D MR:8.8 <APPROVED> "Startup code(Declaration for main in library;Only doing an extern for the same)" */
main();
/* USER CODE BEGIN (76) */
/* USER CODE END */
/*SAFETYMCUSW 122 S MR:20.11 <APPROVED> "Startup code(exit and abort need to be present)" */
exit(0);
}
1、是否是在debug的时候修改ESMIESR1->INTENSET的位为1,以及ESMSR1->ESF为1,就会自动进入esmHighInterrupt函数?
写该寄存器的话,是需要在特权模式的
您的意思是在CCS的寄存器页面直接修改?我没有该板子,所以没有测试过该过程是否可行。但我之前使用的其他板子是不可以这样操作的
2、exit()函数实在main函数之后调用,main函数是个死循环,怎么让程序跳出main函数执行exit()函数呢?
我目前没有想到比较有效的方法。我去咨询一下专家后给您回复
请您看一下回复
https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1031184/tms570ls1227-force-generation-of-esmhighinterrupt/3812476#3812476