工具与软件:
您好!
我正在尝试通过串行引导加载程序将 FW 上传到 CC2642R。 我们按照过程擦除闪存并写入 FW。
//Send Establishing communication send_data[0] = 0x55; send_data[1] = 0x55; write(fd, send_data, 2); recv_len = read(fd, recv_data, 2); printf("recv [0]:0x%x [1]:0x%x\n", recv_data[0], recv_data[1]); //Get chip ID send_data[0] = 0x03; send_data[1] = 0x28; send_data[2] = 0x28; write(fd, send_data, 3); recv_len = read(fd, recv_data, 8); printf("recv [0]:0x%x [1]:0x%x [2]:0x%x [3]:0x%x [4]:0x%x [5]:0x%x [6]:0x%x [7]:0x%x\n", recv_data[0], recv_data[1], recv_data[2], recv_data[3], recv_data[4], recv_data[5], recv_data[6], recv_data[7]); send_cmd_ack(); //Read flash size pages = cmd_read_flash_size(); printf("Flash page count=0x%x\n", pages); send_cmd_ack(); cmd_erase_flash_page(pages); cmd_send_data(sFWFile); cmd_crc32(); cmd_reset();
设置通信、获取芯片 ID、擦除闪存、开始下载固件命令所有运行成功和响应正常的过程。 但是、当尝试向命令发送数据以写入闪存(0x24)时、串行引导加载程序只是没有响应。 此问题是否有任何可能的原因(硬件或软件)?
相同的源代码在我们的旧硬件上运行良好、但在这个新硬件上运行失败。 因此该过程应该正常、并且 UART 通信看起来也正常。 只是想知道为什么它停留在写入命令(0x24)上。
感谢您的帮助。
但以理。