国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

有些技術(shù)確實(shí)可以在兩、三個(gè)月內(nèi)學(xué)通,嵌入式開(kāi)發(fā)經(jīng)驗(yàn)總結(jié)

發(fā)布時(shí)間:2017-7-26 14:45    發(fā)布者:技術(shù)小白
關(guān)鍵詞: 嵌入式開(kāi)發(fā) , arm
有些技術(shù)確實(shí)可以在兩、三個(gè)月內(nèi)學(xué)通,嵌入式開(kāi)發(fā)經(jīng)驗(yàn)總結(jié)

讀大學(xué)時(shí)學(xué)過(guò)計(jì)算機(jī)組成原理、操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)等等課程,但是大學(xué)生都知道,上完那些課只是懂一點(diǎn)皮毛而已,打打醬油就過(guò)去了。特別是對(duì)于軟件工程師,一定要多實(shí)踐、多思考才行。理論知識(shí)顯得并沒(méi)有搞硬件或者偏硬件開(kāi)發(fā)的那么重要,因?yàn)檐浖闹攸c(diǎn)在于邏輯和算法。

個(gè)人認(rèn)為,在中、高級(jí)階段,偏硬莫非就是一種知識(shí)活兒,而偏軟莫非就是一種體力活兒……只有到達(dá)專家階段才能夠有所突破。對(duì)比一下培訓(xùn)機(jī)構(gòu)的軟件開(kāi)發(fā)和硬件開(kāi)發(fā)的培訓(xùn)費(fèi)用就知道了,一般的軟件培訓(xùn)(Java/C++/PHP/C#),收費(fèi)大概是一個(gè)月3000,強(qiáng)調(diào)是“一個(gè)月”,一般的培訓(xùn)都是2~6個(gè)月,所以總費(fèi)用少則幾千,多則上萬(wàn)。而嵌入式的培訓(xùn)費(fèi)則是按天計(jì)算,1天大概500,強(qiáng)調(diào)是“1天”,一般的培訓(xùn)是一周,也有培訓(xùn)半年的,但是費(fèi)用也相當(dāng)高!由此可見(jiàn),嵌入式的課程含金量很高。軟件開(kāi)發(fā),特別是網(wǎng)站開(kāi)發(fā),比嵌入式辛苦多了。

如果硬件和軟件兩者皆不了解,那么推薦你選擇偏硬件的方向,實(shí)惠很多。綜合其他前輩的經(jīng)驗(yàn),嵌入式開(kāi)發(fā)是個(gè)不錯(cuò)的工作,應(yīng)該比公務(wù)員都還好,但要學(xué)好大學(xué)里面的課程,比如數(shù)字邏輯、電路分析、微機(jī)原理、單片機(jī)等等,理論很重要。理論面前,男女平等。

靜下心來(lái)看書(shū)、做項(xiàng)目,你會(huì)發(fā)現(xiàn)有些東西確實(shí)可以在短短兩、三個(gè)月內(nèi)學(xué)通,即使說(shuō)你今年做LinuxC/C++開(kāi)發(fā),明年做JavaEE、Android開(kāi)發(fā),后年去做硬件開(kāi)發(fā)、驅(qū)動(dòng)開(kāi)發(fā),那都是沒(méi)問(wèn)題的。問(wèn)題是,你喜歡做什么?你想要達(dá)到哪種境界?

嵌入式開(kāi)發(fā)知識(shí)總結(jié)

一、基礎(chǔ)知識(shí)


目前流行的嵌入式操作系統(tǒng)有:linux、uC/OS、WindowsCE、VxWorks、PalmOS和QNX。其中VxWorks實(shí)時(shí)性很強(qiáng),最穩(wěn)定、可靠,但價(jià)格昂貴,而其他的都有各自的優(yōu)點(diǎn)。

ARM公司(原名Advanced RISC Machine),主要是研發(fā)ARM系列微處理器(出售IP,即知識(shí)產(chǎn)權(quán)),目前全世界有幾十家著名的半導(dǎo)體公司都使用ARM公司的授權(quán),包括IBM、Intel、SONY、LG等。ARM微處理器已成為RISC標(biāo)準(zhǔn)。目前基于ARM核的處理器有以下幾種:

ARM7/9 Thumb家族
ARM9/10E家族
ARM 11家族
ARM Cortex家族
SecurCore家族
OptimoDE Data Engine家族
MPCore Multiprocessors家族
Intel公司的StrongARM(相當(dāng)于ARM8)和Xscale。

ARM7處理器采用了ARMV4T(馮諾依曼)體系結(jié)構(gòu)。目前主流的ARM7內(nèi)核是ARM7TDMI(最常用)、ARM7TDMI-S、ARM720T和ARM7EJ-S。T代表支持Thumb指令集,D代表支持片上調(diào)試,M代表內(nèi)嵌硬件乘法器,I代表支持片上斷點(diǎn)和調(diào)試點(diǎn)。

ARM9處理器采用改進(jìn)型哈佛體系結(jié)構(gòu)。采用五級(jí)流水處理及分離的Cache結(jié)構(gòu)。常見(jiàn)的系列有:ARM920T、ARM922T和ARM940T。

Xscale是基于ARMv5TE體系結(jié)構(gòu),是一款性能全、性價(jià)比高、功耗低的處理器。支持16位的Thumb指令和DSP指令集。

Cortex,按傳統(tǒng)的命名方法,Cortex可以看做ARM12。ARM公司推出了Cortex-A/R/M三個(gè)系列。

還有ARM9E、ARM11、MPCore、StrongARM等,略。

比較經(jīng)典的是基于三星ARM9的S3C2440的開(kāi)發(fā)板,這個(gè)系列的資料很多。還有基于三星ARM11的S3C6410開(kāi)發(fā)板,可以跑android。

ARM體系結(jié)構(gòu)的變種

Thumb指令集(T變種)是將ARM指令集重新編碼形成的一個(gè)子集。常見(jiàn)的ARMv5T使用v2版的Thumb指令集。

此外,還有長(zhǎng)乘法指令(M變種),增強(qiáng)型DSP指令(E變種),Java加速器Jazelle(J變種)和ARM媒體功能擴(kuò)展(SIMD變種)。

二、開(kāi)發(fā)流程


不管系統(tǒng)多么復(fù)雜,一般都是以最小系統(tǒng)為基礎(chǔ),通過(guò)加入所需的功能模塊構(gòu)成的。最小系統(tǒng)大概包括電源電路、時(shí)鐘電路、復(fù)位電路、外擴(kuò)的存儲(chǔ)系統(tǒng)和調(diào)試接口。

1、硬件設(shè)計(jì)

首先要進(jìn)行實(shí)驗(yàn)板硬件資源規(guī)劃,例如在最小系統(tǒng)的基礎(chǔ)上擴(kuò)充I2C存儲(chǔ)器、串行接口、網(wǎng)絡(luò)接口、USB接口、觸摸屏接口,以及按鍵、蜂鳴器等。

然后設(shè)計(jì)硬件電路,包括電源電路、復(fù)位電路、時(shí)鐘微處理器電路、外部存儲(chǔ)器電路電路、網(wǎng)絡(luò)接口電路等等,這一部分貌似比較有難度。許多公司也都是出售組裝好的開(kāi)發(fā)板。

PCB的設(shè)計(jì),要考慮到抗高頻干擾、信號(hào)完整性、差分布線等。焊接好元件之后還要調(diào)試電路。

2、軟件的移植與開(kāi)發(fā)

軟件系統(tǒng)的移植主要包括Bootloader的移植、Linux操作系統(tǒng)的移植(包括內(nèi)核和文件系統(tǒng)的移植)以及針對(duì)實(shí)驗(yàn)板的驅(qū)動(dòng)程序的編寫(xiě)等。

1)準(zhǔn)備交叉編譯工具
2)引導(dǎo)加載程序的移植(例如vivi、U-Boot)
3)內(nèi)核的移植
4)根文件系統(tǒng)的移植
5)驅(qū)動(dòng)程序的編寫(xiě)
6)其他,例如JTAG測(cè)試。

