嗨,对话框中,
我目前正在尝试将Suota添加到我的14681固件。我基本上是将PXP_Reporter源文件复制到我的构建目录中,并调整配置标题一位(以定义Suota)。构建时,我收到以下错误:
建设目标:构建/ firmware_0.1.0_debug_qspi.elf
ld: ROM变量区域(从0x07FDC000开始)被RetRAM0溢出
Collect2: error: ld returned 1 exit status
: * * *(建立/ firmware_0.1.0_debug_qspi。精灵]错误1
我假设有些东西我没有配置,或者配置错了,但我不确定。我已经阅读了UM-B-044-DA1468x软件平台参考在保留RAM上的部分,但我不确定如何解决我的链接错误。
你能帮助吗?我很乐意提供更多信息;我认为我需要,但我还不知道什么*什么*;让我知道!提前谢谢你!
设备:
嗨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_configQSPI_CACHED_RAM_SIZE_AE (12* 1024) // 12k
#定义dg_configQSPI_CACHED_RETRAM_0_SIZE_AE (116* 1024) / / 116 k
12K(RAM)+ 116K(retram0)= 128K
在最优配置的情况下,可能的配置可能是:
#定义dg_configQSPI_CACHED_RAM_SIZE_AE (12* 1024) // 12k
#定义dg_configQSPI_CACHED_RAM_SIZE_AE (84.* 1024) / / 84 k
12k (ram) + 84k (retram0) + 32k (retram0)= 128k
此外,如果您希望保留变量,强烈建议使用适当的标记。例如:
__RETAINED_RW㈡我= 0;//初始化保留变量的标签
__RETAINED㈡我;//未初始化的保留变量的标签
谢谢,PM_Dialog
谢谢你!
我会尝试这些设置,如果我有进一步的问题,我会回复。
嗨Brooksprumo,
如果您有任何后续问题,请告诉我们。
谢谢,PM_Dialog
好的!这让我成功地构建我的代码!
现在我遇到了两个问题;他们可能有联系,但我不确定。
首先,我从pxp_reporter演示中构建了引导加载程序和固件。我已经成功地按照文档来构建项目,然后将引导加载程序和固件下载到我的设备上。现在,我尝试在我自己的应用程序中使用pxp_reporter演示中的SUOTA代码。首先,当我尝试下载ble_suota_loader引导加载程序时,我在执行下载时得到一个错误:
“文件大小不能超过65535字节。”
我从命令行使用smarnippet工具箱来执行下载。的命令是:
"C:/DiaSemi/ smartsnippetstudio /Toolbox/SmartSnippetsToolbox.exe" -type qspi -chip da14480 -01 -com_port 4 -firmware "E:/$ble_suota_loader.bin" -cmd write -mode cached -file "E:/firmware.bin"
我不确定是否有一些我错过的其他配置,这导致了这个错误。
我的第二个问题是……为了解决引导加载程序问题,我尝试恢复到uartboot.bin引导加载程序(这是我一直在使用的引导加载程序)。我可以下载bootloader,我相信我也成功下载了我的固件,从pxp_reporter有SUOTA代码。然而,我认为设备运行不正常。
在Dialog 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