关于分区表的问题

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
8个职位/ 0个新职位
最后发表
kuanyu99
离线
最后看到:一年九个月前
加入:2019-07-03 09:35
关于分区表的问题

partition_table.h中的*alignment是什么意思?

以4M\partition_table.h为例。

#define NVMS_FIRMWARE_PART_START 0x002000 /*对齐512KB由默认的FLASH_REGION_SIZE决定。* / # define x07e000 NVMS_FIRMWARE_PART_SIZE 0  /* +---------------- 512 kb ---------------------+ */ # 定义NVMS_GENERIC_PART_START 0 x0e0000 # define x020000 NVMS_GENERIC_PART_SIZE 0

固件部分从0x2000开始,没有对齐到512KB,通用部分也没有。为什么通用部分突然跳到0xE0000,而固件部分的结束地址是0x80000?

另一个问题是,我是否可以同时为我的辅助引导装载程序安排一个较小的固件部分(约128KB),和为我的应用程序安排一个较大的分区部分(约2MB) ?我应该如何修改partition_table.h?

谢谢!

关键词:
设备:
PM_Dialog
离线
最后看到:1周4天前
工作人员
加入:2018-02-08 11:03
嗨kuanyu99,

嗨kuanyu99,

默认情况下,SDK和芯片配置都支持运行最大512kb大小的应用程序映像。为此,固件和通用分区项(分别是NVMS_FIRMWARE和NVMS_GENERIC_PART)应该是512 MB对齐的。NVMS_PRODUCT_HEADER条目应该总是从0x0000开始,它的大小应该是0x2000。其余的分区项可以根据用户的需要进行修改。请查看我们的支持网站上的以下教程:

http://lpccs-docs.dialog-semiconductor.com/tutorial_da1469x_supporting_fw_images_bigger_than_512kb/index.html

谢谢,PM_Dialog

kuanyu99
离线
最后看到:一年九个月前
加入:2019-07-03 09:35
嗨PM_Dialog,

嗨PM_Dialog,

是的,我读过,它也把我弄糊涂了。为什么有时必须设置为512KB对齐,而有时可以设置为1MB对齐?什么是"补偿到0 x4000允许”意味着什么?

对于分区,我可以将分区设置为128KB对齐吗?这对我来说更灵活。
partition_table.h可能如下所示。

#define NVMS_GENERIC_PART_START 0x02000 #define NVMS_FIRMWARE_PART_SIZE 0x01E000 /* +----------------128KB---------------------+ */ #define NVMS_GENERIC_PART_START 0x020000 #define NVMS_GENERIC_PART_SIZE 0x0E0000

谢谢!

PM_Dialog
离线
最后看到:1周4天前
工作人员
加入:2018-02-08 11:03
嗨kuanyu99,

嗨kuanyu99,

NVMS_FIRMWARE和NVMS_GENERIC_PART应该与FLASH_REGION_SIZE对齐。本教程旨在提供如何在DA1469x上支持不同大小的FW图像的步骤。具体来说,提供执行1 MB大小的应用程序映像所需的步骤。请检查CACHE_FLASH_REG[FLASH_REGION_SIZE],你会看到哪些选项是可用的。这就是为什么NVMS_GENERIC_PART是1MB对齐的。NVMS_PRODUCT_HEADER条目应该总是从0x0000开始,它的大小应该是0x2000。其余的分区项可以根据用户的需要进行修改。如果你有SUOTA功能。

谢谢,PM_Dialog

kuanyu99
离线
最后看到:一年九个月前
加入:2019-07-03 09:35
嗨,PM_Dialog,

嗨,PM_Dialog,

1.根据我的理解,我不能访问超过FLASH_REGION_SIZE的地址,否则我将得到一个未定义的结果。因此,如果我的项目要创建一个能够跳转到应用程序的辅助引导加载程序,我必须将FLASH_REGION_SIZE设置为大于两个大小之和。是这样吗?

2.为了满足*alignment*和*FLASH_REGION_SIZE*的要求,我可能必须将FLASH_REGION_SIZE设置为2MB,并使NVMS_FIRMWARE的结束地址对齐为2MB。那是正确的吗?

3.在这个分区设置下,如果我只擦除在这个2MB分区内分配的应用程序区域,它会影响该分区内的其他区域吗?

谢谢!

PM_Dialog
离线
最后看到:1周4天前
工作人员
加入:2018-02-08 11:03
嗨kuanyu99,

嗨kuanyu99,

很抱歉耽搁了。你想要闪存的固件的大小是多少?它有SUOTA实现吗?如果将FLASH_REGION_SIZE设置为2MB,则固件和通用分区项(分别为NVMS_FIRMWARE和NVMS_GENERIC_PART)都应该以2MB对齐。

谢谢,PM_Dialog

kuanyu99
离线
最后看到:一年九个月前
加入:2019-07-03 09:35
嗨PM_Dialog,

嗨PM_Dialog,

我可能使用1MB或2MB,我可能理解分区结构。主要的问题是FLASH_REGION_SIZE应该与内存访问问题的固件大小一致。

我想你的意思是NVMS_FW_EXEC_PART和NVMS_FW_UPDATE_PART应该具有相同的大小对齐,就像4M/suota/partition_table.h示例一样。但是无论分区名称是什么,SUOTA只查找用于更新的图像头,对吗?

PM_Dialog
离线
最后看到:1周4天前
工作人员
加入:2018-02-08 11:03
嗨kuanyu99,

嗨kuanyu99,

谢谢你接受我的回答。我的意思是NVMS_FIRMWARE和NVMS_GENERIC_PART都应该是FLASH_REGION_SIZE对齐的。你能把最后一个问题说清楚吗?

谢谢,PM_Dialog