DA14585从UART引导

了解更多常见问题教程

2个职位/0个新职位
最后一篇文章
李叶欢
离线
最后一次见到:1年4个月前
已加入:2018-11-12 08:27
DA14585从UART引导

嗨,对话,

我想从UART引导到我的DA14585设备。但是,我只找到了关于DA14580/581/583从串行接口引导的文档。

你们有关于DA14585启动顺序的具体文件吗?

谢谢!

致以最诚挚的问候!

莱昂内尔

设备:
胞苷
离线
最后一次见到:4个月5天前
工作人员
已加入:2017-12-14 02:48
你好,李叶欢,

你好,李叶欢,

585的引导顺序与580的相同,因此doc也适用于585。

为了更好的参考,您可以在secondary\u bootloader项目(DA14585\u SDK\u 6.0.10.511\u 0\DA14585\u SDK\6.0.10.511\utilities\secondary\u bootloader)中找到585如何从UART接收引导数据的代码。

以下是相关代码:

/*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************void){int fw\u size;int i;char*code;char crc\u code;char recv\u byte;UART\u send\u byte(STX);//send start TX char if(0==uart\u receive\u byte(&recv\u byte))return-1;//接收SOH if(recv\u byte)!=SOH)return-2;if(0==uart\u receive\u byte(&recv\u byte))return-3;//接收FW length LSB FW\u size=recv\u byte;if(0==uart\u receive\u byte(&recv\u byte))return-4;//接收FW length MSB FW\u size+=(recv\u byte<<8);//支持扩展长度协议if(FW\u size==0){if(0==uart\u receive\u byte(&recv\u byte))return-3;//receive FW length LSB FW_size=recv_byte;if(0==uart_receive_byte(&recv_byte))返回-4;//接收FW length MiddleSB FW_size+=(recv_byte<<8);if(0==uart_receive_byte(&recv_byte))返回-9;//接收FW length MSB FW_size+=(recv_byte<<16);}if((fw_size==0)| | fw_size>MAX_CODE_LENGTH)//检查程序是否适合内存{uart_send_byte(NAK);//如果不适合send ACK return-5;}else{uart_send_byte(ACK);//如果适合send ACK}crc_CODE=0;CODE=(char*)(SYSRAM_COPY_BASE_ADDRESS);//为(i=0;i