WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
upg_ab.h 文件参考
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

枚举

enum  upg_region_index { UPG_REGION_A , UPG_REGION_B , UPG_REGION_COUNT }
 

函数

upg_region_index upg_get_run_region (void)
 获取当前运行的镜像分区。
 
upg_region_index upg_get_upg_region (void)
 获取待升级的镜像分区。
 
uint32_t upg_get_region_addr (upg_region_index upg_region)
 
uint32_t upg_get_region_size (upg_region_index upg_region)
 获取镜像分区的大小。
 
uint32_t upg_ab_image_read (upg_region_index upg_region, uint32_t offset, uint8_t *buf, size_t len)
 读取镜像数据。
 
uint32_t upg_ab_image_write (upg_region_index upg_region, uint32_t offset, uint8_t *buf, size_t len)
 写入镜像数据。
 
errcode_t upg_set_run_region (upg_region_index upg_region)
 镜像版本切换
 
errcode_t upg_region_erase (upg_region_index region)
 擦除待升级的镜像区
 
errcode_t upg_region_verify (upg_region_index region)
 校验待升级的镜像区 当从B分区启动时,DMMU配置如下: 访问A的地址时,实际访问的是B; 访问B的地址时,实际访问的是A; 而从A分区启动时,没有配置DMMU。 所以,calc_hash函数传入的地址总是B分区的地址。 ┌─────────────┐ src start│ │dst start │ │ ┌───── │ Image A │ ◄─────┐ │ │ │ │ │ src end │ │ │ │ ├─────────────┤ │ │ dst start│ │src start │ │ │ │ │ └─────► │ Image B │ ─────┘ │ │ │ │src end └─────────────┘
 
errcode_t upg_ab_start (upg_region_index upg_region)
 镜像升级开始,准备写入镜像
 

枚举类型说明

◆ upg_region_index

枚举值
UPG_REGION_A 
UPG_REGION_B 
UPG_REGION_COUNT 

函数说明

◆ upg_ab_image_read()

uint32_t upg_ab_image_read ( upg_region_index  upg_region,
uint32_t  offset,
uint8_t *  buf,
size_t  len 
)

读取镜像数据。

参数
upg_region,镜像区域,UPG_REGION_XXX。
offset偏移量。
buf内存指针。
len读取的长度。
返回
成功返回ERRCODE_SUCC,失败返回错误码。

◆ upg_ab_image_write()

uint32_t upg_ab_image_write ( upg_region_index  upg_region,
uint32_t  offset,
uint8_t *  buf,
size_t  len 
)

写入镜像数据。

参数
upg_region,镜像区域,UPG_REGION_XXX。
offset偏移量。
buf待写入数据的内存指针。
len写入的长度。
返回
成功返回ERRCODE_SUCC,失败返回错误码。

◆ upg_ab_start()

errcode_t upg_ab_start ( upg_region_index  upg_region)

镜像升级开始,准备写入镜像

参数
upg_region镜像区域,UPG_REGION_A/UPG_REGION_B
返回
成功返回ERRCODE_SUCC,失败返回错误码。

◆ upg_get_region_addr()

uint32_t upg_get_region_addr ( upg_region_index  upg_region)

◆ upg_get_region_size()

uint32_t upg_get_region_size ( upg_region_index  upg_region)

获取镜像分区的大小。

参数
upg_region需要获取的镜像分区
返回
成功返回分区大小,失败返回 0

◆ upg_get_run_region()

upg_region_index upg_get_run_region ( void  )

获取当前运行的镜像分区。

返回
成功返回分区序号,失败 默认从A区启动。

◆ upg_get_upg_region()

upg_region_index upg_get_upg_region ( void  )

获取待升级的镜像分区。

返回
返回分区序号。

◆ upg_region_erase()

errcode_t upg_region_erase ( upg_region_index  region)

擦除待升级的镜像区

参数
region待擦除的镜像区域,UPG_REGION_A/UPG_REGION_B。
返回
成功返回ERRCODE_SUCC,失败返回错误码。

◆ upg_region_verify()

errcode_t upg_region_verify ( upg_region_index  region)

校验待升级的镜像区 当从B分区启动时,DMMU配置如下: 访问A的地址时,实际访问的是B; 访问B的地址时,实际访问的是A; 而从A分区启动时,没有配置DMMU。 所以,calc_hash函数传入的地址总是B分区的地址。 ┌─────────────┐ src start│ │dst start │ │ ┌───── │ Image A │ ◄─────┐ │ │ │ │ │ src end │ │ │ │ ├─────────────┤ │ │ dst start│ │src start │ │ │ │ │ └─────► │ Image B │ ─────┘ │ │ │ │src end └─────────────┘

参数
region待校验的镜像区域,UPG_REGION_A/UPG_REGION_B。
返回
成功返回ERRCODE_SUCC,失败返回错误码。

◆ upg_set_run_region()

errcode_t upg_set_run_region ( upg_region_index  upg_region)

镜像版本切换

参数
upg_region镜像区域,UPG_REGION_A/UPG_REGION_B。下一次启动的版本区域是upg_region。
返回
成功返回ERRCODE_SUCC,失败返回错误码。