最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

platformio進(jìn)階使用

2023-03-22 12:56 作者:云逸之  | 我要投稿

monitor_filters 使用

esp32_exception_decoder 解碼esp32異常棧

多環(huán)境配置 配置不同的TFF_eSPI

以及其他過(guò)濾器的使用


多環(huán)境編譯 [env:xxx]

使得同一份代碼用于編譯不同硬件外設(shè)不同開(kāi)發(fā)板或者其他配置差異的場(chǎng)景。

可以在build_flags中加入庫(kù)的宏, sdk的宏用于菜單配置,和自定義的宏,控制自己的代碼的編譯。多環(huán)境配好build_flags等屬性 實(shí)現(xiàn)無(wú)需移植代碼進(jìn)行多配置編譯。

舉例如下

[env:esp32cam_ST7796]
platform = espressif32
board = esp32cam
framework = arduino
lib_deps =
   bodmer/TFT_eSPI@^2.4.76
upload_port = COM3
upload_speed = 115200
monitor_speed = 115200
monitor_port = COM3
build_unflags =
build_flags =
   ; 使其它定義不生效
   -D USER_SETUP_LOADED
   -D ST7796_DRIVER
; 定義SPI的引腳
;   -D TFT_MISO=-1 // 主讀從寫(xiě) 暫不需要
   -D TFT_MOSI=15
   -D TFT_SCLK=14
   -D TFT_CS=12
   -D TFT_DC=13
   -D TFT_RST=2
   #觸控的片選,這里暫不使用
   #-DTOUCH_CS=-1
;  -D TFT_WIDTH=480
;  -D TFT_HEIGHT=320
   -D LOAD_GLCD
   -D LOAD_FONT2
   -D LOAD_FONT4
   -D LOAD_FONT6
   -D LOAD_FONT7
   -D LOAD_FONT8
   -D LOAD_GFXFF
   -D SMOOTH_FONT
   -D SPI_FREQUENCY=40000000

[env:esp32cam_ST7789]
platform = espressif32
board = esp32cam
framework = arduino
lib_deps =
   bodmer/TFT_eSPI@^2.4.76
upload_speed = 115200
monitor_speed = 115200
monitor_port = COM4
build_flags =
; 使其它定義不生效
   -D USER_SETUP_LOADED
   -D ST7789_DRIVER
; 定義SPI的引腳
;   -D TFT_MISO=-1 // 主讀從寫(xiě) 暫不需要
   -D TFT_MOSI=15
   -D TFT_SCLK=14
   -D TFT_CS=12
   -D TFT_DC=13
   -D TFT_RST=2
#觸控的片選,這里暫不使用
#  -DTOUCH_CS=-1
   -D TFT_WIDTH=240
   -D TFT_HEIGHT=320
   -D LOAD_GLCD
   -D LOAD_FONT2
   -D LOAD_FONT4
   -D LOAD_FONT6
   -D LOAD_FONT7
   -D LOAD_FONT8
   -D LOAD_GFXFF
   -D SMOOTH_FONT
   -D SPI_FREQUENCY=40000000
#觸控的頻率 這里沒(méi)有
;  -DSPI_TOUCH_FREQUENCY=2500000

[env:esp32-s3-ST7789]
platform = espressif32
board = esp32-s3-devkitc-1
framework = arduino
lib_deps =
   bodmer/TFT_eSPI@^2.4.76
upload_speed = 115200
monitor_speed = 115200
upload_port = COM4
build_flags =
; 使其它定義不生效
   -D USER_SETUP_LOADED
   -D ST7789_DRIVER
; 定義SPI的引腳
;   -D TFT_MISO=-1 // 主讀從寫(xiě) 暫不需要
   -D TFT_MOSI=15
   -D TFT_SCLK=14
   -D TFT_CS=12
   -D TFT_DC=13
   -D TFT_RST=2
#觸控的片選,這里暫不使用
#  -DTOUCH_CS=-1
   -D TFT_WIDTH=240
   -D TFT_HEIGHT=320
   -D LOAD_GLCD
   -D LOAD_FONT2
   -D LOAD_FONT4
   -D LOAD_FONT6
   -D LOAD_FONT7
   -D LOAD_FONT8
   -D LOAD_GFXFF
   -D SMOOTH_FONT
   -D SPI_FREQUENCY=40000000


代碼提供者隨代碼提交platformio.ini,可以避免或者減少二次使用代碼的人配置菜單和sdk的工作量。


多線程編譯

一般默認(rèn)無(wú)需配置,以cpu線程數(shù)量創(chuàng)建任務(wù)。但可能CPU線程數(shù)的任務(wù)數(shù)量編譯速度可能不一定最快的。


增量編譯

修改代碼之后,build文件夾內(nèi)容還在,會(huì)增量編譯。但修改platformio.ini文件,會(huì)導(dǎo)致庫(kù)依賴和宏,以及開(kāi)發(fā)板還有各種影響編譯的屬性,可能會(huì)導(dǎo)致刪除build文件夾的輸出內(nèi)容,導(dǎo)致需要全量編譯。


debug

debug操作比較簡(jiǎn)單,這里以esp32s3開(kāi)發(fā)板自帶的usb_jtag為例演示,使用的是上一s3機(jī)器人的代碼。其他不自帶USB_JTAG的esp32需要購(gòu)買(mǎi)用于debug的外設(shè)。點(diǎn)擊debug按鈕即可。本人發(fā)現(xiàn)會(huì)有以下相關(guān)問(wèn)題。

  1. 如果線程切換或者其他原因?qū)е耫ebug中斷,再點(diǎn)擊debug重新跑它可能就好了。
  2. 如果debug時(shí)單步執(zhí)行某行代碼,不響應(yīng),則下次debug,在后方打斷點(diǎn)。通過(guò)跳到斷點(diǎn)的方式跳過(guò)它。
  3. 跳到斷點(diǎn)的時(shí)候偶爾執(zhí)行到中途,沒(méi)有到斷點(diǎn),繼續(xù)跳即可。

clion 切換build_type

clion需要查看多環(huán)境的代碼差異時(shí)??梢郧袚Qcmake下的build_type來(lái)查看宏的激活和引入包的變化。在platformio生成的CMakeListsPrivate.txt這個(gè)文件中定義了對(duì)應(yīng)每個(gè)環(huán)境的build_type來(lái)做不同配置的處理,雖然真實(shí)的編譯與clion配置的toolschain無(wú)關(guān),但clion的代碼提示。如報(bào)錯(cuò),代碼跳轉(zhuǎn)鏈接,自動(dòng)補(bǔ)全等,依賴cmake。

platformio進(jìn)階使用的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
乐都县| 抚远县| 潜山县| 大姚县| 绥江县| 封开县| 青铜峡市| 沙河市| 呼和浩特市| 怀柔区| 九江县| 张家界市| 阜康市| 北川| 历史| 信阳市| 南部县| 蓝山县| 松阳县| 闵行区| 宁河县| 翁源县| 虞城县| 团风县| 逊克县| SHOW| 汝州市| 铜梁县| 临潭县| 拉萨市| 且末县| 华坪县| 渝中区| 黔江区| 静乐县| 德钦县| 静海县| 如皋市| 宁阳县| 原阳县| 清苑县|