0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

剛工作,代碼太多沒頭緒?怎么辦?

朱老師物聯(lián)網大講堂 ? 2024-03-25 08:09 ? 次閱讀


最近有位問:剛參加工作,看不懂代碼?f9c8b80a-ea3b-11ee-9118-92fbcf53809c.png

這篇文章我們就來簡單分享一些看代碼的經驗。

1、了解項目整體架構

在閱讀嵌入式代碼之前,我們需要對項目整體架構有一個基本的了解。

公司里的項目,一般在做項目之前,都會進行系統(tǒng)設計、編寫一些文檔、畫一些系統(tǒng)框圖。可以先找這些項目資料看一看。雖然我們后面可能只是負責某個模塊,但是還是很有必要先了解這個項目的總體框架。了解清楚整個項目有有哪些硬件模塊、哪些軟件模塊、有哪些組件、各個模塊之間的輸入輸出、各個模塊是如何協(xié)同工作、項目的主體業(yè)務是什么、主要功能有哪些等。

嵌入式代碼通常可以分解為幾個關鍵模塊,例如任務管理、內存管理、通信協(xié)議等。將各個模塊分離出來,逐一閱讀和理解,可以更加清晰地掌握代碼的核心思想。

對項目整體架構有一定了解之后,有助于我們更好地理解代碼中的邏輯。

2、熟悉通信部分代碼

項目里一般會劃分多個硬件/軟件模塊,這些模塊之間會進行數據交互。

梳理清楚:

  • 使用了哪些硬件通信接口?例如I2C、SPI、UART等。
  • 線程通信?
  • 進程間通信?
  • 網絡通信
  • 協(xié)議數據處理?
  • 各個模塊的數據分類?

我們可以首先熟悉通信部分代碼,梳理清楚各模塊的交互。這一部分代碼一般是比較容易看懂的,基本是看懂了一條數據之后,類似的基本就看懂了?;究炊?,可以跟著數據的流向,看看拿到這些數據之后,去做了什么處理。

因為你之后的工作,有可能是寫這一部分代碼。比如增加某個數據,要實現什么功能。

拿數據 + 做邏輯

3、閱讀主業(yè)務模塊

業(yè)務邏輯模塊直接跟產品功能掛鉤,看懂這個模塊就可以很好地了解我們產品的功能。

業(yè)務邏輯作為最上層的模塊,可能有好幾個模塊都對其提供一些接口。

閱讀這一塊代碼需要注意的是:

每個功能具體的函數實現可能會嵌套好多層的代碼,剛開始千萬不要一層一層點進去閱讀、不要試圖看懂每個函數、每行代碼,不然只會越看越懵。

我們在閱讀這個模塊的代碼時,盡量沿著這個模塊的主線去閱讀,沿著主線盡可能快地弄清這個模塊做的事情,理解函數調用關系。等我們弄懂本模塊之后,日后對其它模塊感興趣再去仔細閱讀其具體實現也不遲。

4、了解單元測試測試用例

一般項目里模塊開發(fā)完成會編寫一些單元測試用例進行自測。我們可以先不看單元測試模塊是如何實現的,可以先看一些各個模塊的測試用例,每個用例是如何跑的?輸入?輸出?

通過閱讀這些測試用例,可以幫助我們快速地理解各個模塊是如何觸發(fā)的,以及一些接口的使用方法。

5、實踐、分析日志

對代碼有了一定理解之后,肯定也會帶有很多困惑,這時候可以自己修改代碼/增加一些調試日志來幫我們理解代碼,有在線調試條件的可以進行在線調試。

同時,我們需要大致熟悉項目整體的日志:

熟悉日志的格式。帶有時間戳?帶有模塊標簽?日志等級?

了解應用程序啟動日志,通過日志了解啟動做了哪些工作、經過了哪些流程。

了解一些關鍵日志。主業(yè)務的日志?

跑跑一些用例,看看對應的日志。

以上就是我們關于閱讀嵌入式代碼的一些分享。

如果文章對你有幫助,麻煩幫忙轉發(fā)。

本文轉載自公眾號|嵌入式大雜燴

