需要帮助:ROM区域被RetRAM0溢出

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.wsdof.com/support.我们将在未来几天修复bug /优化搜索和标记。
8个帖子/ 0个新
最后发表
brooksprumo
离线
最后看到:2年7个月前
加入:2017-08-09 05:40
需要帮助:ROM区域被RetRAM0溢出

嗨,对话框中,

我目前正在尝试将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 Software Platform Reference关于保留RAM的部分,但我不确定如何解决我的链接错误。

你能帮助吗?我很乐意提供更多的信息;我想我需要,但我还不知道什么是什么;告诉我就行了!提前谢谢!

关键词:
设备:
PM_Dialog
离线
最后看到:19小时19分钟前
工作人员
加入:2018-02-08 11:03
嗨brooksprumo,

嗨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) / / 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_RWint我= 0;//初始化保留变量的标记

__RETAINEDint我;标记未初始化的保留变量

谢谢,PM_Dialog

brooksprumo
离线
最后看到:2年7个月前
加入:2017-08-09 05:40
谢谢你!

谢谢你!

我将尝试这些设置,并回答如果我有进一步的问题。

PM_Dialog
离线
最后看到:19小时19分钟前
工作人员
加入:2018-02-08 11:03
嗨brooksprumo,

嗨brooksprumo,

如果您有任何后续问题,请让我们知道。

谢谢,PM_Dialog

brooksprumo
离线
最后看到:2年7个月前
加入:2017-08-09 05:40
好的!这让我成功了

好的!这让我成功地构建我的代码!

现在我遇到了两个问题;它们可能有联系,但我不确定。

首先,我已经从pxp_reporter演示构建了引导加载程序和固件。我已经成功地能够按照文档构建项目,然后下载引导加载程序和固件到我的设备。现在,我试图在自己的应用程序中使用pxp_reporter演示中的SUOTA代码。首先,当我尝试下载ble_suota_loader bootloader时,我在执行下载时得到一个错误:

文件大小不能超过65535字节。

我从命令行使用SmartSnippet工具箱来执行下载。的命令是:

"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引导加载程序现在(这是我一直使用的引导加载程序)。我可以下载引导加载程序,我相信我也成功地下载了我的固件,从pxp_reporter有SUOTA代码。然而,我认为设备运行不正常。

在对话SUOTA手机应用程序中,我看不到我的设备,设备似乎也没有回应其他查询。也许我的固件在什么地方崩溃了?

我认为我的第二个问题现在可能太模糊了。任何对这两个问题的帮助都将非常感激!提前谢谢!

PM_Dialog
离线
最后看到:19小时19分钟前
工作人员
加入:2018-02-08 11:03
嗨brooksprumo,

嗨brooksprumo,

请查阅申请须知AN-B-046 DA1468x从串行接口启动v1.2.pdf5.3章.从我们的支持页面。在那一章中解释了串行启动协议。UART引导协议字节2和字节3表示文件的长度。2字节的最大长度限制为0xFFFF(65535字节)。因此,最大长度受到设计的限制。加载更大的文件,请使用SWDIO/SWCLK (JTAG)接口。如果你使用JTAG,你能下载固件吗?

谢谢,PM_Dialog

brooksprumo
离线
最后看到:2年7个月前
加入:2017-08-09 05:40
哦,好的,说得通。

哦,好的,说得通。现在,我只有一个UART串行连接到我的设备。我将考虑获得一个开发板,以便使用JTAG。

谢谢你!

PM_Dialog
离线
最后看到:19小时19分钟前
工作人员
加入:2018-02-08 11:03
嗨brooksprumo,

嗨brooksprumo,

是的,请尝试它与JTAG接口,并让我知道。如果您认为以上答案有用,请将其中一个标记为已接受。

谢谢,PM_Dialog