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?
谢谢!
关键词:
设备:
嗨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
嗨PM_Dialog,
是的,我读过它,它也困惑了我。为什么它有时必须设置为512kb对齐,而有时可以设置为1MB对齐?什么是“偏移量到0 x4000允许“意味着?
对于分区,我可以将分区设置为128kb对齐吗?这对我来说更灵活。
partition_table.h可能如下所示。
谢谢!
嗨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
嗨,PM_Dialog,
1.根据我的理解,我不能访问超过FLASH_REGION_SIZE的地址,否则我将得到一个未定义的结果。因此,如果我的项目要创建一个能够跳转到应用程序的辅助引导加载程序,我必须将FLASH_REGION_SIZE设置为大于两个大小之和。是这样吗?
2.填充*对齐*和* flash_region_size *的要求,我必须将flash_region_size设置为2MB,并使NVMS_Firmware的结尾地址对齐至2MB。那是对的吗?
3.在这个分区设置下,如果我只擦除在这个2MB分区内分配的应用程序区域,它会影响该分区内的其他区域吗?
谢谢!
嗨kuanyu99,
很抱歉耽搁了。你想要闪存的固件的大小是多少?它有SUOTA实现吗?如果将FLASH_REGION_SIZE设置为2MB,则固件和通用分区项(分别为NVMS_FIRMWARE和NVMS_GENERIC_PART)都应该以2MB对齐。
谢谢,PM_Dialog
嗨PM_Dialog,
我可能使用1MB或2MB,我可能理解分区结构。主要的问题是FLASH_REGION_SIZE应该与内存访问问题的固件大小一致。
我想你的意思是NVMS_FW_EXEC_PART和NVMS_FW_UPDATE_PART应该具有相同的大小对齐,就像4M/suota/partition_table.h示例一样。但是无论分区名称是什么,SUOTA只查找用于更新的图像头,对吗?
嗨kuanyu99,
谢谢你接受我的回答。我的意思是NVMS_FIRMWARE和NVMS_GENERIC_PART都应该是FLASH_REGION_SIZE对齐的。你能把最后一个问题说清楚吗?
谢谢,PM_Dialog