DA14580 DSPS演示应用程序从Flash

5个职位/ 0个新职位
最后发表
史蒂芬T
离线
最后看到:3年10个月前
加入:2016-02-18 31
DA14580 DSPS演示应用程序从Flash

你好,

我们正在使用Dialog Pro开发工具包,并将一个PAN1740 Beacon连接到它上。

我们有演示DSPS代码(DA1458x_DSPS_v_5.150.2)运行,如文档“UM-B-038 DA14580串口服务参考application_v2.0.pdf”所述。
当代码被程序员直接加载到SRAM时,它工作得很好。

现在我们想从PAN1740 Beacon上的外部闪存(确切类型:MX25V2006E)启动代码。
我们可以用一个外部编程器给闪存编程。

问题:
我们需要如何修改uVision Studio内的构建设置,以便输出直接可编程到flash?
(输出的.hex文件包含一个偏移量0x20000000,据我理解,这是内部SRAM地址。
但是有了这样的偏移,闪存无法被编程,因为它处理的字节远远超过闪存大小。)
仅仅改变。hex文件中的偏移量就足够了吗?如果我们想直接将输出写入flash文件,是否需要对项目进行其他更改?

谢谢你的帮助!

设备:
MT_dialog
离线
最后看到:5个月2个星期前
工作人员
加入:2015-06-08 34
你好史蒂芬T,

你好史蒂芬T,

您可以使用Smart Snippets将.hex文件直接刻录到flash中,只需在flash程序员中提供.hex文件并点击刻录即可。Smart Snippets将运行hex2bin并将.bin输出烧录为flash的零地址,它将擦除.hex文件的原始偏移量,并将从零开始写入flash。

由于MT_dialog

史蒂芬T
离线
最后看到:3年10个月前
加入:2016-02-18 31
你好,

你好,

谢谢你的快速回答。我知道智能片段工具和它的flash功能,但它似乎不正确地工作与我们的董事会。
由于这是另一个主题(可能是一个硬件主题),我不会在本线程中进一步询问这个问题。

但你的回答给了我一个解决办法:
1.删除十六进制文件中的偏移行
2.手动使用hex2bin
3.从零开始将箱子写入闪存

如果这个程序有什么问题,请纠正我。

唯一确定的问题是:
十六进制行给出了起始地址0x2000…也可以删除,我想?

史蒂芬T
离线
最后看到:3年10个月前
加入:2016-02-18 31
你好,

你好,

我不得不对这个话题补充一些问题:

我们能够对flash进行编程,但DA14580引导加载程序似乎无法获取代码。

1.问题:
当我们启动PAN1740模块时,我们可以看到SPI-Port上的活动,如文档“AN-B-001 -从串行接口启动v2.0.pdf”中所描述的。
但与此文件的描述相反,活动没有停止,但设备继续永远试图读取SPI奴隶
(循环表8中描述的4种情况:读取操作码0x03带有0个哑字节,0x03带有1个哑字节…)
我们在移除flash的模块上看到了同样的行为:引导加载程序不会停止读取spi从程序。
对此你有什么解释吗?

2.问题:
在同一个文档中,表7描述了成功从SPI从启动的协议:
- Master发送读命令+ 3地址字节+哑字节(在我们的情况下0哑字节将是正确的情况)
- Slave应答0x70 + 0x50 + 4哑字节+ 2字节码长。
此数据必须来自二进制flash内容。
但是从DSPS演示代码生成的十六进制文件不包含任何这些信息(第一个字节是十六进制00 98 00 20 A5 04 00 20 AD 04 00 20 C5 04 00 20)
'p' + 'p' +码长应该从哪里来?

MT_dialog
离线
最后看到:5个月2个星期前
工作人员
加入:2015-06-08 34
你好史蒂芬T,

你好史蒂芬T,

你不需要做上面的任何事情,hex2bin文件将为你做那,事实上,智能片段工具将为你做那,只是打开智能片段和把。hex文件输出从keil在智能片段的浏览部分。hex2bin将提交初始地址0x20000000填充,Smart Snippets将从0地址开始写入。如果你想构建设备地址零,你将不得不修改分散文件,但我不认为有任何理由这样做,一个原因不这样做是因为你不能调试你的代码通过keil。

1)你看到引导程序反复执行的原因是一个bug和主引导加载程序中错误的ADC测量。

2)0x70 0x50是标记为FW的标签作为可引导,当使用智能片段刻录闪光灯时,工具将提示您,如果您想使设备启动,如果单击“是”它将附加0x70 0x50和其他到你的图像的字节。

由于MT_dialog