你好,
我正在尝试使用DA14580工厂提供的引导加载程序在我的代码中加载(一个略微修改的DSP中心),我“几乎”成功......
在开发套件专家上使用DA14580_CB_PXI_QFN48模块,我已经测试了Keil项目及其生成的十六进制文件的工作
按照各种方式。
我现在推出一个未编程的DA14580(从上面的设置),将UART连接到GPIOA.4和GPIOA.5并进行通信
使用DA14580在其引导序列期间。在应用程序注意an-b-001之后,我可以在UART上看到STX = 0x02,
并且我回复Soh = 0x01,len_lsb = 0x00,len_msb = 0x40。然后,我得到ACK = 0x06,我开始拍摄代码字节到DA14580。
但是,我没有得到一致的crc,如果我给最后一个ack = 0x06没有任何反应
实际上,用示波器看着UART引脚显示GPIOA.4,DA14580 UART TX正在被释放并变成浮动
在代码字节传输期间的某个地方。
我有点不确定是十六进制文件转换为代码字节。我已经写了一个c#程序,它转换sps_host.hex
使用const uint8_t thecode [16000]数组进入C头文件。我不确定如何处理的是,在那里的十六进制文件
有点差距;即英特尔十六进制文件格式指定16个代码字节的每行的起始地址。但我的sps_host.hex文件有4个代码区域,3
它们之间各种长度的空间的块。使用SmartSnippets Toolbox的OTP图像工具,我加载sps_host.hex文件,可以看出
空的空格由十六进制字段中的“ - ”符号表示。在我的转换程序中,我简单地用“0”(Zeroes)填写这些字节。
此外,SPS_HOST.HEX文件包含15360字节,而我的程序垫,ZEROOS高达16000字节的总长度。
我觉得很困难,并会欣赏一些暗示哪些方向运行?
布尔
罗杰
嗨,是的,
嗯,不确定你的#程序是否将.hex文件转换为二进制(做呢?)如果您正在将.hex文件作为不起作用的数组下载,则应下载二进制而不是.hex文件。智能片段将自动转换为.bin文件中提供的.hex文件,这就是它下载到580中的文件。如果您没有获得有效的CRC,这意味着您正在下载的二进制文件是错误的如果您发送ACK(0x06)和下载的SW无效,则设备不会启动。
谢谢mt_dialog.