三、移植Linux內(nèi)核


基本步驟為:

1)獲取某一版本的Linux內(nèi)核源碼,根據(jù)具體目標(biāo)平臺(tái)對(duì)內(nèi)核源碼進(jìn)行必要的改寫(xiě),主要是修改體系結(jié)構(gòu)相關(guān)的部分。

PS:顯然,對(duì)內(nèi)核源碼的修改很有難度,它既要求開(kāi)發(fā)者對(duì)Linux內(nèi)核結(jié)構(gòu)非常熟悉,對(duì)目標(biāo)平臺(tái)的硬件結(jié)構(gòu)也非常熟悉,而且要有良好的匯編基礎(chǔ)。這一部分的工作一般都是目標(biāo)平臺(tái)提供商完成的,而且主要的東西是ARM公司的工程師來(lái)完成,由他們提供相關(guān)版本的Linux內(nèi)核的補(bǔ)丁,然后把補(bǔ)丁打到我們所用的Linux內(nèi)核上,經(jīng)過(guò)必要的配置和交叉編譯就行了。所以說(shuō),內(nèi)核的定制和改寫(xiě)難度很大,一般的軟件工程師和硬件工程師都很難勝任。

2)打補(bǔ)丁,然后配置內(nèi)核,調(diào)出內(nèi)核配置界面,選上某些選項(xiàng)或者去掉某些選項(xiàng),配置選項(xiàng)非常多,而且某些選項(xiàng)之間有關(guān)聯(lián),所以說(shuō)這一步比較有難度。下面列出一些配置項(xiàng),每個(gè)配置項(xiàng)都可以選擇Y(將該功能編譯進(jìn)內(nèi)核)、N、M(編譯成可以在需要時(shí)動(dòng)態(tài)加載的模塊)。

