通过UART启动代码-代码大小(十六进制文件)高于RAM大小

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
6个职位/ 0个新职位
最后发表
Ezza
离线
最后看到:1年7个月前
加入:2017-09-07十一33
通过UART启动代码-代码大小(十六进制文件)高于RAM大小

你好,
我正试图启动SDK 5.0.4 ble_app_peripheral示例代码使用UART协议进入DA14580设备。
我遵循以下步骤:DA1458x从串行接口文件启动。
引导失败是因为示例代码大小(十六进制文件)是58KB,而DA14580 RAM大小大约是43KB。
例如,当我发送LEN_LSB和LEN_MSB(这是58187)我从设备接收NACK。

为什么代码示例的大小不适合组件的大小?对于这个问题有什么变通方法吗?

设备:
STS_Dialog(未验证)
嗨ezza,

嗨ezza,

您检查的是十六进制文件而不是二进制文件,当您使用Kyle编译代码时,会生成一个。hex文件,这个文件不会放到M0中,而是放到。bin文件中。这个过程可以从智能代码片段收费(转换十六进制到二进制),当您浏览文件时自动。

BR,

STS_Dialog。

Ezza
离线
最后看到:1年7个月前
加入:2017-09-07十一33
你好,

你好,

谢谢你的回复。

我已经使用Intel HEX to BINARY File Converter Utility将. HEX转换为.bin,创建的文件甚至比HEX文件更大。

STS_Dialog(未验证)
你好,

你好,

请尝试它从hex2bin.exe位于suota tools zip。从文档中的教程选项卡。

BR,

STS_Dialog。

Ezza
离线
最后看到:1年7个月前
加入:2017-09-07十一33
谢谢你好的。

谢谢你好的。

hex2bin.exe提供与intel工具相同的输出。
请见附件的截图。

bin文件的大小非常大。它无法装入设备的RAM。
如果我遗漏了什么,请纠正我,这是我的psaudo代码:

1.发送重置请求。
2.从设备(0x02)读取响应。
3.Send SOH = 0x01 to设备。
4.发送代码的长度(LSB然后MSB)。
5.从设备接收ACK或NACK(在我的情况下,因为长度太大,我得到NACK,我尝试减少它,我得到了ACK)。
6.将代码的字节发送到设备。
7.从设备接收CRC。
9.向设备发送ACK。

附件:
STS_Dialog(未验证)
你好,

你好,

我已经测试过了,大约21KB,你在代码中添加了什么吗?

BR,

STS_Dialog