嗨对话,
我目前正在尝试将Suota添加到我的14681固件。我基本上是将PXP_Reporter源文件复制到我的构建目录中,并调整配置标题一位(以定义Suota)。构建时,我收到以下错误:
构建目标:构建/固件\u 0.1.0\u调试_qspi.elf
ld:ROM变量区域(从0x07FDC000开始)被RetRAM0溢出
collect2:错误:ld返回1退出状态
make:**[构建/固件\u 0.1.0\u调试_qspi.elf]错误1
我想有些东西我没有配置,或者是配置错误,但我不确定。我已经在保留RAM上阅读了UM-B-044-DA1468x软件平台参考文件的部分,但我不确定如何解决链接错误。
你能帮忙吗?我很高兴提供更多的信息,我想我需要,但我还不知道什么,只要告诉我!提前谢谢!
设备:
嗨Brooksprumo,
此错误的原因是因为retram0的长度太小,因此您应该增加retram0尺寸。首先,强烈建议在开发模式下使用非最佳回动,因为所有存储器单元都将被通电。因此,在非最佳配置中,您应该定义DG_CONFIGOPTIMAL_RETRAM(0)和DG_CONFIGMEM_RETENTION_MODE(0x1F)。最佳配置通常用于最终产品。有关获取更多信息,请在UM-B-044文档中查看图78和图79。因此,为了增加retram0尺寸,您应该减少RAM的大小。执行代码通常为8-10k,但首先检查代码的长度以配置DG_CONFIGQSPI_CACHED_RAM_SIZE_AE以正确的长度。在非最佳配置的情况下,在10K左右的代码,我在custom_config_qspi.h标题文件中可能配置可能是以下情况。
#定义dg\u配置QSPI U缓存的RAM\u大小\u AE(12*1024)//12K
#定义dg\u配置QSPI U缓存\u RETRAM\u 0\u大小\u AE(116*1024)//116K
12K(RAM)+ 116K(retram0)= 128K
如果配置最佳,可能的配置可能是:
#定义dg\u配置QSPI U缓存的RAM\u大小\u AE(12*1024)//12K
#定义dg\u配置QSPI U缓存的RAM\u大小\u AE(84.*1024)//84K
12K(RAM)+84K(重传0)+32K(重传0)=128K
此外,如果您想保留变量,强烈建议使用适当的标记。例如:
__保留\u RW㈡i=0;//初始化保留变量的标记
__保留㈡i、 //未初始化保留变量的标记
谢谢,下午好
谢谢您!
如果有进一步的问题,我将尝试这些设置并回复。
嗨Brooksprumo,
请告诉我们,如果您有任何后续问题。
谢谢,下午好
好 啊!这让我成功地构建了我的代码!
现在我遇到两个问题,它们可能有关联,但我不确定。
首先,我已经从pxp_uReporter演示中构建了引导加载程序和固件。我已经成功地按照文档构建项目,然后将引导加载程序和固件下载到我的设备上。现在我正在尝试在我自己的应用程序中使用pxp炣reporter演示中的SUOTA代码。首先,当我尝试下载ble_uusuota\u loader引导程序时,在执行下载时出错:
“文件大小不能超过65535字节。”
我正在使用命令行的SmartSnippet工具箱执行下载。命令是:
“C:/DiaSemi/SmartSnippetsStudio/Toolbox/SmartSnippetsStolbox.exe“-qspi类型-芯片DA14680-01-com\U端口4-固件”E:/$ble\U suota_装载机.bin“-cmd write-mode cached-file”E:/固件.bin"
我不确定是否有其他配置,我错过了,这是造成这个错误。
我的第二期。。。为了解决引导程序问题,我尝试恢复到uartboot.binbootloader目前(这是我一直使用的引导程序)。我可以下载那个引导程序,我相信我也成功地从pxp炣reporter下载了SUOTA代码的固件。但是,我认为设备运行不正确。
在SUOTA phone app对话框中,我没有看到我的设备,而且设备似乎也没有响应其他查询。也许我的固件在什么地方崩溃了?
我认为我的第二个问题目前可能太模糊了。不过,任何一个问题的帮助都将非常感谢!提前谢谢!
嗨Brooksprumo,
请查看申请单AN-B-046 DA1468x从串行接口v1.2.pdf引导,第5.3章. 从我们的支持页面。在该章中,我们将解释串行引导协议。UART引导协议字节2和3表示文件的长度。对于2个字节,最大长度限制为0xFFFF(65535字节)。因此,最大长度受设计限制。要加载较大的文件,请使用SWDIO/SWCLK(JTAG)接口。如果使用JTAG,您是否可以下载固件?
谢谢,下午好
哦,好吧,这很有道理。现在我只有一个UART串行连接到我的设备。我会考虑找一个开发委员会,这样我就可以使用JTAG了。
谢谢您!
嗨Brooksprumo,
是的,请尝试一下JTAG接口,然后告诉我。如果您发现上述任何答案有用,请将其中一个标记为“已接受”。
谢谢,下午好