DA14681 CODE_SIZE设置

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
2个帖子/ 0个新
最后发表
nigelyang
离线
最后看到:3周18小时前
加入:2018-03-20 08:24
DA14681 CODE_SIZE设置

嗨对话框

我正在开发我的项目代码基于DSPS项目。我在编译时有一个错误。错误是" ble_sps_peripheral。精灵节”。text'将不适合区域' ROM' ", "区域' ROM'溢出2240字节"所以我把dg_configQSPI_CODE_SIZE从(128*1024)修改为(320 *1024),然后解决这个问题。但我还是不知道热设置的CODE_SIZE
正确。如果我的suota partition_table.h如下所示,我应该设置dg_configQSPI_CODE_SIZE为320 * 1024 (0x50000) ?代码大小应该遵循NVMS_FW_EXEC_PART和NVMS_FW_UPDATE_PART的大小,对吗?如果正确,为什么项目代码的默认设置是128*1024,小于qspi flash的实际容量?

PARTITION2(0x000000, 0x01E000, NVMS_FIRMWARE_PART, 0)
PARTITION2(0x01E000, 0x001000, NVMS_PRODUCT_HEADER_PART, 0)
PARTITION2(0x01F000, 0x001000, NVMS_IMAGE_HEADER_PART, 0)
PARTITION2(0x020000, 0x050000, NVMS_FW_EXEC_PART, 0) // 320K
PARTITION2(0x070000, 0x00D000, NVMS_LOG_PART, 0)
PARTITION2(0x07D000, 0x002000, NVMS_PLATFORM_PARAMS_PART, PARTITION_FLAG_READ_ONLY)
PARTITION2(0x07F000, 0x001000, NVMS_PARTITION_TABLE, PARTITION_FLAG_READ_ONLY)
PARTITION2(0x080000, 0x010000, NVMS_PARAM_PART, 0)
PARTITION2(0x090000, 0x051000, NVMS_FW_UPDATE_PART, 0) // 320K
PARTITION2(0x0E1000, 0x01F000, NVMS_GENERIC_PART, PARTITION_FLAG_VES)

设备:
PM_Dialog
离线
最后看到:1天9小时前
工作人员
加入:2018-02-08 11:03
嗨nigelyang,

嗨nigelyang,

这个编译错误是因为代码太大,flash限制无法容纳它(flash空间被认为是一个ROM部分),所以正如您已经正确提到的,应该增加dg_configQSPI_CODE_SIZE定义。项目拥有的CODE_SIZE定义,默认情况下是128K,如果你增加,你将能够有额外的ROM来编译固件,所以这就是为什么你找出你的问题。CODE_SIZE必须等于或小于NVMS_FW_EXEC_PART和NVMS_FW_UPDATE_PART的大小。在您的情况下,CODE_SIZE等于两个分区,这意味着您的固件可以适合它们,因此您将能够编译您的项目没有错误。如果你增加的代码大小超过320K,你应该增加NVMS_FW_EXEC_PART和NVMS_FW_UPDATE_PART,所以必须修改分区表。在这种情况下,唯一不能更改的是PARTITION_FLAG_VES。在我们的例子中,我们有128K的代码大小,因为这是使用QSPI配置时的最小可缓存代码大小。对于当前的分区表,您可以使用最多320 * 1024 (0x50000)的代码大小。

谢谢,PM_Dialog