日誌篇:模組日誌總體介紹

电子老师傅發表於2024-10-24

今天我們學習合宙模組日誌總體介紹,以下進入正文。

一、本文討論的邊界

本文是對合宙 4G 模組, 以及 4G+GNSS 模組的日誌功能的總體介紹。透過日誌,可以對研發過程中,以及模組執行過程中的各種故障進行分析。

二、4G模組日誌的幾種型別界

4G 模組的日誌有兩種型別: 業務日誌和底層日誌。業務日誌是指在用模組的客戶程式碼輸出的日誌,包括 AT指令互動的日誌和二次開發的業務程式碼輸出的日誌。

2.1 AT 互動的業務日誌

把模組作為 AT 指令的方式做開發的時候, 可以透過串列埠工具,抓取 AT 指令的日誌。也可以由裝置的主控 CPU,輸出和模組的 AT 指令的互動日誌。AT 互動的日誌,用普通的串列埠工具,比如 sscom,LLcom,都可以使用。

2.2 二次開發的業務日誌

在用 LuatOS 二次開發的程式碼裡面, 用 print()函式, 就可以輸出任何的資訊到 Luatools。透過 Luatools 的日誌檢視介面, 就可以非常方便的檢視, 儲存,分析業務日誌。使用 Luatools 檢視日誌的詳細資料,可以檢視:

Luatools下載和使用教程

2.3 底層日誌

當遇到疑難問題, 用業務日誌無法定位問題原因的時候, 就需要抓取底層日誌,交給合宙的技術同事分析問題。

無論是 AT 指令方式的開發,還是在模組內部做二次開發,都可以抓取底層日誌。

三、怎麼抓底層日誌

本章的內容,適合合宙 780 系列模組,700系列模組,不適合 724和795系列模組。底層日誌工具,叫做 EPAT 工具。

3.1 下載底層日誌工具

點選如下連結,直接下載底層日誌工具EPAT:合宙模組底層日誌抓取和分析工具 。

3.2 日誌輸出埠

如徹底講清楚USB驅動問題這篇教程所說,USB的虛擬埠中,有一個底層日誌的輸出埠。可以從裝置管理器的埠屬性中根據“裝置例項路徑”中的值是否是0004,來判斷底層日誌的輸出埠。

正常情況下,要用USB物理介面抓取日誌,因為USB虛擬出來的埠的輸出速率很高,基本不會出現丟日誌的現象。

而串列埠抓底層日誌,很容易丟失日誌,導致抓不全日誌,給問題分析帶來很大的障礙。

3.3 EPAT工具中圖示功能

  • 1)重啟模組

  • 2)勾選選擇的埠從其他串列埠除錯工具嘗試開啟是否可以正常輸出資料(亂碼)

  • 3)如果使用AT韌體,預設DBG_UART埠輸出是3M波特率,可以透過AT+ECPCFG=logBaudrate,6000000 指令修改,波特率設定請不要低於3M,不然很容易出現丟日誌、抓的不全。

  • 圖片日誌篇:模組日誌總體介紹

    開啟日誌檔案,需要在開啟EPAT工具時跳出的"Select Data Source"選擇框中選擇"Select From Local Files",才能點選使用功能,可以開啟ZIP壓縮包和Bin格式的日誌檔案。

  • 圖片日誌篇:模組日誌總體介紹

    儲存日誌,會將已抓取到的日誌匯出,以ZIP壓縮包的方式儲存,方便提供給技術同事或研發同事分析。

  • 圖片日誌篇:模組日誌總體介紹

    更新解析日誌的資料庫檔案,在抓日誌的時候,可以不匹配,等在使用EPAT開啟日誌檔案的時候再做匹配解析。

  • 圖片日誌篇:模組日誌總體介紹

    篩選檢視日誌,如果不瞭解,用不到這個功能

  • 圖片日誌篇:模組日誌總體介紹

    啟動開始抓日誌,如果沒有日誌出來,請檢查日誌埠有沒有選擇正確,有沒有勾選開啟;確認埠正確,也以勾選,還是沒有日誌出來,請嘗試:

  • 圖片日誌篇:模組日誌總體介紹

    暫停日誌

  • 圖片日誌篇:模組日誌總體介紹

    停止抓日誌,點選完停止後,就可以選擇儲存日誌 發給技術/研發同事分析了。

  • 圖片日誌篇:模組日誌總體介紹

    清除日誌,建議每次正式準備抓日誌前清理一下日誌,這樣儲存出來的日誌給技術同事分析會方便很多。

  • 圖片日誌篇:模組日誌總體介紹

    搜尋日誌內容

  • 圖片日誌篇:模組日誌總體介紹

    裝置埠配置介面

