嗨对话框,
我目前正在尝试将SUOTA添加到我的14681固件。实际上,我已经将pxp_reporter源文件复制到我的构建目录中,并略微调整了配置头(以定义SUOTA)。当构建,我得到以下错误:
构建目标:构建/固件_0.1.0_debug_qspi.elf.elf
LD:ROM变量区域(以0x07fdc000开始)溢出的retram0
collect2:错误:LD返回1个退出状态
make:*** [build / firmware_0.1.0_debug_qspi.elf]错误1
我假设有一些我未配置的东西,或者错误配置,但我不确定。我已经通过UM-B-044-DA1468x软件平台参考零件读到了保留RAM上,但我不确定如何解决我的链接错误。
你能帮我吗?我很高兴提供更多信息;我认为我需要,但我不知道*尚未知道;只是让我知道!先感谢您!
设备:
嗨brooksprumo,
此错误的原因是RETRAM0的长度太小,因此您应该增加RETRAM0的大小。首先,强烈建议在开发模式中使用非最佳的RETRAM,因为所有的存储单元都将启动。因此,在非优化配置中,您应该定义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_qspii .h头文件中的配置可能如下所示。
#定义dg_configqspi_cached_ram_size_ae(12.* 1024)// 12k
#定义dg_configqspi_cached_retram_0_size_ae(116.* 1024)// 116K
12k (ram) + 116k (retram0) = 128k
在最佳配置的情况下,可能的配置可能是:
#定义dg_configqspi_cached_ram_size_ae(12.* 1024)// 12k
#定义dg_configqspi_cached_ram_size_ae(84* 1024)// 84k
12K(RAM)+ 84K(retram0)+ 32K(retram0)= 128K
此外,如果您想保留变量,强烈建议使用相应的标记。例如:
__retated_rw.int我= 0;//初始化保留变量的标记
__retateint一世;//非初始化保留变量的标记
谢谢,PM_DIALOG.
谢谢!
如果我有进一步的问题,我会尝试这些设置并回复。
嗨brooksprumo,
请让我们知道您是否有以下问题。
谢谢,PM_DIALOG.
好的!这让我成功构建了我的代码!
现在我遇到了两个问题;他们可能是相关的,但我不确定。
首先,我从PXP_Reporter演示中构建了引导加载程序和固件。我已成功遵循文档来构建项目,然后将Bootloader和固件下载到我的设备。现在我正在尝试在我自己的应用程序中使用PXP_Reporter演示中的拟议代码。首先,当我尝试下载ble_suota_loader引导加载程序时,我在执行下载时收到错误:
“文件大小不能超过65535字节。”
我正在使用命令行中使用smartsnippet工具箱来执行下载。该命令是:
“c:/diasemi/smartsnippetsstudio/toolbox/smartsnippetstoolbox.exe”-type qspi -chip da14680-01 -com_port 4 -firmware“e:/ $ ble_suota_loader.bin”-cmd write -mode缓存 - 文件“e:/固件。垃圾箱“
我不确定是否有一些其他的配置我已经错过,导致这个错误。
和我的第二个问题......要绕过引导加载程序问题,我试图恢复到UartBoot.bin引导加载程序(它是我正在使用的引导加载程序)。我可以下载那个引导加载程序,我相信我也成功下载了来自PXP_Reporter的Suota代码的固件。但是,我认为设备不正常运行。
在对话框套筒电话应用程序中,我没有看到我的设备,设备似乎没有响应其他查询。也许我的固件已经崩溃了?
我认为我的第二个问题可能在此刻太模糊了。尽管有任何关于任何问题的帮助!提前致谢!
嗨brooksprumo,
请检查应用笔记AN-B-046 DA1468X从串行接口启动V1.2.pdf那5.3章。来自我们的支持页面。在该章中,解释了串行引导协议。UART引导协议字节2和3表示文件的长度。具有2个字节的最大长度限制为0xFFFF(65535字节)。因此,最大长度受到设计的限制。要加载较大的文件,请使用SWDIO / SWCLK(JTAG)接口。如果您使用JTAG,您是否能够下载固件?
谢谢,PM_DIALOG.
哦,好的,这是有道理的。现在我只有一个与我的设备的UART串行连接。我会查看一个开发板,以便我可以使用JTAG。
谢谢!
嗨brooksprumo,
是的,请用JTAG接口尝试,让我知道。如果您发现上述任何答案有用请标记其中一个接受。
谢谢,PM_DIALOG.