isd_config_rule.c 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394
  1. #include "board_config.h"
  2. #define _CAT2(a,b) a ## _ ## b
  3. #define CAT2(a,b) _CAT2(a,b)
  4. #define _CAT3(a,b,c) a ## _ ## b ## _ ## c
  5. #define CAT3(a,b,c) _CAT3(a,b,c)
  6. #define _CAT4(a,b,c,d) a ## _ ## b ## _ ## c ## _ ## d
  7. #define CAT4(a,b,c,d) _CAT4(a,b,c,d)
  8. #ifndef CONFIG_DOWNLOAD_MODEL
  9. #define CONFIG_DOWNLOAD_MODEL USB //下载模式选择,可选配置USB\SERIAL
  10. #endif
  11. #ifndef CONFIG_DEVICE_NAME
  12. #define CONFIG_DEVICE_NAME JlVirtualJtagSerial //串口通讯的设备名(配置串口通讯时使用)
  13. #endif
  14. #ifndef CONFIG_SERIAL_BAUD_RATE
  15. #define CONFIG_SERIAL_BAUD_RATE 1000000 //串口通讯的波特率(配置串口通讯时使用)
  16. #endif
  17. #ifndef CONFIG_SERIAL_CMD_OPT
  18. #define CONFIG_SERIAL_CMD_OPT 10 //串口通讯公共配置参数(配置串口通讯时使用)
  19. #endif
  20. #ifndef CONFIG_SERIAL_CMD_RATE
  21. #define CONFIG_SERIAL_CMD_RATE 100 //串口通讯时公共配置参数(配置串口通讯时使用)[n*10000]
  22. #endif
  23. #ifndef CONFIG_SERIAL_CMD_RES
  24. #define CONFIG_SERIAL_CMD_RES 0 //串口通讯时公共配置参数(配置串口通讯时使用)
  25. #endif
  26. #ifndef CONFIG_SERIAL_INIT_BAUD_RATE
  27. #define CONFIG_SERIAL_INIT_BAUD_RATE 9600 //串口通信初始化时通讯的波特率(配置串口通讯时使用)
  28. #endif
  29. #ifndef CONFIG_LOADER_BAUD_RATE
  30. #define CONFIG_LOADER_BAUD_RATE 1000000 //写入loader文件时通讯的波特率(配置串口通讯时使用)
  31. #endif
  32. #ifndef CONFIG_LOADER_ASK_BAUD_RATE
  33. #define CONFIG_LOADER_ASK_BAUD_RATE 1000000
  34. #endif
  35. #ifndef CONFIG_SERIAL_SEND_KEY
  36. #define CONFIG_SERIAL_SEND_KEY YES //SERIAL_SEND_KEY:串口交互时数据是否需要进行加密(配置串口通讯时使用,有效值:YES)
  37. #endif
  38. #ifndef CONFIG_BREFORE_LOADER_WAIT_TIME
  39. #define CONFIG_BREFORE_LOADER_WAIT_TIME 150 //写入loader前延时时间(配置串口通讯时使用)
  40. #endif
  41. #ifndef CONFIG_ENTRY_ADDRESS
  42. #define CONFIG_ENTRY_ADDRESS 0x1e00120 //程序入口地址,一般不需要修改(跟张恺讨论过把RESERVED_OPT=0合并到一个配置项)
  43. #endif
  44. #ifndef CONFIG_SDK_TYPE
  45. #define CONFIG_SDK_TYPE SOUNDBOX // SOUNDBOX:音箱方案 OTHER:其他方案(比如:耳机,BLE) SDK类型:当前仅支持音箱和非音箱两种类型
  46. #endif
  47. #ifndef CONFIG_SPI_DATA_WIDTH
  48. #define CONFIG_SPI_DATA_WIDTH 2 //data_width[0 1 2 3 4] 3的时候uboot自动识别2或者4线
  49. #endif
  50. #ifndef CONFIG_SPI_CLK_DIV
  51. #define CONFIG_SPI_CLK_DIV 3 //clk [0-255]
  52. #endif
  53. //mode:
  54. // 0 RD_OUTPUT, 1 cmd 1 addr
  55. // 1 RD_I/O, 1 cmd x addr
  56. // 2 RD_I/O_CONTINUE] no_send_cmd x add
  57. #ifndef CONFIG_SPI_MODE
  58. #define CONFIG_SPI_MODE 0
  59. #endif
  60. //port:
  61. // 0 优先选A端口 CS:PD3 CLK:PD0 D0:PD1 D1:PD2 D2:PB7 D3:PD5
  62. // 1 优先选B端口 CS:PA13 CLK:PD0 D0:PD1 D1:PA14 D2:PA15 D3:PD5
  63. #ifndef CONFIG_SPI_PORT
  64. #define CONFIG_SPI_PORT 0
  65. #endif
  66. //uboot and ota.bin串口tx
  67. #ifndef CONFIG_UBOOT_DEBUG_PIN
  68. #define CONFIG_UBOOT_DEBUG_PIN PA05
  69. #endif
  70. //uboot and ota.bin串口波特率[EXTRA_CFG_PARAM]
  71. #ifndef CONFIG_UBOOT_DEBUG_BAUD_RATE
  72. #define CONFIG_UBOOT_DEBUG_BAUD_RATE 1000000
  73. #endif
  74. [EXTRA_CFG_PARAM]
  75. #if CONFIG_DOUBLE_BANK_ENABLE
  76. BR22_TWS_DB = YES; //dual bank flash framework enable
  77. FLASH_SIZE = CONFIG_FLASH_SIZE; //flash_size cfg
  78. BR22_TWS_VERSION = 0; //default fw version
  79. #if CONFIG_DB_UPDATE_DATA_GENERATE_EN
  80. DB_UPDATE_DATA = YES; //generate db_update_data.bin
  81. #endif
  82. #if CONFIG_ONLY_GRENERATE_ALIGN_4K_CODE
  83. FORCE_4K_ALIGN = YES; // force aligin with 4k bytes
  84. SPECIAL_OPT = 0; // only generate one flash.bin
  85. #endif
  86. #else
  87. NEW_FLASH_FS = YES; //enable single bank flash framework
  88. #endif //CONFIG_DOUBLE_BANK_ENABLE
  89. #if ALIGN_UNIT_256B
  90. AREA_ALIGN = ALIGN_UNIT_256B; //using n*256B unit for boundary alignment
  91. #endif
  92. CHIP_NAME = CONFIG_CHIP_NAME;
  93. PID = CONFIG_PID;
  94. VID = CONFIG_VID;
  95. ENTRY = CONFIG_ENTRY_ADDRESS;
  96. RESERVED_OPT = 0;
  97. DOWNLOAD_MODEL = CONFIG_DOWNLOAD_MODEL; //
  98. #if (CONFIG_DOWNLOAD_MODEL != USB) //下载模式选择,可选配置USB\SERIAL
  99. SERIAL_DEVICE_NAME = CONFIG_DEVICE_NAME;
  100. SERIAL_BARD_RATE = CONFIG_SERIAL_BAUD_RATE;
  101. SERIAL_CMD_OPT = CONFIG_SERIAL_CMD_OPT;
  102. SERIAL_CMD_RATE = CONFIG_SERIAL_CMD_RATE;
  103. SERIAL_CMD_RES = CONFIG_SERIAL_CMD_RES;
  104. SERIAL_INIT_BAUD_RATE = CONFIG_SERIAL_INIT_BAUD_RATE;
  105. LOADER_BAUD_RATE = CONFIG_LOADER_BAUD_RATE;
  106. LOADER_ASK_BAUD_RATE = CONFIG_LOADER_ASK_BAUD_RATE;
  107. SERIAL_SEND_KEY = CONFIG_SERIAL_SEND_KEY;
  108. BEFORE_LOADER_WAIT_TIME = CONFIG_BREFORE_LOADER_WAIT_TIME;
  109. #endif
  110. #if CONFIG_ANC_ENABLE
  111. COMPACT_SETTING = YES;
  112. #endif
  113. // #####匹配的芯片版本,请勿随意改动 目前只有BR30添加了版本号区分,后续其他CPU有添加的话在对应的isd_config_rule.c加上######
  114. /* [CHIP_VERSION] */
  115. /* SUPPORTED_LIST = ; */
  116. [SYS_CFG_PARAM]
  117. SPI = CAT4(CONFIG_SPI_DATA_WIDTH, CONFIG_SPI_CLK_DIV, CONFIG_SPI_MODE, CONFIG_SPI_PORT); //width_clk_mode_port;
  118. #if (CONFIG_PLL_SOURCE_USING_LRC == 1)
  119. PLL_SRC = LRC; //PLL时钟源:屏蔽或!=LRC; 默认选择晶振。 值=LRC,且用no_ota_uboot,则时钟源选LRC
  120. #endif
  121. #ifdef CONFIG_UBOOT_DEBUG_PIN
  122. UTTX = CONFIG_UBOOT_DEBUG_PIN; //uboot串口tx
  123. UTBD = CONFIG_UBOOT_DEBUG_BAUD_RATE; //uboot串口波特率
  124. #endif
  125. UTRX = PP00; //串口升级[PB00 PB05 PA05]
  126. RESET = CAT3(CONFIG_RESET_PIN, CONFIG_RESET_TIME, CONFIG_RESET_LEVEL); //port口_长按时间_有效电平(长按时间有00、01、02、04、08三个值可选,单位为秒,当长按时间为00时,则关闭长按复位功能。)
  127. #ifdef CONFIG_VDDIO_LVD_LEVEL
  128. VLVD = CONFIG_VDDIO_LVD_LEVEL; //VDDIO_LVD挡位,0: 1.55V 1: 1.70V 2: 1.85V 3: 2.00V 4: 2.15V 5: 2.30V 6: 2.45V 7: 2.60V
  129. #endif
  130. #ifdef CONFIG_UPDATE_JUMP_TO_MASK
  131. UPDATE_JUMP = CONFIG_UPDATE_JUMP_TO_MASK;
  132. #endif
  133. #ifdef CONFIG_CUSTOM_CFG1_TYPE
  134. CONFIG_CUSTOM_CFG1_TYPE = CONFIG_CUSTOM_CFG1_VALUE;
  135. #endif
  136. #ifdef CONFIG_CUSTOM_CFG2_TYPE
  137. CONFIG_CUSTOM_CFG2_TYPE = CONFIG_CUSTOM_CFG2_VALUE;
  138. #endif
  139. #ifdef CONFIG_CUSTOM_CFG3_TYPE
  140. CONFIG_CUSTOM_CFG3_TYPE = CONFIG_CUSTOM_CFG3_VALUE;
  141. #endif
  142. EOFFSET = 0; //flash容量超256kbyte 特有配置,是否需要4k*n偏移,默认强制不作任何偏移
  143. //#############################################################################################################################################
  144. #ifndef CONFIG_VM_ADDR
  145. #define CONFIG_VM_ADDR 0
  146. #endif
  147. #ifndef CONFIG_VM_LEAST_SIZE
  148. #if ALIGN_UNIT_256B
  149. #define CONFIG_VM_LEAST_SIZE 0x200
  150. #else
  151. #define CONFIG_VM_LEAST_SIZE 8K
  152. #endif
  153. #endif
  154. #ifndef CONFIG_VM_OPT
  155. #define CONFIG_VM_OPT 1
  156. #endif
  157. #ifndef CONFIG_BTIF_ADDR
  158. #define CONFIG_BTIF_ADDR AUTO
  159. #endif
  160. #ifndef CONFIG_BTIF_LEN
  161. #if ALIGN_UNIT_256B
  162. #define CONFIG_BTIF_LEN 0x200
  163. #else
  164. #define CONFIG_BTIF_LEN 0x1000
  165. #endif
  166. #endif
  167. #ifndef CONFIG_BTIF_OPT
  168. #define CONFIG_BTIF_OPT 1
  169. #endif
  170. #ifndef CONFIG_PRCT_ADDR
  171. #define CONFIG_PRCT_ADDR 0
  172. #endif
  173. #ifndef CONFIG_PRCT_LEN
  174. #define CONFIG_PRCT_LEN CODE_LEN
  175. #endif
  176. #ifndef CONFIG_PRCT_OPT
  177. #define CONFIG_PRCT_OPT 2
  178. #endif
  179. #ifndef CONFIG_EXIF_ADDR
  180. #define CONFIG_EXIF_ADDR AUTO
  181. #endif
  182. #ifndef CONFIG_EXIF_LEN
  183. #define CONFIG_EXIF_LEN 0x1000
  184. #endif
  185. #ifndef CONFIG_EXIF_OPT
  186. #define CONFIG_EXIF_OPT 1
  187. #endif
  188. #ifndef CONFIG_ANCIF_ADDR
  189. #define CONFIG_ANCIF_ADDR AUTO//0x7d000
  190. #endif
  191. #ifndef CONFIG_ANCIF_LEN
  192. #define CONFIG_ANCIF_LEN 0x80
  193. #endif
  194. #ifndef CONFIG_ANCIF_OPT
  195. #define CONFIG_ANCIF_OPT 1
  196. #endif
  197. #ifndef CONFIG_ANCIF1_ADDR
  198. #define CONFIG_ANCIF1_ADDR AUTO//0x7d080
  199. #endif
  200. #ifndef CONFIG_ANCIF1_LEN
  201. #define CONFIG_ANCIF1_LEN 0x1f80
  202. #endif
  203. #ifndef CONFIG_ANCIF1_OPT
  204. #define CONFIG_ANCIF1_OPT 1
  205. #endif
  206. #ifndef CONFIG_ANCIF_FILE
  207. //#define CONFIG_ANCIF_FILE anc_gains.bin
  208. #endif
  209. #ifndef CONIFG_BURNER_INFO_SIZE
  210. #define CONFIG_BURNER_INFO_SIZE 32
  211. #endif
  212. #ifndef CONFIG_FINDMY_INFO_ADDR
  213. #define CONFIG_FINDMY_INFO_ADDR 0x7d000
  214. #endif
  215. #ifndef CONFIG_FINDMY_INFO_LEN
  216. #define CONFIG_FINDMY_INFO_LEN 0x2000
  217. #endif
  218. #ifndef CONFIG_FINDMY_INFO_OPT
  219. #define CONFIG_FINDMY_INFO_OPT 1
  220. #endif
  221. // ########flash空间使用配置区域###############################################
  222. // #PDCTNAME: 产品名,对应此代码,用于标识产品,升级时可以选择匹配产品名
  223. // #BOOT_FIRST: 1=代码更新后,提示APP是第一次启动;0=代码更新后,不提示
  224. // #UPVR_CTL: 0:不允许高版本升级低版本 1:允许高版本升级低版本
  225. // #XXXX_ADR: 区域起始地址 AUTO:由工具自动分配起始地址
  226. // #XXXX_LEN: 区域长度 CODE_LEN:代码长度
  227. // #XXXX_OPT: 区域操作属性
  228. // #
  229. // #
  230. // #
  231. // #操作符说明 OPT:
  232. // # 0: 下载代码时擦除指定区域
  233. // # 1: 下载代码时不操作指定区域
  234. // # 2: 下载代码时给指定区域加上保护
  235. // ############################################################################
  236. [RESERVED_CONFIG]
  237. #if (CONFIG_APP_OTA_ENABLE && !CONFIG_DOUBLE_BANK_ENABLE)
  238. EXIF_ADR = CONFIG_EXIF_ADDR;
  239. EXIF_LEN = CONFIG_EXIF_LEN;
  240. EXIF_OPT = CONFIG_EXIF_OPT;
  241. #endif
  242. // #WTIF_ADR=BEGIN_END;
  243. // #WTIF_LEN=0x1000;
  244. // #WTIF_OPT=1;
  245. //forprotect area cfg
  246. PRCT_ADR = CONFIG_PRCT_ADDR;
  247. PRCT_LEN = CONFIG_PRCT_LEN;
  248. PRCT_OPT = CONFIG_PRCT_OPT;
  249. //for volatile memory area cfg
  250. //VM大小默认为CONFIG_VM_LEAST_SIZE,如果代码空间不够可以适当改小,需要满足4*2*n; 改小可能会导致不支持测试盒蓝牙升级(不影响串口升级)
  251. VM_ADR = CONFIG_VM_ADDR;
  252. VM_LEN = CONFIG_VM_LEAST_SIZE;
  253. VM_OPT = CONFIG_VM_OPT;
  254. #ifdef CONFIG_RESERVED_AREA1
  255. CAT2(CONFIG_RESERVED_AREA1, ADR) = CONFIG_RESERVED_AREA1_ADDR;
  256. CAT2(CONFIG_RESERVED_AREA1, LEN) = CONFIG_RESERVED_AREA1_LEN;
  257. CAT2(CONFIG_RESERVED_AREA1, OPT) = CONFIG_RESERVED_AREA1_OPT;
  258. #ifdef CONFIG_RESERVED_AREA1_FILE
  259. CAT2(CONFIG_RESERVED_AREA1, FILE) = CONFIG_RESERVED_AREA1_FILE;
  260. #endif
  261. #endif
  262. #ifdef CONFIG_RESERVED_AREA2
  263. CAT2(CONFIG_RESERVED_AREA2, ADR) = CONFIG_RESERVED_AREA2_ADDR;
  264. CAT2(CONFIG_RESERVED_AREA2, LEN) = CONFIG_RESERVED_AREA2_LEN;
  265. CAT2(CONFIG_RESERVED_AREA2, OPT) = CONFIG_RESERVED_AREA2_OPT;
  266. #ifdef CONFIG_RESERVED_AREA2_FILE
  267. CAT2(CONFIG_RESERVED_AREA2, FILE) = CONFIG_RESERVED_AREA2_FILE;
  268. #endif
  269. #endif
  270. //ANC配置区,如果不想ANC配置因为代码大小变化而改变位置,从而失效,需要手动指定(flash末尾8K位置)
  271. //4Mbit:0x7E000 8Mbit:0xFE000 16Mbit:0x1FE000
  272. //加载了anc_gains.bin或者anc_coeff.bin,则表示使用文件里面的配置
  273. //ANC增益配置保留区
  274. #if CONFIG_ANC_ENABLE
  275. #ifdef CONFIG_ANCIF_FILE
  276. ANCIF_FILE = CONFIG_ANCIF_FILE;
  277. #endif
  278. ANCIF_ADR = CONFIG_ANCIF_ADDR;
  279. ANCIF_LEN = CONFIG_ANCIF_LEN;
  280. ANCIF_OPT = CONFIG_ANCIF_OPT;
  281. //ANC系数配置保留区
  282. #ifdef CONIFG_ANCIF1_FILE
  283. ANCIF1_FILE = CONFIG_ANCIF1_FILE; //anc_coeff.bin;
  284. #endif
  285. ANCIF1_ADR = CONFIG_ANCIF1_ADDR;
  286. ANCIF1_LEN = CONFIG_ANCIF1_LEN;
  287. ANCIF1_OPT = CONFIG_ANCIF1_OPT;
  288. #endif
  289. BTIF_ADR = CONFIG_BTIF_ADDR;
  290. BTIF_LEN = CONFIG_BTIF_LEN;
  291. BTIF_OPT = CONFIG_BTIF_OPT;
  292. [RESERVED_EXPAND_CONFIG]
  293. #if CONFIG_FINDMY_INFO_ENABLE && CONFIG_ONLY_GRENERATE_ALIGN_4K_CODE
  294. FINDMY_ADR = CONFIG_FINDMY_INFO_ADDR;
  295. FINDMY_LEN = CONFIG_FINDMY_INFO_LEN;
  296. FINDMY_OPT = CONFIG_FINDMY_INFO_OPT;
  297. #endif
  298. [BURNER_PASSTHROUGH_CFG]
  299. FLASH_WRITE_PROTECT = NO
  300. //烧写配置选项
  301. [BURNER_OPTIONS]
  302. GUI_DISABLED = TRUE;
  303. //LVD电压值要跟烧录器可选的显示值,一模一样,否则会报错不匹配
  304. LVD = 1.85v;
  305. [BURNER_CONFIG]
  306. SIZE = CONFIG_BURNER_INFO_SIZE;
  307. [TOOL_CONFIG]
  308. 1TO2_MIN_VER = 2.27.8;//一拖二烧写器最低版本
  309. 1TO8_MIN_VER = 3.1.22;//一拖八烧写器最低版本
  310. #if CONFIG_FINDMY_INFO_ENABLE
  311. [FW_ADDITIONAL]
  312. FILE_LIST = (file = file_authrunFindmyAC632N.tkn: type = 0xec)
  313. #endif