TI中文支持网
TI专业的中文技术问题搜集分享网站

LP-EM-CC2340R5: 下面几个地址之间有什么联系?

Part Number:LP-EM-CC2340R5Other Parts Discussed in Thread:UNIFLASH, SYSCONFIG

1、flash_map_backend.h

#elif defined DeviceFamily_CC23X0R5#define BOOTLOADER_BASE_ADDRESS0x00000000#define BOOT_BOOTLOADER_SIZE0x00006000#define BOOT_PRIMARY_1_BASE_ADDRESS0x00006000#define BOOT_PRIMARY_1_SIZE0x0003d000#define BOOT_SECONDARY_1_BASE_ADDRESS0x00043000#define BOOT_SECONDARY_1_SIZE0x0003d000
#else

2、.syscfg中NVS设置

3、Uniflash分开烧写时设置的地址

Galaxy Yue:

您好,

1.对于 flash_map_backend,用户应将闪存大小定义更改为应用程序映像最终大小。默认常量不会更改,因为应用程序大小很大程度上取决于应用程序本身

2.在sysconfig中对于configNVSinternal这个器件进行参数配置

按照ble5-Stack用户向导中的放置OSAL SNV的说明,这个CONFIG_NVSINTERNAL定义的区域就是NV存储器,就是用于存储数据的,用NVS_read和NVS_write进行读写,它的上层就是osal_snv_read和osal_snv_write函数

3.basic_persistent提供实现OAD配置文件的轻量级应用程序,实现OAD服务的协议栈定义,它永久驻留在设备上 

oad_onchip地址

您可以从此图看到各组件之间内存地址的关系

每个组件的地址可能会不同 各不相同。持久应用程序链接器文件中使用的地址 应与 flash_map_backend.h 文件中的设置匹配。

#define MCUBOOT_BASE0x0000000
#define PERSISTENT_BASE 0x0006000
#define APP_BASE0x0030000
#define NVS_BASE(FLASH_SIZE - NVS_SIZE)
#define NVS_SIZE0x4000
#define MCU_HDR_SIZE0x100
#define MCUBOOT_SIZE0x6000
#define MCU_OVERHEADS(MCU_HDR_SIZE + MCU_TLV_SIZE)

您还可以看下详细描述

https://dev.ti.com/tirex/explore/content/simplelink_lowpower_f3_sdk_7_20_01_10/docs/ble5stack/ble_user_guide/html/oad-mcuboot/flash-layout-on-chip-stack-library.html

,

Xuefeng:

在.cproject里还有一个APP_HDR_ADDR的定义,这个应该和前面提到的哪一个值对应?

对于OAD来说,1.0版本和2.0版本是使用同一个APP_HDR_ADDR吗?

,

Galaxy Yue:

Xuefeng 说:在.cproject

文件名麻烦您说完整一点

,

Xuefeng:

每个工程目录下都有一个,完整名字就是.cproject或者可以去CCS查看,Project->Properties->Predefined Symbols.

,

Galaxy Yue:

我想知道您说的每个工程目录下.cproject 是在example子级中吗?

我不确定您说的 每个工程目录下都有一个,完整名字就是.cproject 的APP_HDR_ADDR的定义 是否一致

,

Xuefeng:

你截图的位置是SDK里,这里是没有的,需要在CCS的workspce目录中找。

另外这个APP_HDR_ADDR定义有很多个,在CCS的GUI界面我没找全,所以都是直接查看.cproject 文件。

,

Galaxy Yue:

第一个截图是在CCS的工作台打开的Project->Properties->Predefined Symbols. 在这个路径下

请稍等一下

,

Xuefeng:

Galaxy Yue 说:

第一个截图是在CCS的工作台打开的Project->Properties->Predefined Symbols. 在这个路径下

Uart2Echo这个工程里确实没有,basic_ble_oad_onchip/basic_dual_image/basic_persistent/data_stream/host_test这些示例中都有

,

Galaxy Yue:

basic_persistent/ basic_ble_oad_onchip 0x32000 

basic_dual_image 0x6000 

data_stream/host_test 没有找到APP_HDR_ADDR

//APP_HDR_ADDR是APP header在Flash中的位置,从预定义的符号中导入

关于flash中地址相关资料可以看这个链接

https://dev.ti.com/tirex/explore/content/simplelink_lowpower_f3_sdk_7_20_01_10/docs/ble5stack/ble_user_guide/html/ble-stack-common/memory_map-cc23xx.html

,

Xuefeng:

APP_HDR_ADDR作为APP header,那么这个地址应该是可以用来读取app version的吧,那我应该设置为开头问的哪一个的地址?现在我不管怎么设置APP_HDR_ADDR,烧写完获取到的version都是不对的。

,

Galaxy Yue:

Xuefeng 说:是可以用来读取app version的

是的

我在找怎么读取app version

,

Galaxy Yue:

/********************************************************************** @fnSwUpdate_GetSWVersion** @briefThis function extract sw version of MCU header from*given address** @paramhdrAdrr - Header address** @returnImage version struct*/
uint32* SwUpdate_GetSWVersion(uint32 hdrAdrr)
{struct image_header * img_hdr = (struct image_header*)hdrAdrr;return ((uint32 *)&(img_hdr->ih_ver));
}
/*********************************************************************

该函数从 MCU 头文件中提取 SW 版本从给定地址

这个给定地址是APP_HDR_ADDR作为参数传过去的

,

Xuefeng:

谢谢,找到烧写软件获取不到正确版本的原因了。

我的版本信息只加在了.bin文件里,烧写使用的是.out文件。

现在剩下的问题是为什么没有跳转到image2,和地址设置是否有关。

,

Galaxy Yue:

感谢您的分享

Xuefeng 说:现在剩下的问题是为什么没有跳转到image2,和地址设置是否有关。

考虑是在mcuboot双镜像的问题

sdk 示例中使用的默认片外内存映射布局如下:

[On-Chip Flash]
0x00000000 - 0x00006000 : [0x00006000 ( 24k)] mcuboot
0x00006000 - 0x0007c000 : [0x00076000 (472k)] basic_ble_oad_offchip [ primary slot]
0x0007c000 - 0x00004000 : [0x00004000 ( 16k)] NVS Storage Data[Off-Chip Serial Flash]
0x00000000 - 0x00076000 : [0x00076000 (472k)] basic_ble_oad_offchip [ secondary slot ]

对于“片上” OAD,mcuboot 配置为片上闪存中有 2 个内部“插槽”。这些插槽之一通常被配置为更大的区域来存储主“应用程序”图像。另一个用于存储较小的“持久”图像。“应用程序”映像 (basic_ble_oad_onchip) 包含主应用程序固件和最小的“OAD 重置服务”,该服务用于在触发 OAD 更新时向系统发出信号,重新启动到“持久”映像 (basic_persistent)。这是通过 OAD 重置服务使应用程序映像无效(将其自己的版本号设置为 0)来完成的,以便 mcuboot 在后续启动时选择持久映像。“持久”映像包含完整的 OAD 更新服务,用于将新的应用程序映像传输到应用程序槽中。   

 

赞(0)
未经允许不得转载:TI中文支持网 » LP-EM-CC2340R5: 下面几个地址之间有什么联系?
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1