作者 | 嵌入式大雜燴

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 代碼
    +關注

    關注

    30

    文章

    4671

    瀏覽量

    67770
  • 嵌入式代碼
    +關注

    關注

    0

    文章

    5

    瀏覽量

    5880
收藏 人收藏

    評論

    相關推薦

    51單片機

    畢業(yè)設計都有還沒頭緒,都不知道要怎么死的了,1月份就要答辯了。我現在都沒一點進程。基于51單片機的倒車雷達。發(fā)射 接收 溫度 4位顯像管 蜂鳴器 。仿真 程序 電路圖、、想想都不知道要怎么辦
    發(fā)表于 10-30 20:26

    公司在做一個安捷倫4395網絡分析儀的軟件,還沒頭緒,不知怎么做

    公司在做一個安捷倫4395網絡分析儀的軟件,還沒頭緒,不知怎么做,請教各位大俠給提個意見,謝謝
    發(fā)表于 08-27 23:01

    cadence16.5導入PCb導入網表顯示失敗,怎么辦,新手入門

    cadence16.5導入PCb導入網表顯示失敗,怎么辦,新手入門
    發(fā)表于 12-14 21:40

    求大神Labview畢業(yè)設計整套的例子,畢設沒頭緒~~~

    哪位大神有沒有Labview畢業(yè)設計整套的,能不能給小弟拿來參考下,最近在忙畢業(yè)設計,有點沒頭緒,跪求資源~~~
    發(fā)表于 12-05 15:55

    諾基亞n70白屏怎么辦

    諾基亞n70白屏怎么辦
    發(fā)表于 09-01 15:58 ?3506次閱讀
    諾基亞n70白屏<b class='flag-5'>怎么辦</b>

    顯示桌面沒了怎么辦

    顯示桌面沒了怎么辦 我的windows xp的顯示桌面的圖標沒有了怎么辦。下載一個放到系統(tǒng)目
    發(fā)表于 01-18 19:00 ?3807次閱讀

    電腦進入系統(tǒng)后卡死怎么辦

    電腦進入系統(tǒng)后卡死怎么辦 癥狀:啟動進入系統(tǒng)界面時,點什么都打不開,要等一分鐘左右才能打開。     解決辦法:     一
    發(fā)表于 02-24 13:46 ?1.3w次閱讀

    文件或目錄損壞怎么辦

    文件或目錄損壞怎么辦 我的D盤分區(qū)是NTFS格式的,但現在變成RAW。而且雙擊D盤就提示:無法訪問D:/ 文件或目錄損壞且無法讀取。怎么辦
    發(fā)表于 02-25 10:16 ?1079次閱讀

    顯示器開機模糊怎么辦

    顯示器開機模糊怎么辦    就CRT顯示器開機時畫面模糊,隨著時間的延長,屏幕的畫面越來越清晰,10到30分鐘恢復正常這一
    發(fā)表于 03-01 10:15 ?1728次閱讀

    電池換新無法可依怎么辦

    電池壞了怎么辦?修。修不好怎么辦?換。
    發(fā)表于 03-19 11:23 ?1331次閱讀

    linux無法識別U盤怎么辦

    linux無法識別U盤怎么辦?
    發(fā)表于 05-19 09:08 ?1.7w次閱讀
    linux無法識別U盤<b class='flag-5'>怎么辦</b>

    鍵槽滾鍵了怎么辦

    鍵槽滾鍵了怎么辦?
    發(fā)表于 03-07 16:37 ?7次下載

    電機過熱怎么辦?

    電機過熱怎么辦?WAYON維安PPTC有方案
    的頭像 發(fā)表于 11-01 15:08 ?597次閱讀
    電機過熱<b class='flag-5'>怎么辦</b>?

    pcb鉆孔偏孔了怎么辦?

    pcb鉆孔偏孔了怎么辦
    的頭像 發(fā)表于 11-22 11:10 ?2646次閱讀
    pcb鉆孔偏孔了<b class='flag-5'>怎么辦</b>?

    風機軸磨損怎么辦

    電子發(fā)燒友網站提供《風機軸磨損怎么辦.docx》資料免費下載
    發(fā)表于 01-07 11:04 ?0次下載