Code maturity level options(代碼成熟度選項(xiàng))
General setup(通用設(shè)置)
Networkong deveices(包括很多子選項(xiàng)dummy net driver support,PLIP support,SCSI device support等)

3)編譯內(nèi)核,用幾個(gè)命令就可以編譯內(nèi)核了。#make clean,#make dep,#make zImage。

4)移植根文件系統(tǒng),內(nèi)核編譯完之后,可以運(yùn)行各種命令并支持各種功能的中央處理器,但是如果缺少了內(nèi)存、硬盤(pán)等設(shè)備也不能正常運(yùn)行。根文件系統(tǒng)中存放了Linux系統(tǒng)所需要得各種程序文件,沒(méi)有這些文件內(nèi)核無(wú)法正常工作。同樣,要移植根文件系統(tǒng)需要清楚Linux的運(yùn)行機(jī)制,比較麻煩。所以一般都使用Busybox這個(gè)工具。安裝配置Busybox,向Busybox添加命令,構(gòu)造根文件系統(tǒng),制作根文件系統(tǒng)映像文件(形如initrd.gz)。

5)使用U-Boot制作、下載內(nèi)核。U-Boot支持uImage格式的內(nèi)核文件。啟動(dòng)內(nèi)核,然后使用U-Boot加載根文件系統(tǒng)映像。

四、開(kāi)發(fā)環(huán)境的建立


一般宿主機(jī)推薦用Red Hat9.0,需要宿主機(jī)在硬件上有標(biāo)準(zhǔn)串口、并口、網(wǎng)口;軟件上具有目標(biāo)板的Linux內(nèi)核、ramdisk文件系統(tǒng)映像以及Bootloader。軟件的更新通常使用串口或網(wǎng)口,最初的Bootloader燒寫(xiě)是通過(guò)JTAG進(jìn)行的。

