CC1310可以仿真下载程序,但是断电再上电就不会运行
我使用的是CC13104*4的芯片,下载的是tirtos_cc13xx_cc26xx_2_21_00_06里面CC1310DK_7XD的发送数据包rfPacketTx例程,然后把board.h,CC1310DK_7XD.c和CC1310DK_7XD.h三个文件替换成CC1310DK_4XD目录下的相应的board.h,CC1310DK_7XD.c和CC1310DK_7XD.h三个文件。现在的现象是,可以使用仿真器下载运行LED灯发送一个包就闪烁频谱仪上有波形,但是如果我断电重新上电,LED灯就不再闪烁同时频谱仪也没有波形。
请问各位大神,我这种现象是如何解决?会是什么原因?会是替换文件有问题吗?
发送任务源码:
static void txTaskFunction(UArg arg0, UArg arg1)
{
uint32_t time,i;
// RF_EventMask result;
RF_Params rfParams;
RF_Params_init(&rfParams);
RF_cmdPropTx.pktLen = PAYLOAD_LENGTH;
RF_cmdPropTx.pPkt = packet;
RF_cmdPropTx.startTrigger.triggerType = TRIG_ABSTIME;
RF_cmdPropTx.startTrigger.pastTrig = 1;
RF_cmdPropTx.startTime = 0;
/* Request access to the radio */
rfHandle = RF_open(&rfObject, &RF_prop, (RF_RadioSetup*)&RF_cmdPropRadioDivSetup, &rfParams);
/* Set the frequency */
RF_postCmd(rfHandle, (RF_Op*)&RF_cmdFs, RF_PriorityNormal, NULL, 0);
/* Get current time */
time = RF_getCurrentTime();
while(1)
{
/* Create packet with incrementing sequence number and random payload */
packet[0] = (uint8_t)(seqNumber >> 8);
packet[1] = (uint8_t)(seqNumber++);
uint8_t i;
for (i = 2; i < PAYLOAD_LENGTH; i++)
{
packet[i] = rand();
}
/* Set absolute TX time to utilize automatic power management */
time += PACKET_INTERVAL;
RF_cmdPropTx.startTime = time;
/* Send packet */
RF_EventMask result = RF_runCmd(rfHandle, (RF_Op*)&RF_cmdPropTx, RF_PriorityNormal, NULL, 0);
if (!(result & RF_EventLastCmdDone))
{
/* Error */
while(1);
}
PIN_setOutputValue(pinHandle, Board_LED1,!PIN_getOutputValue(Board_LED1));
}
}
仿真器可能只停留于RAM仿真,并没有真正下载到flash里面,建议用Flash Programmer 2鉴定一下是否flash 有代码
这个地方是勾选仿真下载到FLASH的吗?我已经勾选了,但是还是有可能没有下载到芯片里面去吗?
有尝试用Flash Programmer 2把he或者bin或者out文件烧写进去吗?看看能不能成功
我使用的是CC1310 7*7的芯片也遇到了同样的问题,不知道你的问题原因找到了吗?
移植除了board.h以外,CC1310DK_7XD.c和CC1310DK_7XD.h,RF配置文件看一下?
http://processors.wiki.ti.com/index.php/CC13xx_frontend_configurations
1、我程序里没有用到RF,我也没有用rtos,用的大循环;
2437.bin文件.rar
2、附件bin文件压缩包里包括一个正常运行程序和一个异常不能运行程序,这两个文件是我从同一个CC1310芯片通过flash programmer2读取出来的。
正常运行程序:用IAR先烧写一个程序a,然后再烧写程序b;
异常不运行程序:用IAR直接烧写程序b;
我比对了2个bin文件只有从1FFA0开始的内容不同,请问是IAR哪里设置的不对还是在程序里需要设置?
你是否使用了NVS,把CCFG区擦除了
对,是把CCFG区擦除了。找了半天总算找到原因了。还有我现在遇到一个新的问题,用IAR生成的hex文件无法用flash programmer2下载,知道是怎么回事吗?