Part Number:TMS570LS1227
我刚接触这个芯片,请教一下各位大佬两个问题:
1、怎么让esmHighInterrupt中断强制产生,需要修改哪个寄存器的值?
2、sys_startup.c文件中的exit(0)函数会在什么情况下产生?我想让程序强制执行这个函数有什么办法?
谢谢!
Susan Yang:
user1658391 说:1、怎么让esmHighInterrupt中断强制产生,需要修改哪个寄存器的值?
user1658391 说:2、sys_startup.c文件中的exit(0)函数会在什么情况下产生?我想让程序强制执行这个函数有什么办法?
关于芯片的启动您可以看一下
https://www.ti.com/lit/an/spna138a/spna138a.pdf
1.1 Hercules MCUs Device Startup
能否说明一下您现在的主要实现功能/需求是怎样的?
,
user1658391:
问题是这样的,我现在的一个项目需要做软件的认证与确认,有一项测试时代码覆盖率为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);
}
,
Susan Yang:
user1658391 说:1、是否是在debug的时候修改ESMIESR1->INTENSET的位为1,以及ESMSR1->ESF为1,就会自动进入esmHighInterrupt函数?
写该寄存器的话,是需要在特权模式的
您的意思是在CCS的寄存器页面直接修改?我没有该板子,所以没有测试过该过程是否可行。但我之前使用的其他板子是不可以这样操作的
user1658391 说:2、exit()函数实在main函数之后调用,main函数是个死循环,怎么让程序跳出main函数执行exit()函数呢?
我目前没有想到比较有效的方法。我去咨询一下专家后给您回复
,
user1658391:
好的,多谢了!万分感谢!
,
Susan Yang:
请您看一下回复
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