芯片和项目的配置文件分拆和优化
目的
- 配置文件从项目中分离出来,减少存储容量
- 使配置文件可以灵活升级
- 配置文件的升级,不影响项目当前的功能
- 配置文件升级后,可以对项目进行“热更新”
方法
- 项目的chip对象不再存储package、peri_list、peri_matrix、peri_default、GPIO_map、function_map等配置文件
- 将上述的配置文件以外设或引脚为单位分拆后分别存储于以芯片型号为标识的数据表中,各单位数据对于一款型号芯片只有一条记录
- 配置数据时,从数据库读取视图配置数据和值配置数据,进行组合后发给前端
方案
- 02_Package_PinsInfo, 一个文件存一条记录,以芯片系列和型号作为标识
- 03_PeripheralConfig_List, 按外设名称分别将List里的每一个块存一条记录,以芯片系列和型号作为标识
- 06_PeripheralGpioMap,按外设名称分别将每一个块存一条记录,以芯片系列和型号作为标识
- 07_PinFuncMap,按引脚编号、引脚名称分别将每一个块存一条记录,以芯片系列和型号作为标识
- 04_IpConfig_PeriperalParmsMatrix,按照外设名称分别将每一个块存一条记录,以芯片系列标识
- 05_PeripheralDefault_ParamsDefault,按照外设名称分别将每一个块存一条记录,以芯片系列作为标识
数据关系
- chip.Ipconfig ==> 04_IpConfig_PeriperalParmsMatrix, 用于构造IO映射外设关系,仅在创建项目时使用
- chip.PeripheralDefault ==> 05_PeripheralDefault_ParamsDefault,用于获取外设的参数结构体,配置外设时用到,外部调用
- chip.peripheral_pin_config ==> 06_PeripheralGpioMap, 用于构造外设映射IO关系,仅在创建项目时使用
- chip.peripheral_config ==> 03_PeripheralConfig_List,用于构建外设列表,不依赖于项目,加载项目时使用,外部调用
- chip.Package ==> 02_Package_PinsInfo,用于渲染芯片视图,由Java端从数据库读取
- chip.pin64_peripheral ==> 07_PinFuncMap,用于构造IO映射外设关系,仅在项目创建时使用
Edited by 宋永裕