1. gzyueqian
      13352868059

      物聯網嵌入式培訓班怎么樣?粵嵌教你怎么入門學習嵌入式軟件開發

      更新時間: 2018-12-12 14:14:05來源: 嵌入式培訓瀏覽量:4610

          本篇致力于列出初級嵌入式軟件工程師工作中用到的技術和它們的學習路線,希望給想要走嵌入式軟件方向的同學一些指引。
          嵌入式系統的定義
          以應用為中心,以計算機技術為基礎,軟硬件可裁剪,適用應用系統對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統。

          例如,微波爐是專用于加熱食物的產品,電視是專用于閉路電視播放的產品,手機原本是專用于通信的產品,現如今電視也可以播放網路視頻,手機也可以用于看視頻、打游戲了,這都得益于嵌入式技術的蓬勃發展。

          宏觀上的嵌入式包含所有的帶有控制器的電子產品,其都滿足“嵌入受控器件內部”的條件。
          所涉及技能
          * 必備技能:
          計算機組成原理:了解基本的計算機組成原理。
          C語言基礎:C語言的基礎語法。
          電路基礎:對于初級工程師要能看得懂簡單的電路原理圖,掌握萬用表、示波器的使用,單片機軟件開發崗位可能要求設計電路,會使用Altium Designer等軟件繪PCB板。
          單片機:51單片機,掌握通過直接操作芯片寄存器操作外圍器件(LED、紅外、電機等),掌握UART、I2C、 SPI 等通信協議。
          Linux基礎:除去單片機開發工程師的工作,現在大部分嵌入式設備都是使用的Linux系統。需要熟煉使用Linux系統,掌握常用的命令。Linux C:掌握使用C語言操作Linux文件系統、網絡開發、多線程多進程開發。這時可以找到純Linux軟件的工作,如服務器開發、內容分發系統等,這類工作要求熟練掌握網絡開發和并發編程。
          至少一門語言:C++/JAVA,理解和使用基本的面向對象開發,后面可能遇到的QT圖形開發基于C++,Android開發基于JAVA。
          * 其它:
          Linux 其它:系統移植、驅動開發等。
          算法,算法在程序實現中占據重要的地位,大公司對于算法的要求較高,
          數據庫,當操作的數據量較大,便會使用數據庫進行管理,需要了解常用的SQL語句,掌握基于MySQL、SQLite等數據庫的開發。
          零、零基礎
          如果你現在是零基礎,也就是高中生或者其它專業想要轉行的,有一些話寫在前面。
          前面已經講過了嵌入式是什么,以及舉例,所以你以后從事的可能就是手機系統、電視系統、機器人控制、汽車電子系統的開發,你要仔細的評估你是不是想要從事這樣的工作,是不是足夠的興趣,對于學習,尤其是自學來說,興趣我覺得是重要的。
          軟件行業并不是一個能夠速成的行業,都需要大量的代碼練習和思考,且除了嵌入式,還有其它很多其它的可以學習,例如JAVA Web,PHP Web,網頁前端,UI,安卓/IOS開發,C#軟件開發,Unity 3D圖形開發,軟件測試,等等。這些門類每個都有自己的學習路線,并不在本篇的范圍之中。
          在自學中,有幾個技能點使用的比較多,
          1、學會搜索
          在學習中遇到問題,大都可以通過搜索得到,大多數情況下,你并不是個遇到這個問題的人。經常有人軟件安裝過出了問題就來問我,我就讓他把出現問題的彈框里面的字去百度。這經常是一個有效的辦法。包括軟件編譯的錯誤,如何更換軟件源,某個命令如何使用呀,這些都可以搜索得到。
          但搜索并不只是有百度,如果能會翻墻的話,就用谷歌,如果不會,就去學(大多數初學者的問題,百度是足夠了的,只是不怎么好用而已)。搜索某個商品的信息就用淘寶,搜索期刊、專利都有專門的網站。
          2、練習
          計算機科學是實踐的科學,如果你沒有寫一行代碼,只是看書,是學不會的。而且,練習會在鞏固知識的同時讓自己獲得成就感會增強學習的興趣。在學習的每個階段,你都需要練習,甚至到了工作之后,你仍然在不斷的訓練你的編程技巧。
          一、C語言環境
          與匯編、JAVA、C++等語言相比,C語言具有高效、易理解、可移植、能直接訪問硬件等優點,所以嵌入式系統的編寫語言主要是C語言。
          學習C語言,現在的大學一般還是用的Visual C++ 6.0,但是已經過時了(Windows下的推薦使用Code::Blocks),我的建議是在開始就使用Linux+GCC作為編譯工具進行開發。有幾點好處:
          VC是上個世紀就淘汰的工具,對C標準的支持還停留在C89上,這是1989年確立的C標準,而gcc工具是一直與時俱進的,支持的C11標準;
          gcc工具是嵌入式開發的標配,在個人電腦開發嵌入式系統是需要交叉編譯的,目前支持的就是gcc工具;
          早點兒開始熟悉Linux系統的操作,常用的個人電腦是Windows的可視化界面,但在Linux上大部分采用命令行的方式操作電腦,早點接觸和掌握Linux的操作是有益于我們后面的學習的;
          使用gcc進行交叉編譯是嵌入式開發的基礎,遲早需要掌握。
          具體操作:
          步,安裝Linux虛擬機,安裝 VMware 軟件,下載 Ubuntu 鏡像安裝好Linux虛擬機就安裝好了。
          第二步,使用gcc編寫程序,在Ubuntu中安裝好gcc,一般Ubuntu會自帶gcc,使用
          gcc --version
          測試,如果提示沒有安裝則使用命令
          sudo apt-get update
          sudo apt-get install gcc g++
          安裝,apt-get 是Ubuntu上的安裝包管理軟件,update 命令用于更新軟件包信息,install 命令用于安裝軟件,gcc 用于編譯 C 文件,g++ 用于編譯 C++ 文件。
          先熟悉Linux操作(常用的概率和基本命令)
          軟件編寫可以直接使用Linux 的軟件編輯工具vi 或者vim(去熟悉怎么安裝)。但是推薦使用文件共享,這樣我們可以使用Windows下的帶有圖形界面的編輯器來寫軟件。
          實現共享有兩種方式:1、推薦使用 samba 軟件和虛擬機共享;2、也可以直接在VMware中開啟Windows共享文件(samba配置是在Linux環境下的,比較麻煩;共享在VMware軟件設置就可以了,較方便)。這兩種方式一個是Linux共享給Windows,文件存在Linux,另一個則相反,但都能使我們在Windows上編寫代碼而使用gcc編譯和運行。
          第三步,編譯運行,假設我們已經編輯好了helloworld.c,我們便能使用gcc來編譯了,
          gcc helloworld.c
          便會在當前目錄下產生一個a.out文件,
          ./a.out
          便能運行程序,看到執行結果,如果要生成指定的可執行文件的名字,可以加參數 -o [file_name],即
          gcc helloworld.c -o [app_name]
          ./[app_name]
          運行程序,關于gcc的使用還有很多的技巧,需要在實際使用中去掌握。
          二、C語言基礎
          搭建好環境,接下來可以正式開始C語言的基本語法的學習,一般一門計算機語言由兩部分組成,語法和應用,首先先要學習C語言的基本語法,后面的單片機和Linux C都是C語言的一種應用場景。
          如果這是你的門編程語言,在剛學習的時候有很多的新概念是需要建立的,例如計算機語言、變量、函數,所以剛開始學習會比較慢,但是沒關系,跟著書循序漸進,一直學習就行了。
          涉及到的主要知識點有:數據類型、變量與算術表達式、流程控制語句、函數、指針、結構體、共用體、枚舉等等。其中指針是重點,還有在實際中用的比較多的回調函數要注意掌握。如果用Linux編譯的話,在學習的時候可以使用gdb進行調試。
          在學習的時候,每章節的課后編程練習至少要做三道。
          三、電路基礎
          嵌入式軟件相對于純軟件開發,要多一點的就是對硬件要有所了解,對于簡單的原理圖的理解,只需要有初中的電路基礎就行了。但是要自己設計電路,涉及到三極管、放大器、濾波、運算器、數字元件等,就需要有更高的模擬/數字電路基礎了,這部分并不是我的強項。
          四、51單片機
          51單片機的軟件環境是Keil,使用的語言是C語言。
          有了C語言基礎之后,就可以學習51單片機了,51單片機是一種微型的控制器,開發方式是通過直接操作芯片寄存器操作外圍電路(如LED、紅外、電機等),從而實現整個的嵌入式系統(如機器人、報警器等)。學校普遍教的是51單片機,進階就是STM32之類的了,51和STM32的本質是一樣的,不同的是STM32由于頻率和內存更高,可以帶小型的操作系統(μC/OS、VxWorks、μClinux等)。
          單片機比較難的是要接受大量的硬件知識,然后買一塊51單片機的開發板(附帶數碼管、紅外、LCD、A/D、D/A、步進電機、溫度傳感器等外設,詳細的資料),然后跟著書邊學習便實踐。學習單片機主要是為了掌握如何控制硬件,理解寄存器、引腳等概念。
          五、Linux C
          其實,在有了C語言基礎之后,先學單片機或者Linux C都可以,可以根據自己的興趣選擇先學哪一門。
          Linux 是嵌入式系統和服務器中使用多的系統,這部分主要學習文件系統編程、網絡編程、多進程多線程編程等等。
          六、嵌入式系統
          Linux C用于構建嵌入式應用程序,而對于嵌入式系統的裁剪以及驅動編程卻沒有學習,在這個部分,我們需要一塊ARM的開發板,推薦訊為的iTOP4412開發板,既支持Linux,又能運行Android的開發。然后跟著資料就可以開始學習了。
          總結
          以上,你應該能夠勝任初級嵌入式軟件開發工作了,如應用開發工程師或者驅動開發工程師。更多的經驗就需要結合工作來提升了。

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚洲午夜理论片在线观看 | 亚洲中文字幕姦 | 亚洲中文精品久久久久 | 依依成人影院久久久午夜 | 亚洲午夜久久久久久91 | 好吊操好吊妞在线观看妞 |