#ifndef __JL_CFG_DEC_H__ #define __JL_CFG_DEC_H__ #include "typedef.h" struct btif_item { u16 id; u16 data_len; }; struct syscfg_operataions { int (*init)(void); int (*check_id)(u16 item_id); int (*read)(u16 item_id, u8 *buf, u16 len); int (*write)(u16 item_id, u8 *buf, u16 len); int (*dma_write)(u16 item_id, u8 *buf, u16 len); int (*read_string)(u16 item_id, u8 *buf, u16 len, u8 ver); u8 *(*ptr_read)(u16 item_id, u16 *len); }; #define REGISTER_SYSCFG_OPS(cfg, pri) \ const struct syscfg_operataions cfg SEC_USED(.syscfg.pri.ops) //=================================================================================// // 系统配置项(VM, BTIF, cfg_bin)读写接口 // //接口说明: // // 1.输入参数 // // 1)item_id: 配置项ID号, 由本文件统一分配; // // 2)buf: 用于存储read/write数据内容; // // 3)len: buf的长度(byte), buf长度必须大于等于read/write数据长度; // // 2.返回参数: // // 1)执行正确: 返回值等于实际上所读到的数据长度(大于0); // // 2)执行错误: 返回值小于等于0, 小于0表示相关错误码; // // 3.读写接口使用注意事项: // // 1)不能在中断里调用写(write)接口; // // 2)调用本读写接口时应该习惯性判断返回值来检查read/write动作是否执行正确; // //=================================================================================// int syscfg_read(u16 item_id, void *buf, u16 len); int syscfg_read_btmac_blemac_from_bin(u16 item_id, void *buf, u16 len); int syscfg_write(u16 item_id, void *buf, u16 len); //该接口默认会以dma的方式写vm区域, 请注意buf地址需要按照4byte对齐 int syscfg_dma_write(u16 item_id, void *buf, u16 len); //读取同一个配置项存在多份数据中的某一份数据, ver读取表示第几份数据, ver从 0 开始; //典型应用: 读取配置项CFG_BT_NAME中多个蓝牙名中的某一个蓝牙名; int syscfg_read_string(u16 item_id, void *buf, u16 len, u8 ver); //读取配置项, 返回: ptr: 配置项地址指针(可以用cpu直接访问); len为配置项长度 //注: 只支持cfg_tools.bin文件中的配置项读取 u8 *syscfg_ptr_read(u16 item_id, u16 *len); //==================================================================================================// // 配置项ID分配说明 // // 1.配置项ID号根据存储区域进行分配; // // 2.存储区域有3个: 1)VM区域; 2)sys_cfg.bin; 3)BTIF区域 // // 3.配置项ID号分配如下: // // 0)[0]: 配置项ID号0为配置项工具保留ID号; // // 1)[ 1 ~ 49]: 共49项, 预留给用户自定义, 只存于VM区域; // // 2)[ 50 ~ 99]: 共50项, sdk相关配置项, 只存于VM区域; // // 3)[100 ~ 127]: 共28项, sdk相关配置项, 可以存于VM区域, sys_cfg.bin(作为默认值) 和 BTIF区域; // // 4)[512 ~ 700]: 共188项, sdk相关配置项, 只存于sys_cfg.bin; // //==================================================================================================// //=================================================================================// // 用户自定义配置项[1 ~ 49] // //=================================================================================// #define CFG_USER_DEFINE_BEGIN 1 #define CFG_USER_DEFINE_END 49 //=================================================================================// // 只存VM配置项[50 ~ 99] // //=================================================================================// #define CFG_STORE_VM_ONLY_BEGIN 50 #define AT_CHAR_DEV_NAME 51 #define CFG_STORE_VM_ONLY_END 99 //=================================================================================// // 可以存于VM, sys_cfg.bin(默认值)和BTIF区域的配置项[100 ~ 127] // // (VM支持扩展到511) // //=================================================================================// #define CFG_STORE_VM_BIN_BTIF_BEGIN 100 #define CFG_STORE_VM_BIN_BTIF_END (VM_ITEM_MAX_NUM - 1) //在app_cfg文件中配置128/256 //==================================================================================================// //ID号分配方案: // 1) 与APP CASE 相关的ID (0 ~ 50); // 3) lib库保留ID(蓝牙, trim 值) (范围: 61 ~ 127); //67项 // 4) 与app_case 扩展ID号,需要更大的ram资源(128 ~ 511); //==================================================================================================// //=================================================================================// // SDK库保留配置项[61 ~ 127] // //=================================================================================// #define CFG_REMOTE_DB_INFO 61 #define CFG_REMOTE_DB_00 62 #define CFG_REMOTE_DB_01 63 #define CFG_REMOTE_DB_02 64 #define CFG_REMOTE_DB_03 65 #define CFG_REMOTE_DB_04 66 #define CFG_REMOTE_DB_05 67 #define CFG_REMOTE_DB_06 68 #define CFG_REMOTE_DB_07 69 #define CFG_REMOTE_DB_08 70 #define CFG_REMOTE_DB_09 71 #define CFG_REMOTE_DB_10 72 #define CFG_REMOTE_DB_11 73 #define CFG_REMOTE_DB_12 74 #define CFG_REMOTE_DB_13 75 #define CFG_REMOTE_DB_14 76 #define CFG_REMOTE_DB_15 77 #define CFG_REMOTE_DB_16 78 #define CFG_REMOTE_DB_17 79 #define CFG_REMOTE_DB_18 80 #define CFG_REMOTE_DB_19 81 #define CFG_DAC_TEST_VOLT 82 #define CFG_BLE_MODE_INFO 83 #define CFG_TWS_PAIR_AA 84 #define CFG_TWS_CONNECT_AA 85 #define CFG_MUSIC_VOL 86 #define CFG_CHARGESTORE_TWS_CHANNEL 87 #define CFG_DAC_DTB 88 #define CFG_MC_BIAS 89 #define CFG_POR_FLAG 90 #define CFG_MIC_LDO_VSEL 91 #define CFG_DAC_TRIM_INFO 92 #define CFG_BT_TRIM_INFO 93 #define CFG_ANC_INFO 94 #define CFG_TWS_LOCAL_ADDR 95 #define CFG_TWS_REMOTE_ADDR 96 #define CFG_TWS_COMMON_ADDR 97 #define CFG_TWS_CHANNEL 98 #define VM_PMU_VOLTAGE 99 #define CFG_SYS_VOL 100 //=========== btif & cfg_tool.bin & vm ============// #define CFG_BT_NAME 101 #define CFG_BT_MAC_ADDR 102 #define CFG_BLE_NAME 103 #define CFG_BLE_MAC_ADDR 104 #define VM_BLE_LOCAL_INFO 109 #define CFG_BT_FRE_OFFSET 110 #define VM_GMA_ALI_PARA 111 #define VM_DMA_RAND 112 #define VM_GMA_MAC 113 #define VM_TME_AUTH_COOKIE 114 #define VM_UPDATE_FLAG 115 #define VM_RTC_TRIM 116 #define VM_BLE_REMOTE_DB_INFO 117 #define VM_BLE_REMOTE_DB_00 118 #define VM_BLE_REMOTE_DB_01 119 #define VM_BLE_REMOTE_DB_02 120 #define VM_BLE_REMOTE_DB_03 121 #define VM_BLE_REMOTE_DB_04 122 #define VM_BLE_REMOTE_DB_05 123 #define VM_BLE_REMOTE_DB_06 124 #define VM_BLE_REMOTE_DB_07 125 #define VM_BLE_REMOTE_DB_08 126 #define VM_BLE_REMOTE_DB_09 127 #define CFG_ONLINE_EQ_DRC_DATA_ID 254//在线调试保存参数的id #define CFG_ONLINE_SAVE_ID 255//在线保存文件大小的id //=================================================================================// // 只存于sys_cfg.bin的配置项[512 ~ 700] // //=================================================================================// #define CFG_STORE_BIN_ONLY_BEGIN 512 //硬件类配置项[513 ~ 600] #define CFG_UART_ID 513 #define CFG_HWI2C_ID 514 #define CFG_SWI2C_ID 515 #define CFG_HWSPI_ID 516 #define CFG_SWSPI_ID 517 #define CFG_SD_ID 518 #define CFG_USB_ID 519 #define CFG_LCD_ID 520 #define CFG_TOUCH_ID 521 #define CFG_IOKEY_ID 522 #define CFG_ADKEY_ID 523 #define CFG_AUDIO_ID 524 #define CFG_VIDEO_ID 525 #define CFG_WIFI_ID 526 #define CFG_NIC_ID 527 #define CFG_LED_ID 528 #define CFG_POWER_MANG_ID 529 #define CFG_IRFLT_ID 530 #define CFG_PLCNT_ID 531 #define CFG_PWMLED_ID 532 #define CFG_RDEC_ID 533 #define CFG_CHARGE_STORE_ID 534 #define CFG_CHARGE_ID 535 #define CFG_LOWPOWER_V_ID 536 #define CFG_MIC_TYPE_ID 537 #define CFG_COMBINE_SYS_VOL_ID 538 #define CFG_COMBINE_CALL_VOL_ID 539 #define CFG_LP_TOUCH_KEY_ID 540 //蓝牙类配置项[601 ~ 650] #define CFG_BT_RF_POWER_ID 601 #define CFG_TWS_PAIR_CODE_ID 602 #define CFG_AUTO_OFF_TIME_ID 603 #define CFG_AEC_ID 604 #define CFG_UI_TONE_STATUS_ID 605 #define CFG_KEY_MSG_ID 606 #define CFG_LRC_ID 607 #define CFG_DMS_ID 609 #define CFG_ANC_ID 610 #define CFG_BLE_RF_POWER_ID 615 //其它类配置项[651 ~ 700] #define CFG_STORE_BIN_ONLY_END 700 #endif