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.

[参考译文] CCS/LAUNCHXL-CC1352R1:我使用引导加载程序及其 UART 将 bin 文件写入闪存。 问题是、正常情况下、我必须多次发送 cmd (download/ping/...)(可能是5次)、然后我可以从引导加载程序接收 ACK/NACK。

Guru**** 3003130 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/921399/ccs-launchxl-cc1352r1-i-am-using-the-bootloader-with-its-uart-to-write-bin-file-to-flash-the-question-is-that-it-is-nomal-or-not-that-i-have-to-send-cmd-download-ping-several-times-maybe-5-times-then-i-can-receive-ack-nack-fr

器件型号:LAUNCHXL-CC1352R1

工具/软件:Code Composer Studio

我编写了一个 func、这样、即使引导加载程序剂量不会返回任何内容或错误消息、我也可以通过 UART 接收来自引导加载程序的正确消息。

void sendcmd (UART_Handle UART、uchar Cmd、const uchar * pcSendData、uchar SendLen_data)//命令+数据(通过第三个参数判断数据指针叠加的数),最终发送数据:第一字节为总的发送内容的长度
{//第二字节为校验和=cmd+data
uchar length_all = SendLen_data + 3;//第三字节即为cmd
//uchar pdata[length_all];//后面即为接着cmd的数据,可以没有,因此最短长度为3
uchar pdata[3];
pdata [0]= length_all;
pdata[1]= generateChecksum (Cmd、pcSendData、SendLen_data);
pdata [2]= Cmd;
if (UART_WRITE (UART、pdata、3)!= 3)//数组的长度不确定,因此分批发送
errorhandle();
int i;
for (i=0;<SendLen_data; i++)
{
//pdata[2+i]= pcSendData[i];
uchar data_1byte =*(pcSendData+I);
if (UART_WRITE (UART、&DATA_1byte、1)!= 1)
errorhandle();
}
//if (UART_WRITE (UART、pdata、length_all)!= length_all)
// errorhandle();
}
void sendcmd_right (UART_Handle UART、uchar Cmd、const uchar * pcSendData、uchar SendLen_data)
{
int x=0;
uchar rec_data[2];
REC_DATA[0]= 0x00;
REC_DATA[1]=0x00;
while (!(rec_data[0]= 0x00&&rec_data[1]=0xcc))
{
sendcmd (UART、Cmd、pcSendData、SendLen_data);
x = UART_READ (UART、rec_data、2);
}
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!  

    您能否详细说明这个问题、您是否总是必须重复多次命令才能获得响应、还是有时才得到响应? 您的"设置"阶段如何寻找与串行引导加载程序的初始通信?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我猜主要原因可能是我没有按正确的顺序重置系统或擦除闪存。 可能应按指定顺序感应各种命令。

    经过几次不同的尝试后、它现在可以一次应答我的命令、而不会重复下载命令之外的命令。