前不久有乙個朋友想轉去做汽車軟體開發,問我需要學習什麼內容。今天在這裡做乙個分享,希望可以幫到這位朋友以及以後想要從事汽車電子軟體開發的朋友們。
隨著sdv(軟體定義汽車)概念的提出, 大家都認識到了軟體在汽車電子領域的重要性,各大汽車主機廠紛紛成立了軟體研發中心並爭奪軟體開發人才。上汽集團在今年年初成立了上汽軟體中心(後改名為零束),長城汽車成立了諾博、諾創、諾博,還有很多oem也成立或者擴大了各自的軟體研發中心,這裡都不贅述了。
總之,這對從事汽車軟體開發的同僚們是很大的利好。2023年大家經歷了汽車銷量下滑帶來的零部件**商效益下滑,2023年的疫情對汽車行業來說更是雪上加霜,好在從9月份開始汽車銷量迎來了不錯的增長,給我們汽車電子從業者們帶來了更多信心。未來隨著sdv的進一步推進,以及汽車新四化的逐漸開展,對軟體開發人員的需求也會進一步增加。
囉嗦了這麼多就是想給正在或者想要從事軟體開發的大家一點信心,提公升自己的開發技能、做好自己的開發工作,未來大有可為。下面回到本文的主題,想要從事汽車軟體開發需要掌握哪些技能,本文討論的scope是微控制器軟體開發,關於帶有作業系統的soc軟體開發我們以後可以討論。
1.首先要對微控制器(mcu)的基本構成有乙個了解,如果是計算機或者電子資訊相關的專業,大學應該都學過一門叫做「微機原理」的課程,那這一步就可以跳過了。如果沒有學過這門課,可以自己買一本微控制器原理的書來看一下,對微控制器的各個元件(什麼是alu、ram、rom、暫存器等)有個基本的了解。
2.接下來就是c語言程式設計知識了,c語言是你和mcu進行溝通的語言,通過c程式告訴mcu你要它完成什麼工作(比如通過乙個埠輸出乙個pwm)。c語言的強大之處是可以直接操控硬體,大部分作業系統都是使用c語言來編寫的,包括你每天都會使用的windows系統和android系統(部分元件是用彙編來寫的),從世界程式設計流行語言排行榜上,常年霸佔榜首就可以看出c語言的重要程度。相信大部分人大學應該都學過c語言這門課程,因為現在不管是不是理工科的專業,利用程式設計解決問題的思想還是有必要學習一下的。如果你沒有學過c語言也不要方,可以自己買一本c語言的入門書籍來學習,掌握c語言的基本語法即可,更多的程式設計技巧可以在微控制器程式設計的過程中強化學習。網上比較推薦《c primer plus》這本書來入門,本人沒有看過這本書,不作評價,感興趣的朋友可以先了解一下,再決定是否選擇它作為入門書籍,鑑於目前國內的翻譯水平參差不齊,英文沒問題的話可以直接閱讀原版。高階的話有《c和指標》,《c陷阱與缺陷》。
4.有了上面的這些基礎就可以開始簡單的mcu程式設計了,推薦想要入門的同學可以買乙個mcu開發板(最好帶有can、lin、spi、i2c這些常用通訊介面),開發板上有豐富的外圍電路裝置以及編寫好的程式例程,跟著這些例程可以快速地掌握相關的開發技能。想要從事汽車電子領域的mcu軟體開發工作,還需要掌握該領域內常用的一些通訊介面,比如和整車其他模組互動的can、lin網路,以及mcu和板上資源互動的i2c、spi等序列通訊介面。這些內容可以在具體的例程專案中去學習,也不是一朝一夕的事情,需要大家沉下心去鑽研。
企業級軟體開發需要什麼樣的框架
1 領域建模 分析領域特定的問題。比如趕集網這一分類資訊 她的定位是解決都市人尋求房屋出租 二手房 二手車 二手物品交易 求職招聘等生活資訊的需求的。在領域建模階段要解決的就是這個軟體的定位問題,做什麼不做什麼。這一階段由高層領導,市場銷售及系統分析師等完成。2 平台技術選擇 技術選型,比如用什麼平...
Android軟體開發需要學什麼
分享一篇學習筆記,是關於安卓軟體開發的內容,此筆記中涉及到的技術點有的可能已略顯陳舊,但因人而異吧,也許對於零基礎的朋友而言是比較全面的。扣丁學堂培訓課程裡面會和大家解析到最新技術點,大家有興趣可以去了解下。話不多說,首先,需要學習哪些android 開發技術 扣丁學堂www.codingke.co...
為什麼需要軟體開發報告
由於需要交軟體開發報告的作業,沒辦法,硬著頭皮寫了。本文主要講講我在寫這篇報告過程中的一些感悟。在公司,我主要負責技術實現的,也就是標準的碼農。平時我很少考慮文件的重要性,當然,我自己也很少寫文件,一直都覺得寫文件很浪費時間。在仔細地分析了各種軟體開發報告後,我發現我徹底地錯了。程式功能的實現並不難...