嵌入式系統開發分為硬件部分和軟件部分:
”
硬件部分:
1、ARM介紹
嵌入式產品硬件,主要是一塊以(ARM、 DSP、 FPGA)為核心的開發板。根據不同的需求,配置不同的外設,因為嵌入式產品是為特定應用而生的,所以利用這些嵌入式芯片可以開發出很多產品;ARM是一款嵌入式芯片,往往說到ARM是指內核是ARM的,一般內核部分會加上cache ram rom等構成cpu,在此基礎上其余部分都叫外設,外設和cpu通過總線連接,常見外設有:usb,lcd,keyboard,uart,gpio,iic總線等控制器,類似的還有DSP、FPGA都是內核+外設構成一個硬件板子。簡單來講,嵌入式硬件就是內核+外設。
2、嵌入式硬件開發
硬件開發,主要流程是1需求分析:確定要做什么系統,系統會涉及到那些模塊,相應模塊分別對應什么設備;2選型:選擇合適的芯片和外設,先看有沒有類似的產品,選擇比較成熟的產品作為開發基礎,加快開發效率;3進入開發階段。
軟件部分:
1、Linux介紹
linux最大特點就是開源,內核代碼全部開放,這就可以讓我們自己根據需求定制自己的操作系統,操作系統主要功能就是管理片上所有資源,任務調度,為應用程序運行服務的。
2、軟件開發
嵌入式軟件開發,包括基于操作系統之上的應用程序開發,和操作系統內核的驅動開發(驅動屬于內核的一部分)。嵌入式軟件部分編程,就是在pc機上編寫代碼,最后下載到板子上執行。
嵌入式技能描述:
1、開發環境搭建:嵌入式開發需要交叉開發環境,因為我們編碼工作都在pc上完成,運行在pc上的是基于x86體系的,在arm上運行需要編譯成特定代碼,運用交叉編譯器編譯。其中包括1u-boot/vivi(相當于BIOS)的移植,這種bootloader是嚴重依賴于硬件,所以不同板子有不同配置,一般都根據板子進行配置修改;2內核裁剪,內核是一個很龐大的體系,支持很多服務,而我們需求可能只有幾種,為了減小嵌入式產品資源開銷,內核都進行裁剪(驅動加入或者刪除);3根文件系統制作,應用程序是基于文件系統之上的,有了內核必須要有文件系統才能運行應用程序。
2、應用程序開發:主要是用C語言或者C++按需求開發代碼,最后交叉編譯,下載到板子運行。開發環境Qt,vim編輯器;交叉編譯器arm-linux-gcc;
3、Makefile編寫:代碼編寫后,要寫一個Makefile來編譯源代碼,Makefile就是按照規則運行gcc命令,最終生成可執行文件,類似于批處理或者說是批編譯。
4、設備驅動開發:驅動是根據特定硬件的,要根據硬件廠商提供的datasheet進行編寫,基本上是編寫fileoperation里面的函數(open、close、read、write、ioctrl等),最后將設備驅動加載進內核(通過建立設備節點讓操作系統知道這個設備)。
5、基于板子外設的軟件開發:嵌入式ARM最強大的功能是控制能力,類似于早期的單片機,但是比單片機要有強大的網絡通信能力,支持操作系統,更多外設;
這種軟件開發就是通過編程,根據硬件datasheet,讓ARM控制硬件的控制器完成各種硬件的協調工作。(比如板子上一個引腳接上lcd,讓這個引腳對應地址內容為1就可以點亮這個lcd
6、熟悉電子線路基本知識:模電,數電,高頻電子,信號處理。
7、熟悉基于linux的socket網絡編程。
以下課程可免費試聽C語言、電子、PCB、STM32、Linux、FPGA、JAVA、安卓等。
想學習的你和我聯系預約就可以免費聽課了。
宋工企鵝號:3524-6590-88 Tel/WX:173--1795--1908
|