實習總結
從2019年11月15日到公司,2020年4月24日實習期結束離職,中間斷斷續續(回校期末考試、春節假期、疫情延誤),算下來上班打卡一共68天。
一、學習工作
1.第一個月:學習,看書
-
嵌入式基礎理論:2天讀完了《嵌入式系統基礎教程》
-
單片機C51書籍,做了幾個51單片機的實驗:點燈,電機驅動,蜂鳴器等簡單外設的實驗。大致瞭解了下原理,寄存器編程流程。
-
STM32學習,書籍,實驗。配套買了一塊STM32F103的開發板。書籍《STM32庫開發實戰》。
-
理論學習+實驗編碼:看原理圖找引腳,點燈實驗,GPIO輸入輸出,外部中斷,定時器,串口通信,I2C...
-
FreeRTOS學習:書籍《FreeRTOS內核實現與應用》;
-
理論學習剖析源碼,task.c、queue.c、list.c ,手敲代碼,作註釋;
-
移植FreeRTOS到開發板,編碼實驗:創建任務,任務通信,消息隊列,信號量,互斥量,事件,定時器...
-
各種軟件工具的瞭解和使用:看代碼source insight、畫程序流程圖的umlet和astah community、嵌軟開發的keil、stm32cubeMX、jflash、Ubuntu的發行版的linux、畫思維導圖的xmind、串口工具sscom,文件傳輸tftpd32...
2.第二個月(年後):看項目代碼,完成小功能,改BUG
-
看項目代碼:開始重點看了bss20的network模塊和cabinet模塊。畫時序圖:bss20的文件下載過程。看bss20文檔(產品需求、通信協議...),bss50的文檔。
-
完成測試下載小功能:功能簡述和結果:xxxx略略略
構思一週,前期方向錯了(試圖將FreeRTOS的任務通信消息隊列機制移植到linux上用c++實現,後來發現走了彎路),找導師詢問,斌哥給指出問題後改正。 編碼一週,畫圖分析代碼中數據的結構轉換,移植代碼,改寫接口(port_debug,md5文件校驗,文件操作函數,時間戳,互斥鎖....等等) debug一週,編譯通過後,運行中出現各種錯誤(段錯誤、數據接受失敗等、結構體字節對齊...),調試通過,測試結果,編寫文檔,上傳redmine。 改寫需求:將version_file的下載流程改成file_file文件下載,測試每包數據在512Byte、1024Byte、2048Byte大小的下載時間。具體結果在redmine的任務中。
-
改Bug,根據redmine上的票號,找bug,復現,分析問題,測試,熟悉項目代碼架構和具體流程,細看了其他模塊的代碼包括verup、tftp、mqtt等。
-
實習期間學習Qt(看書+b站網課)。
-
看了嵌入式linux的書籍,嵌入式linux應用開發和驅動開發,lwip協議的書籍。
-
實習期間更新了一些個人博客,具體見 :略略略
二、個人感受
整個實習期間,做的事情相對不多,更多在看書和看網課、看教程、看代碼、學習;感謝公司給足夠的時間讓我學習、參與會議、瞭解一個完整工業產品的流程,瞭解團隊開發軟件分工、文檔資料等等。
剛實習的時候比較焦慮找導師聊過,覺得自己每天幹不了什麼事情很焦慮,學習也不安心,之後導師指導後我學習有方向有目標了,打好基礎,厚積薄發。現在的感覺是:剛剛入門,技術路線還有很長路要走,知識越學越多。
實習期間最有幹勁的那幾天就是寫測試的小功能,每天寫代碼時間過得很快很充實,當然實習階段的學習也很充實,希望後面入職自己能快速上手開發,創造更多價值,自身也能在技術上不斷提升精進。