luat_conf_bsp.h 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. #ifndef LUAT_CONF_BSP
  2. #define LUAT_CONF_BSP
  3. #define LUAT_BSP_VERSION "V0012"
  4. // Air101 与 Air103 的Flash大小有差异,需要区分
  5. #define AIR101
  6. // FLASH_FS_REGION_SIZE包含2部分: 脚本区和文件系统区
  7. // 其中文件系统区固定48k, 脚本区默认64k, 两者加起来就是默认值 64+48=112
  8. // 若需要增加脚本区的大小, 那么大小必须是64的整数倍, 例如变成 128,192,256
  9. // 128k脚本区, 对应的 FLASH_FS_REGION_SIZE 为 176, 因为 128+48=176
  10. // 192k脚本区, 对应的 FLASH_FS_REGION_SIZE 为 240, 因为 192+48=240
  11. // 256k脚本区, 对应的 FLASH_FS_REGION_SIZE 为 304, 因为 256+48=304
  12. #define FLASH_FS_REGION_SIZE 112
  13. // 内存优化: 减少内存消耗, 会稍微减低性能
  14. // #define LUAT_USE_MEMORY_OPTIMIZATION_CODE_MMAP 1
  15. //----------------------------------
  16. // 使用VFS(虚拟文件系统)和内置库文件, 必须启用
  17. #define LUAT_USE_FS_VFS 1
  18. #define LUAT_USE_VFS_INLINE_LIB 1
  19. //----------------------------------
  20. //----------------------------
  21. // 外设,按需启用, 最起码启用uart和wdt库
  22. #define LUAT_USE_UART 1
  23. #define LUAT_USE_GPIO 1
  24. #define LUAT_USE_I2C 1
  25. #define LUAT_USE_SPI 1
  26. #define LUAT_USE_ADC 1
  27. #define LUAT_USE_PWM 1
  28. #define LUAT_USE_WDT 1
  29. #define LUAT_USE_PM 1
  30. #define LUAT_USE_MCU 1
  31. #define LUAT_USE_RTC 1
  32. // SDIO 仅支持TF/SD卡的挂载
  33. #define LUAT_USE_SDIO 1
  34. // 段码屏/段式屏, 按需启用
  35. #define LUAT_USE_LCDSEG 1
  36. // OTP
  37. #define LUAT_USE_OTP 1
  38. #define LUAT_USE_TOUCHKEY 1
  39. // i2s
  40. //#define LUAt_USE_I2S 1
  41. // 外置网络支持
  42. // #define LUAT_USE_NETWORK 1
  43. // #define LUAT_USE_W5500 1
  44. // #define LUAT_USE_DHCP 1
  45. // #define LUAT_USE_DNS 1
  46. //----------------------------
  47. // 常用工具库, 按需启用, cjson和pack是强烈推荐启用的
  48. #define LUAT_USE_CRYPTO 1
  49. #define LUAT_USE_CJSON 1
  50. #define LUAT_USE_ZBUFF 1
  51. #define LUAT_USE_PACK 1
  52. #define LUAT_USE_LIBGNSS 1
  53. #define LUAT_USE_FS 1
  54. #define LUAT_USE_SENSOR 1
  55. #define LUAT_USE_SFUD 1
  56. // #define LUAT_USE_STATEM 1
  57. // 性能测试,跑完就是玩,不要与lvgl一起启用,生产环境的固件别加这个库
  58. // #define LUAT_USE_COREMARK 1
  59. #define LUAT_USE_ZLIB 1
  60. #define LUAT_USE_IR 1
  61. // FDB 提供kv数据库, 与nvm库类似
  62. #define LUAT_USE_FDB 1
  63. #define LUAT_USE_OTA 1
  64. #define LUAT_USE_I2CTOOLS 1
  65. #define LUAT_USE_LORA 1
  66. //---------------SDIO-FATFS特别配置
  67. // sdio库对接的是fatfs
  68. // fatfs的长文件名和非英文文件名支持需要180k的ROM, 非常奢侈
  69. // 从v0006开始默认关闭之, 需要用到就打开吧
  70. // #define FF_USE_LFN 3
  71. // #define FF_LFN_UNICODE 3
  72. //----------------------------
  73. // 高通字体, 需配合芯片使用
  74. #define LUAT_USE_GTFONT 1
  75. #define LUAT_USE_GTFONT_UTF8
  76. //----------------------------
  77. // 高级功能, 其中shell是推荐启用, 除非你打算uart0也读数据
  78. #define LUAT_USE_SHELL 1
  79. #define LUAT_USE_DBG
  80. // NIMBLE 是蓝牙功能, 名为BLE, 但绝非低功耗.
  81. // #define LUAT_USE_NIMBLE 1
  82. // 多虚拟机支持,实验性,一般不启用
  83. // #define LUAT_USE_VMX 1
  84. //---------------------
  85. // UI
  86. // LCD 是彩屏, 若使用LVGL就必须启用LCD
  87. #define LUAT_USE_LCD
  88. #define LUAT_USE_TJPGD
  89. // EINK 是墨水屏
  90. #define LUAT_USE_EINK
  91. //---------------------
  92. // U8G2
  93. // 单色屏, 支持i2c/spi
  94. #define LUAT_USE_DISP
  95. #define LUAT_USE_U8G2
  96. /**************FONT*****************/
  97. #define LUAT_USE_FONTS
  98. /**********U8G2&LCD&EINK FONT*************/
  99. #define USE_U8G2_OPPOSANSM_ENGLISH 1
  100. // #define USE_U8G2_OPPOSANSM8_CHINESE
  101. #define USE_U8G2_OPPOSANSM10_CHINESE
  102. // #define USE_U8G2_OPPOSANSM12_CHINESE
  103. // #define USE_U8G2_OPPOSANSM16_CHINESE
  104. // #define USE_U8G2_OPPOSANSM24_CHINESE
  105. // #define USE_U8G2_OPPOSANSM32_CHINESE
  106. /**********LVGL FONT*************/
  107. // #define LV_FONT_OPPOSANS_M_8
  108. // #define LV_FONT_OPPOSANS_M_10
  109. // #define LV_FONT_OPPOSANS_M_12
  110. // #define LV_FONT_OPPOSANS_M_16
  111. // -------------------------------------
  112. // PSRAM
  113. // 需要外挂PSRAM芯片, 否则不要启用, 必死机
  114. // air101虽然支持psram,但与spi存在复用冲突
  115. // air103支持psram与spi同时使用,复用不冲突
  116. // #define LUAT_USE_PSRAM 1
  117. // LVGL推荐把部分方法放入内存, 按需采用
  118. // #define LV_ATTRIBUTE_FAST_MEM __attribute__((section (".ram_run")))
  119. // ROTABLE技术是节省内存的关键技术, 启用PSRAM后内存不缺, 禁用可提高性能
  120. // #define LUAT_CONF_DISABLE_ROTABLE 1
  121. //---------------------------------------
  122. //---------------------
  123. // LVGL
  124. // 主推的UI库, 功能强大但API繁琐
  125. #define LUAT_USE_LVGL
  126. #define LV_DISP_DEF_REFR_PERIOD 30
  127. #define LUAT_LV_DEBUG 0
  128. #define LV_MEM_CUSTOM 1
  129. #define LUAT_USE_LVGL_INDEV 1 // 输入设备
  130. #define LUAT_USE_LVGL_ARC //圆弧 无依赖
  131. #define LUAT_USE_LVGL_BAR //进度条 无依赖
  132. #define LUAT_USE_LVGL_BTN //按钮 依赖容器CONT
  133. #define LUAT_USE_LVGL_BTNMATRIX //按钮矩阵 无依赖
  134. #define LUAT_USE_LVGL_CALENDAR //日历 无依赖
  135. #define LUAT_USE_LVGL_CANVAS //画布 依赖图片IMG
  136. #define LUAT_USE_LVGL_CHECKBOX //复选框 依赖按钮BTN 标签LABEL
  137. #define LUAT_USE_LVGL_CHART //图表 无依赖
  138. #define LUAT_USE_LVGL_CONT //容器 无依赖
  139. #define LUAT_USE_LVGL_CPICKER //颜色选择器 无依赖
  140. #define LUAT_USE_LVGL_DROPDOWN //下拉列表 依赖页面PAGE 标签LABEL
  141. #define LUAT_USE_LVGL_GAUGE //仪表 依赖进度条BAR 仪表(弧形刻度)LINEMETER
  142. #define LUAT_USE_LVGL_IMG //图片 依赖标签LABEL
  143. #define LUAT_USE_LVGL_IMGBTN //图片按钮 依赖按钮BTN
  144. #define LUAT_USE_LVGL_KEYBOARD //键盘 依赖图片按钮IMGBTN
  145. #define LUAT_USE_LVGL_LABEL //标签 无依赖
  146. #define LUAT_USE_LVGL_LED //LED 无依赖
  147. #define LUAT_USE_LVGL_LINE //线 无依赖
  148. #define LUAT_USE_LVGL_LIST //列表 依赖页面PAGE 按钮BTN 标签LABEL
  149. #define LUAT_USE_LVGL_LINEMETER //仪表(弧形刻度) 无依赖
  150. #define LUAT_USE_LVGL_OBJMASK //对象蒙版 无依赖
  151. #define LUAT_USE_LVGL_MSGBOX //消息框 依赖图片按钮IMGBTN 标签LABEL
  152. #define LUAT_USE_LVGL_PAGE //页面 依赖容器CONT
  153. #define LUAT_USE_LVGL_SPINNER //旋转器 依赖圆弧ARC 动画ANIM
  154. #define LUAT_USE_LVGL_ROLLER //滚筒 无依赖
  155. #define LUAT_USE_LVGL_SLIDER //滑杆 依赖进度条BAR
  156. #define LUAT_USE_LVGL_SPINBOX //数字调整框 无依赖
  157. #define LUAT_USE_LVGL_SWITCH //开关 依赖滑杆SLIDER
  158. #define LUAT_USE_LVGL_TEXTAREA //文本框 依赖标签LABEL 页面PAGE
  159. #define LUAT_USE_LVGL_TABLE //表格 依赖标签LABEL
  160. #define LUAT_USE_LVGL_TABVIEW //页签 依赖页面PAGE 图片按钮IMGBTN
  161. #define LUAT_USE_LVGL_TILEVIEW //平铺视图 依赖页面PAGE
  162. #define LUAT_USE_LVGL_WIN //窗口 依赖容器CONT 按钮BTN 标签LABEL 图片IMG 页面PAGE
  163. #define LV_HOR_RES_MAX (160)
  164. #define LV_VER_RES_MAX (80)
  165. #define LV_COLOR_DEPTH 16
  166. #define LV_COLOR_16_SWAP 1
  167. #endif