找回密码
 注册
关于网站域名变更的通知
查看: 180|回复: 2
打印 上一主题 下一主题

RISC-V生态全景解析14——YoC组件PARTITION组件介绍

  [复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-6-8 10:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
YoC基础软件平台具有丰富的IoT组件,可有效支持RISC-V生态应用开发。前几期内容中,我们已经陆续介绍了YoC的CSI组件、AT组件和AV(多媒体)组件。本期内容,我们将为大家介绍YoC的PARTITION组件,从分区表介绍、配置与接口、配置示例三方面带大家详细了解该组件。- ^# G( A9 \# O1 I# A
7 U) u  ]( G  J& @7 Y& s4 Z
1、概述
1 C5 l) x- F( ^" n8 P8 W2 d( h7 LPARTITION组件是一个分区管理的组件。基于分区表(MTB)的分区信息来统一管理Flash分区,对分区进行统一的读写、擦除、以及验签的操作。
4 ^6 x1 O0 h) i! y3 Q" [下面就来介绍下分区表的定义以及组件提供的一些API接口。
* t" G$ k7 c+ f; i, `0 i) Z1 h
# Q5 n# z* D: Q/ {$ P2、分区表介绍
7 B% k9 c4 z' P9 l& `* l8 Z5 v6 d分区表简称为MTB(manifest table)。保存系统镜像的基本信息以及签名值。MTB分为两类。
0 }  [) d, m" C0 K7 ^' L6 U6 m) _bmtB:bootloader manifest table,记录bootloader镜像的信息,给bootrom使用
6 |$ B( I, o) H" q! u6 s! R  TIMTB:images manifest table,记录除bootloader以外的其他镜像的信息,给bootloader使用
8 H  J& u. c( K1 _5 L# j7 m其中IMTB是必须的,而BMTB则取决于芯片bootrom的设计,是否需要这张BMTB表,使用BMTB的优势是可以灵活的配置boot的地址信息,避免固化在bootrom里。这2张表本身就是以分区的形式存储在Flash中的,在定义分区的时候要预留出来。分区名字也是固定为"bmtb"和"imtb"。
4 v# B$ k1 D0 Y" Q7 h* ^
0 ?$ e# q9 j" r- M! w' h' o+ v' a分区的信息存储在一个叫config.yaml的文件中,一般放在工程的board或者solution目录下,在打包镜像的时候通过工具自动生成bmtb/imtb两个镜像。+ Y8 r* s# |! h, x) {2 s& Y/ a0 ^
一个典型的分区表如下:
1 F6 m8 U0 y+ V, Gmtb_version: 4, _5 e8 r" k1 G# K( I
chip: pangu        # cb2201 / cb6501 / pangu, q3 u* |- j6 V% m% x3 g
diff:
2 k' v0 C* h: ~, ~8 L' ^) V& c8 N  fota_version: 06 g; _! A+ S7 O& ~3 m3 M/ U
  ram_buf: 50         #DEC     KB   ( max ram need)5 i9 d4 ^  n. G) c* l! L
  flash_buf: 16       #DEC     KB   ( buffer size)6 D* A/ Q- [3 j, s( K; S
  flash_sector: 4096  #DEC     byte ( flash sector)
8 I9 ?4 R" E6 ~3 S4 ?2 T% p  diff_mode: 010      #BIN0 x6 w' K7 T$ E6 \! w# u5 y( l( h$ @
  double_control: 1   #DEC (1--use 2 sector for diff restore,0--1 sector)" G, Y  {; t7 s& p5 c/ ]
flash:- l( @! f. a8 ^8 C
  base_address: 0x8000000       # the base address of flash+ g: {, n# T9 e6 V
  run_base_address: 0x18000000  # the run address, maybe SDRAM address
/ u4 w1 F2 E6 L' E1 a3 g3 G  sector: 4096                  # Bytes) p# @& s5 L4 C6 ?/ V1 O! l- K# G
  size: 16777216                # Bytes, $(sector count) * sector% s# r1 h- ^3 ]) }6 S% ?: W
partitions:6 W! ?: q2 r! r- R. G! N+ {' {
  - { name: bmtb,   address: 0x8000000, size: 0x001000 }
$ X3 x5 z0 x* I! O  - { name: boot,   address: 0x8001000, size: 0x020000 }
: [* K. ~" h2 d' a9 G( D' E  - { name: tee,    address: 0x8021000, load_addr: 0x18000000, size: 0x010000 }9 C) u7 a+ q2 k& Q8 J9 k* R/ L0 A
  - { name: imtb,   address: 0x8031000, size: 0x002000 }% V+ B+ P- h/ ]$ {+ |- f
  - { name: prim,   address: 0x8033000, load_addr: 0x18010000, size: 0x300000, verify: true, update: FULL}. O. p* q8 D  a. J7 u. `! C- ]7 H/ ^
  - { name: kv,     address: 0x8633000, size: 0x004000 }0 n' j$ b% }' F/ L, C  q
  - { name: lpm,    address: 0x8637000, size: 0x020000 }' D' x7 M/ J% o5 [# N( h
  - { name: misc,   address: 0x8657000, size: 0x400000 }# S- |7 J8 H+ w- u- a2 T; G6 D1 f9 p
& K3 N! n* {6 o2 h
3、配置与接口介绍; |) \4 F, L' T# \! M
介绍partition组件的一些参数配置和常用API接口。
% n7 i' Q3 v7 E2 Q& T6 r9 N3.1 参数配置0 D4 N4 k) N8 k, h" x
以下宏定义在PARTITION组件的yoc/partition.h文件中,用户可以在应用方案的package.yaml中的def_config字段中进行重新定义。: s- ~' H, d: I# P+ x3 P
CONFIG_MAX_PARTITION_NUM:分区个数配置。# T. Q  v& t8 p" G
定义最大的分区个数,如果用户没有自定义,那么默认为12个分区大小。如果ram资源比较紧张,而分区又没有达到12个,那么可以把这个宏改成实际分区个数。每减少一个分区,分别可以节省40个字节的data段size,和调用partition_init的任务最多40个字节的栈空间。
: v- D- d0 M( ~3 q- J0 B# O+ M) YCONFIG_PARITION_NO_VERIFY:分区校验配置。是否开启分区校验功能,默认值为1,为不开启校验。安全的方案需要配置成0。! v% t4 q# o5 T# Q
CONFIG_NOT_SUPORRT_SASC:安全区域设置配置。配置分区的访问权限。是否支持设置安全区域,默认值为1,不支持设置安全区域。如果芯片支持,可以在board组件中配置为0,开启此功能。
$ I* c# ~$ a2 t: s
  r7 }! y2 X- R8 M+ S+ B5 Y8 r4 Y
/ `( g- S4 }0 q0 K# t+ X8 o

RISC-V生态全景解析(十四):YoC组件PARTITION组件介绍.pdf

280.64 KB, 下载次数: 0, 下载积分: 威望 -5

该用户从未签到

2#
发表于 2022-6-8 10:40 | 只看该作者
不错不错,学习了

该用户从未签到

3#
发表于 2022-6-8 14:09 | 只看该作者
不错,学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-21 13:35 , Processed in 0.109375 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表