针对您在使用HighTec编译的HEX文件烧录到TC1796开发板时程序未运行、RST指示灯常亮的问题,以下是详细的排查和解决步骤:
cstartt.c),该文件初始化堆栈、RAM、时钟和中断向量表。${HighTec_DIR}/tricore/cstart)。_START()函数(入口点)。cstartt.c中确保禁用了看门狗:// 禁用看门狗示例(通常位于_CoreInit()函数)
#define WDT_PASSWORD 0xD0 // 解锁密码
WDT_CON0 = WDT_PASSWORD | 0x8; // 设置WDTR=1(禁用看门狗)0xA0000000或0x80000000)。.lsl文件:memory段定义:memory mpu0 // TC1796的PFlash0
{
mau = 8;
size = 2M;
map (dest=bus:sri, dest_addr:0xA0000000, size:2M);
}section_layout ::linear
{
group (ordered) ...
{
// 向量表位于0xA0000000
"_RESET" (addr = 0xA0000000) // 复位向量
}
}_RESET地址是否正确。main()中显式调用DAvE初始化函数(通常为DAvE_Init()):#include "DAvE_Init.h" // 确保包含头文件
int main(void) {
DAvE_Init(); // 初始化时钟、外设
while(1) { /* 主循环 */ }
}0xA0000000)。#include "IfxPort.h"
int main(void) {
// 配置P2.0为输出(假设LED连接此引脚)
IfxPort_setPinModeOutput(&MODULE_P02, 0, IfxPort_OutputMode_pushPull);
while(1) {
IfxPort_togglePin(&MODULE_P02, 0); // 翻转LED
delay(); // 简单延时
}
}0xA0000000(复位向量)?SCU_RSTSTAT)查看复位原因。main()初始化时禁用看门狗:WDT_CON0.B.DR = 1;cstartt.c是否禁用看门狗、初始化栈和时钟。main()中显式调用DAvE_Init()。若仍无法解决,请提供:
cstartt.c)的关键部分。.lsl)的内存布局。SCU_RSTSTAT寄存器的值(通过调试器读取)。
举报
更多回帖