首先要在宿主機(jī)上建立交叉編譯調(diào)試的開(kāi)發(fā)環(huán)境,許多開(kāi)發(fā)板配有光盤(pán)能實(shí)現(xiàn)自動(dòng)安裝。用minicom作為被開(kāi)發(fā)目標(biāo)板的終端,開(kāi)發(fā)前要正確的配置minicom。然后配置TFTP(簡(jiǎn)單文件傳輸協(xié)議),用于在目標(biāo)板和宿主機(jī)之間傳輸文件。配置NFS,以便終端機(jī)能共享宿主機(jī)的文件。
實(shí)驗(yàn)1 編譯Bootloader
很簡(jiǎn)單。一種常見(jiàn)的Bootloader是PPCBoot,另一種是vivi。
實(shí)驗(yàn)2 編譯Linux內(nèi)核
用幾個(gè)命令就可以編譯內(nèi)核文件,編譯后就要配置,配置稍微繁瑣一點(diǎn)。但是每個(gè)選項(xiàng)在網(wǎng)上都可以找到相應(yīng)的配置方法。
實(shí)驗(yàn)3 制作文件系統(tǒng)及程序的燒寫(xiě)
實(shí)驗(yàn)4 燒寫(xiě)各部分到目標(biāo)板
實(shí)驗(yàn)5 交叉編譯并運(yùn)行簡(jiǎn)單程序
打開(kāi)minicom開(kāi)啟實(shí)驗(yàn)板電源,掛載實(shí)驗(yàn)板。編譯C語(yǔ)言的命令形如:
/opt/host/armv4l/bin/armv4l-unknown-linux-gcc -o HelloWorld HelloWorld.c
實(shí)驗(yàn)6 簡(jiǎn)單驅(qū)動(dòng)程序的編寫(xiě)

編寫(xiě)一個(gè)簡(jiǎn)單字符設(shè)備的驅(qū)動(dòng)程序。該程序非常簡(jiǎn)單,但是涉及到很多系統(tǒng)硬件的知識(shí)。if,for,switch,static,define這些關(guān)鍵字用得很多,也涉及到結(jié)構(gòu)體,涉及到直接對(duì)地址的操作、位運(yùn)算。涉及到物理設(shè)備,中斷等一些知識(shí)。

其實(shí),顯而易見(jiàn),驅(qū)動(dòng)開(kāi)發(fā)更靠近硬件一些,程序方面主要是熟練c語(yǔ)言就可以了。驅(qū)動(dòng)開(kāi)發(fā)的最大喜悅就是把物理設(shè)備給驅(qū)動(dòng)起來(lái)的,并盡量使驅(qū)動(dòng)不出問(wèn)題,物理設(shè)備能夠正常運(yùn)行。


想學(xué)習(xí)的你和我聯(lián)系預(yù)約就可以免費(fèi)聽(tīng)課了。
以下課程可免費(fèi)試聽(tīng)C語(yǔ)言、電子、PCB、STM32、Linux、FPGA、JAVA、安卓等。
宋工企鵝號(hào):3524-6590-88   Tel/WX:173--1795--1908



本文地址:http://www.qingdxww.cn/thread-453813-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 利用模擬開(kāi)發(fā)工具生態(tài)系統(tǒng)進(jìn)行安全電路設(shè)計(jì)
  • 更佳設(shè)計(jì)的解決方案——Microchip模擬開(kāi)發(fā)生態(tài)系統(tǒng)
  • 我們是Microchip
  • 想要避免發(fā)生災(zāi)難,就用MPLAB SiC電源仿真器!
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品老女人精品视 | 婷婷伊人久久 | 欧美日韩一级二级三级 | 韩国免费毛片在线看 | 亚洲欧美日本人成在线观看 | 色婷婷一区二区三区四区成人网 | 97免费在线观看 | 91免费精品国偷自产在线在线 | 青草视频在线观看完整版 | 国精品日韩欧美一区二区三区 | 亚洲欧美日韩在线一区二区三区 | 国产成人精品亚洲 | 欧美大片天天免费看视频 | 黄色片子免费看 | 九九热免费在线视频 | 一区二区在线不卡 | 99热影院| 五月婷婷六月丁香 | 韩国一大片a毛片 | 欧美看片 | 99色吧| 香蕉网站在线观看 | 看一级特黄a大片日本片黑人 | 啪啪午夜视频 | 国产在线精品观看 | 国产一久久香蕉国产线看观看 | 亚欧成人中文字幕一区 | 国产一区二区三区亚洲综合 | 国产精品免费看久久久久 | 国产一级特黄aa级特黄裸毛片 | 综合色播 | 激情亚洲的在线观看 | 2021久久最新国产精品 | 婷婷综合网站 | 天堂网免费视频 | 日本精品网站 | 不卡影视 | 韩国精品一区二区 | 国产日韩欧美一区二区三区综合 | 成熟女人特级毛片www免费 | 色5月婷婷 |