泰凌微TLSR8258晶片解決方案開發之串列埠列印級別設定
阿新 • • 發佈:2022-03-08
一 TRSR8258簡介
該晶片是泰凌微推出來的一款純ble的晶片,介面豐富,功耗低,資源豐富,非常適合做可穿戴物聯網裝置,筆者拿這顆晶片做了不少方案,感覺非常好用,所以這裡寫一下使用心得。
二 串列埠的重要性
對於嵌入式軟體工程師來說,再也沒有能看到hello world的日誌列印讓人興奮的事情了,只要有列印日誌,問題都是可以解決的。知道串列埠的重要性了吧。所以,筆者有一個習慣,無論什麼晶片,先把
串列埠列印優化好,把列印級別,列印函式寫好,並用好,這個能極大的節省除錯時間。
三 原始碼分析
8258的原廠日誌比較粗糙,我們做了不少優化,主要有幾個方面:
1 增加列印級別的控制
2 增加資料dump的函式
3 增加強制換行
具體程式碼如下:
#define LOG_DEBUG(str, ...) printf("[DEBUG]:"str "\r\n", ##__VA_ARGS__) #define LOG_INFO(str, ...) printf("[INFO]:"str "\r\n", ##__VA_ARGS__) #define LOG_ERR(str, ...) printf("[ERR]:"str "\r\n", ##__VA_ARGS__) #define FUNC_ENTER() //printf("[INFO]:%s Enter\r\n", __func__)#define FUNC_EXIT() //printf("[INFO]:%s Exit\r\n", __func__) #define DUMP8(data, len) dump8(data, len)
四 結果總結
這樣,打印出來的日誌就好看了,簡單明晰,如下圖所示:
[INFO]:driver_init Done [INFO]:os_init Done [INFO]:OS Task Init Done [INFO]:Main Loop Starting... [INFO]:factory test unaccomplished [INFO]:power value check [INFO]:power value:430,vol_state:1 [INFO]:local leds start mode:1 [INFO]:sunlight_mode_local:warm: 50 cold:50 [INFO]:version number: 1.21 [INFO]:sys rtc time: 2020-09-13, 10:40:51 now_sec:0 [INFO]:b_ble_state:0 b_rx_notify_enable:0