ZHAOBAO511 发表于 2018-7-21 19:38:12

在线急等,430BSL后程序死到这一步!请高手解答,谢谢!

if( CALBC1_8MHZ==0xFF )                                          // If calibration constant erased
                {
                                while(1);                     // do not load, trap CPU!!
                }

我查了一下:自己最近刚开始接触MSP430,不理解底下这段代码的意思,通过度娘和谷歌也没有找到比较好的解释,现在大致搞明白了,可能是这么个意思,提供参考。

if(CALBC1_1MHZ == 0xFF || CALDCO_1MHZ == 0xFF)
{
    while(1);
}

CALBC1_1MHZ和CALDCO_1MHZ是已经定义好的两个宏:
SFR_8BIT(CALDCO_1MHZ);
SFR_8BIT(CALBC1_1MHZ);

Flash擦除后的所有单元比特位都恢复为1,因此若CALBC1_1MHZ和CALDCO_1MHZ都等于0xFF,说明是已经定义好的宏被擦除了。当出现这种情况时就将程序停止于此。BSL定义如下:

wye11083 发表于 2018-7-22 00:06:45

你的理解ok,貌似你要单独烧一下数据。那两段代码确实是不满足要求就死那给你看了

ZHAOBAO511 发表于 2018-7-23 10:44:32

wye11083 发表于 2018-7-22 00:06
你的理解ok,貌似你要单独烧一下数据。那两段代码确实是不满足要求就死那给你看了 ...

谢谢,不知道怎么烧写,专烧FLASH好像没试过,源程序也没有这样写。
页: [1]
查看完整版本: 在线急等,430BSL后程序死到这一步!请高手解答,谢谢!