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.
各位专家,您好!
我正在使用通过MSP-FET连接到MSP430F5438A目标开发板的BSL脚本程序。
当我使用下面的示例脚本时:
//
//脚本示例543x系列UART BSL
//
//下载闪烁LED应用程序
//通过UART BSL连接到543x系列设备
//
//它是使用Launchpad BSL进行测试的
//应用程序作为通信网桥
//
日志
模式MSP430F5xx UART COM12
//提供了错误的密码
//mass eraseof the memory (内存的质量)
//mass擦除
Rx_password .\pass16_wrong.txt
Rx_password .\pass16_default.txt
RX_DATA_BLOCK .\blinkLED_f5438.txt
//crc_check 0x5C00 0x0020 0xAF15
//crc_check 0xffd2 0x00D0 0xC1EA
Set_PC 0x5c00
我可以在内部加载代码。 但是,在我将PC设置为0x5C00后,我必须重置微控制器才能启动应用程序。
我的问题是为什么需要重置才能启动应用程序?
谢谢,此致,
安杰特
您好,Ryan:
感谢您的回复。 根据你的解释,我有几个问题。 (请忍受,我仍在学习)
0x5C00可能是主代码存储器的起点,但它是否是复位向量(0xFFFE)指向的开始操作的地址? 请查看您的二进制映像文件并进行相应的修改。 我检查了重置向量(0xFFFE),它确实指向0x5C00。
还值得一提的是,BSL在8 MHz下运行,在应用程序启动时会继续运行,因此需要完全重置时钟系统以达到预期的操作频率。 那么您的意思是需要将类似的内容添加到我的代码中?:
void Initialize_Clock (void)
{
UCSCTL3 |= SELREF_REFCLK;
UCSCTL4 |=拉美经济体系_REFOLK;
//初始化Timer_B模块
TB0CCTL0 = CCIE;// CCR0中断已启用
TB0CCR0 = 3.2768万;
TB0CTL = TBSSEL__ACLK + MC__UP + TBCLR;// ACLK,UP模式,清除TAR
}
BSL脚本用户指南(SLAU655)的第二个常见问题解答中对此进行了介绍。 我没有设置任何时钟,这意味着它应该使用内部参考时钟和带有默认设置的DCO来生成时钟。 如果BSL在8MHz工作,那么即使我不提供任何XT1和XT2,BSL也应该能够使用内部参考时钟和DCO设置8MHz (如果使用内部参考时钟和DCO,BSL将会遇到任何问题?)。 我读过SLAU655,但我不明白它会对我的代码有何影响,因为在下面的代码中,我正在根据For循环执行的次数更改延迟。 无论时钟频率如何,如果我的理解正确,如果我给出了足够的延迟,我仍应看到LED闪烁。 因此,在以下代码中,如果我将i的分配更改为更大的值,我应该会看到LED闪烁:
int main (void){
WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器
P1DIR |=0x01;//将WFP 1.0 设置为输出方向
用于(;;){
volatile unsigned int I;// volatile,用于防止优化
P1OUT ^= 0x01;//使用OXE-OR切换WFP 1.0
I = 1万;//软件延迟
我是否--;
while (i !=0);
}
返回0;
}
您也可以选择让BSL将错误的WDTPW值写入WDTTTL以进行PUC重置,或者在PMMCTL0寄存器中设置PMMSSWBOR/POR位以进行BOR/POR重置。 我知道我需要生成软件重置,但我无法理解BSL将如何执行此操作。 您是否暗示我通过BSL加载的新代码应该能够做到这一点?
附注:My TI输出文本文件
@5c00
81 00 00 5C B1 13 2A 00 0C 43 B1 13 00 B1 13
24 00 32 D0 10 00 FD 3F 03 43
@ffd2
12 5C 12 5C 12 5C 12 5C 12 5C 12 5C 12 5C 12 5C 12 5C 12 5C 12 5C 12
12 5C 12 5C 12 5C 12 5C 12 5C 12 5C 12 5C 12 5C 12 5C 12 5C 12 5C 12
12 5C 12 5C 12 5C 12 5C 12 5C 12 5C 12 5C 12 5C 12 5C 00 5C F1 03
B2 40 80 5A 5C 01 D2 D3 04 02 D2 E3 02 02 B1 40
10 27 00 00 91 83 00 00 81 93 00 00 F6 27 FA 3F
03 43 03 43 FF 3F 03 43 1C 43 10 01
问
谢谢,此致,
安杰特
您好,Ryan:
非常感谢!
通过WDT生成PUC后,重置问题得到解决。
@015C
00 00
问
谢谢,此致,
安杰特