3.4 EPAT底層日誌抓取方法

① 開啟EPAT工具,抓日誌選擇第一項“Serial Device”

圖片

日誌篇:模組日誌總體介紹

② 選擇日誌埠,準備抓取log

圖片

日誌篇:模組日誌總體介紹

- (1)開啟裝置埠配置介面

- (2)關閉或開啟埠,如果埠被佔用,工具也不會提示"埠已被佔用",所以如果發現埠選擇正確,並且日誌還是沒有出來的話,可以確認下日誌埠是否有被佔用,而導致EPAT沒有開啟日誌埠。

- (3)日誌埠可以同時開啟兩個,一個用模組的DBG_UART埠開啟,另一個使用USB的日誌輸出埠,AT韌體需要設定AT+ECPCFG=logPortSel,2(重啟生效)才能設定日誌埠可以從USB和DBG_UART兩個埠輸出。好處是在進入休眠的時候,待USB斷開,就會用DBG串列埠輸出日誌,等模組喚醒時就會重新虛擬出來USB埠,就會從USB的日誌口抓取日誌。這樣抓取休眠中的程式日誌 也基本上不會出現日誌丟失的情況。

- (4)開啟日誌輸出埠和修改波特率的介面

- (5)選擇日誌輸出埠

- (6)USB的虛擬日誌埠不用特意修改波特率;

DBG_UART埠預設為3M波特率輸出,請不要隨意更改,如果技術/研發同事發現日誌丟失嚴重,可手動寫入修改為6000000(6M)波特率;

③ 抓取底層日誌

圖片

日誌篇:模組日誌總體介紹

如果輸出的日誌有亂碼,先確認波特率是否有改動,是不是預設3M波特率抓取的,或確認串列埠線是否支援3M波特率輸出。然後再點選上圖紅框中的圖示匹配資料庫comdb解析檔案。

④ 獲取資料庫db檔案

抓日誌時,可以不做資料庫匹配,只需要把檔案發給技術同事就可以了;但如果技術同事建議本地先匹配資料庫檔案後再抓取,那優先保證日誌可以正常輸出出來,然後再匹配資料庫檔案。

- LuatOS開發的db檔案獲取

在底層core .soc字尾的韌體中,透過解壓縮工具開啟該檔案,可以看到裡面會有一個comdb.txt檔案,在EPAT選擇更新資料庫檔案的時候 選擇該檔案,隨後點選"UPDATE",如果變為綠燈 代表匹配成功;如果是還是紅燈表示 選擇的db檔案和現在模組中燒錄的韌體不匹配;

圖片

日誌篇:模組日誌總體介紹

- AT開發的db檔案獲取

AT開發方式只能從技術同事中獲取,一般AT的底層問題,不需要客戶去看,所以一般不需要匹配資料庫檔案,抓取成功日誌將zip日誌壓縮包和模組使用的AT韌體完整版本號(發ATI 指令檢視版本號)發給技術同事,分析時自行匹配。

資料庫檔案更新成功後, 燈會變成綠色

⑤ 儲存日誌

圖片

日誌篇:模組日誌總體介紹

- 匯出日誌前,先停止列印 - 點選儲存日誌的圖示

儲存的日誌檔案不要以相同名稱檔案覆蓋的形式儲存,否則日誌會儲存失敗,實際內容不會覆蓋。

⑥ 將儲存出來的ZIP日誌壓縮包發給技術分析。

相關文章