嵌入式系统学习方法
?http://armodmlr.spaces.eepw.com.cn/articles/article/item/18854
| 查看文章 | ? |
| 嵌入式系統(tǒng)開發(fā)學(xué)習(xí)如何起步、如何深入? 很多新手學(xué)習(xí)嵌入式系統(tǒng),不清楚那么多方向舵知識(shí)和參考書,該從哪里開始學(xué)習(xí)。入手了,卻又在該先學(xué)習(xí)什么后學(xué)習(xí)什么上失去方向。這里有你想要的答案,幫你指點(diǎn)迷經(jīng)。 這是我在ITjob培訓(xùn)網(wǎng)上找到的課程大綱,覺得作為嵌入式系統(tǒng)開發(fā)的學(xué)習(xí)步驟,按部就班地去施行和學(xué)習(xí),到不失為一種好的學(xué)習(xí)方法!就算是作為參考也是有很好的價(jià)值的! 隨著現(xiàn)代社會(huì)信息化進(jìn)程的加快,嵌入式系統(tǒng)被廣泛的地應(yīng)用于軍事、家用、工業(yè)、商業(yè)、辦公、醫(yī)療等社會(huì)各個(gè)方面,表現(xiàn)出很強(qiáng)的投資價(jià)值。從國(guó)際范圍來(lái)看,作為數(shù)字化電子信息產(chǎn)品核心的嵌入式系統(tǒng)目前其硬件和軟件開發(fā)工具市場(chǎng)已經(jīng)突破2000億美元,嵌入式系統(tǒng)帶來(lái)的全球工業(yè)年產(chǎn)值更是達(dá)到了一萬(wàn)億美元,隨著全球經(jīng)濟(jì)的持續(xù)增長(zhǎng)以及信息化的加速發(fā)展,嵌入式系統(tǒng)市場(chǎng)必將進(jìn)一步增長(zhǎng)。 本課程是為了適應(yīng)目前發(fā)展迅速的嵌入式Linux需求而設(shè)計(jì),課程目標(biāo)是讓學(xué)員達(dá)到適應(yīng)嵌入式應(yīng)用軟件開發(fā)、嵌入式系統(tǒng)開發(fā)或嵌入式驅(qū)動(dòng)開發(fā)的基本素質(zhì)。課程循序漸進(jìn)的帶領(lǐng)您嵌入式開發(fā)的世界,采用了目前應(yīng)用最廣泛的軟硬件開發(fā)平臺(tái)(Linux和Arm),可以保證您盡量貼近目前企業(yè)需求。 學(xué)習(xí)步驟如下:(要一步步來(lái)哦) 1、Linux?基礎(chǔ) 安裝Linux操作系統(tǒng)? Linux文件系統(tǒng)? Linux常用命令? Linux啟動(dòng)過程詳解? 熟悉Linux服務(wù)能夠獨(dú)立安裝Linux操作系統(tǒng)? 能夠熟練使用Linux系統(tǒng)的基本命令? 認(rèn)識(shí)Linux系統(tǒng)的常用服務(wù)安裝Linux操作系統(tǒng)? Linux基本命令實(shí)踐? 設(shè)置Linux環(huán)境變量? 定制Linux的服務(wù)?Shell?編程基礎(chǔ)使用vi編輯文件? 使用Emacs編輯文件? 使用其他編輯器? 2、Shell?編程基礎(chǔ) Shell簡(jiǎn)介? 認(rèn)識(shí)后臺(tái)程序 Bash編程熟悉Linux系統(tǒng)下的編輯環(huán)境? 熟悉Linux下的各種Shell? 熟練進(jìn)行shell編程熟悉vi基本操作? 熟悉Emacs的基本操作? 比較不同shell的區(qū)別? 編寫一個(gè)測(cè)試服務(wù)器是否連通的shell腳本程序? 編寫一個(gè)查看進(jìn)程是否存在的shell腳本程序? 編寫一個(gè)帶有循環(huán)語(yǔ)句的shell腳本程序? 3、Linux下的C編程基礎(chǔ) linux?C語(yǔ)言環(huán)境概述? Gcc使用方法? Gdb調(diào)試技術(shù)? Autoconf? Automake? Makefile? 代碼優(yōu)化?熟悉Linux系統(tǒng)下的開發(fā)環(huán)境? 熟悉Gcc編譯器? 熟悉Makefile規(guī)則編寫Hello,World程序? 使用?make命令編譯程序? 編寫帶有一個(gè)循環(huán)的程序? 調(diào)試一個(gè)有問題的程序? 4、嵌入式系統(tǒng)開發(fā)基礎(chǔ)? 嵌入式系統(tǒng)概述? 交叉編譯? 配置TFTP服務(wù)? 配置NFS服務(wù)? 下載Bootloader和內(nèi)核? 嵌入式Linux應(yīng)用軟件開發(fā)流程 熟悉嵌入式系統(tǒng)概念以及開發(fā)流程? 建立嵌入式系統(tǒng)開發(fā)環(huán)境制作cross_gcc工具鏈? 編譯并下載U-boot? 編譯并下載Linux內(nèi)核? 編譯并下載Linux應(yīng)用程序? 5、嵌入式系統(tǒng)移植? Linux內(nèi)核代碼? 平臺(tái)相關(guān)代碼分析? ARM平臺(tái)介紹? 平臺(tái)移植的關(guān)鍵技術(shù)? 移植Linux內(nèi)核到?ARM平臺(tái)?了解移植的概念? 能夠移植Linux內(nèi)核移植Linux2.6內(nèi)核到?ARM9開發(fā)板? 6、嵌入式?Linux?下串口通信? 串行I/O的基本概念? 嵌入式Linux應(yīng)用軟件開發(fā)流程? Linux系統(tǒng)的文件和設(shè)備? 與文件相關(guān)的系統(tǒng)調(diào)用? 配置超級(jí)終端和MiniCOM?能夠熟悉進(jìn)行串口通信? 熟悉文件I/O?編寫串口通信程序? 編寫多串口通信程序? 7、嵌入式系統(tǒng)中多進(jìn)程程序設(shè)計(jì)? Linux系統(tǒng)進(jìn)程概述? 嵌入式系統(tǒng)的進(jìn)程特點(diǎn)? 進(jìn)程操作? 守護(hù)進(jìn)程? 相關(guān)的系統(tǒng)調(diào)用了解Linux系統(tǒng)中進(jìn)程的概念? 能夠編寫多進(jìn)程程序編寫多進(jìn)程程序? 編寫一個(gè)守護(hù)進(jìn)程程序? sleep系統(tǒng)調(diào)用任務(wù)管理、同步與通信?Linux任務(wù)概述 任務(wù)調(diào)度? 管道? 信號(hào)? 共享內(nèi)存? 任務(wù)管理?API?了解Linux系統(tǒng)任務(wù)管理機(jī)制? 熟悉進(jìn)程間通信的幾種方式? 熟悉嵌入式Linux中的任務(wù)間同步與通信 編寫一個(gè)簡(jiǎn)單的管道程序?qū)崿F(xiàn)文件傳輸? 編寫一個(gè)使用共享內(nèi)存的程序? 8、嵌入式系統(tǒng)中多線程程序設(shè)計(jì) ? 線程的基礎(chǔ)知識(shí)? 多線程編程方法? 線程應(yīng)用中的同步問題了解線程的概念? 能夠編寫簡(jiǎn)單的多線程程序編寫一個(gè)多線程程序? 9、嵌入式Linux網(wǎng)絡(luò)編程? 網(wǎng)絡(luò)基礎(chǔ)知識(shí)? 嵌入式Linux中TCP/IP網(wǎng)絡(luò)結(jié)構(gòu)? socket?編程? 常用?API函數(shù)? 分析Ping命令的實(shí)現(xiàn)? 基本UDP套接口編程? 許可證管理? PPP協(xié)議? GPRS?了解嵌入式Linux網(wǎng)絡(luò)體系結(jié)構(gòu)? 能夠進(jìn)行嵌入式Linux環(huán)境下的socket?編程? 熟悉UDP協(xié)議、PPP協(xié)議? 熟悉GPRS?使用socket?編寫代理服務(wù)器? 使用socket?編寫路由器? 編寫許可證服務(wù)器? 指出TCP和UDP的優(yōu)缺點(diǎn)? 編寫一個(gè)web服務(wù)器? 編寫一個(gè)運(yùn)行在?ARM平臺(tái)的網(wǎng)絡(luò)播放器? 10、GUI?程序開發(fā)? GUI基礎(chǔ)? 嵌入式系統(tǒng)GUI類型? 編譯QT? 進(jìn)行QT開發(fā)熟悉嵌入式系統(tǒng)常用的GUI? 能夠進(jìn)行QT編程使用QT編寫“Hello,World”程序? 調(diào)試一個(gè)加入信號(hào)/槽的實(shí)例? 通過重載QWidget?類方法處理事件? 11、Linux字符設(shè)備驅(qū)動(dòng)程序? 設(shè)備驅(qū)動(dòng)程序基礎(chǔ)知識(shí)? Linux系統(tǒng)的模塊? 字符設(shè)備驅(qū)動(dòng)分析? fs_operation結(jié)構(gòu)? 加載驅(qū)動(dòng)程序了解設(shè)備驅(qū)動(dòng)程序的概念? 了解Linux字符設(shè)備驅(qū)動(dòng)程序結(jié)構(gòu)? 能夠編寫字符設(shè)備驅(qū)動(dòng)程序編寫Skull驅(qū)動(dòng)? 編寫鍵盤驅(qū)動(dòng)? 編寫I/O驅(qū)動(dòng)? 分析一個(gè)看門狗驅(qū)動(dòng)程序? 對(duì)比Linux2.6內(nèi)核與2.4內(nèi)核中字符設(shè)備驅(qū)動(dòng)的不同 Linux?塊設(shè)備驅(qū)動(dòng)程序塊設(shè)備驅(qū)動(dòng)程序工作原理? 典型的塊設(shè)備驅(qū)動(dòng)程序分析? 塊設(shè)備的讀寫請(qǐng)求隊(duì)列了解Linux塊設(shè)備驅(qū)動(dòng)程序結(jié)構(gòu)? 能夠編寫簡(jiǎn)單的塊設(shè)備驅(qū)動(dòng)程序比較字符設(shè)備與塊設(shè)備的異同? 編寫MMC卡驅(qū)動(dòng)程序? 分析一個(gè)文件系統(tǒng)? 對(duì)比Linux2.6內(nèi)核與2.4內(nèi)核中塊設(shè)備驅(qū)動(dòng)的不同? 12、文件系統(tǒng)? 虛擬文件系統(tǒng)? 文件系統(tǒng)的建立? ramfs內(nèi)存文件系統(tǒng)? proc文件系統(tǒng)? devfs?文件系統(tǒng)? MTD技術(shù)簡(jiǎn)介? MTD塊設(shè)備初始化? MTD塊設(shè)備的讀寫操作了解Linux系統(tǒng)的文件系統(tǒng)? 了解嵌入式Linux的文件系統(tǒng)? 了解MTD技術(shù)? 能夠編寫簡(jiǎn)單的文件系統(tǒng)為?ARM9開發(fā)板添加?MTD支持? 移植JFFS2文件系統(tǒng)? 通過proc文件系統(tǒng)修改操作系統(tǒng)參數(shù)? 分析romfs?文件系統(tǒng)源代碼? 創(chuàng)建一個(gè)cramfs?文件系統(tǒng)?
|
本文引用通告地址:http://armodmlr.spaces.eepw.com.cn/articles/trackback/item/18854
類別:龍人嵌入式開發(fā)和ODM研發(fā) | 瀏覽(557) 引用(0)
=============================
http://topic.csdn.net/u/20080717/11/6e147de1-9651-440a-96cb-068afa3b1505.html
====
http://blog.sina.com.cn/s/blog_4f79104401000cjs.html
第一步:熟悉8位mcu個(gè)人的看法是,學(xué)習(xí)嵌入式的技術(shù)有個(gè)脈絡(luò):8位mcu(51或者avr...)+can2.0B+arm7+arm9,學(xué)習(xí)的時(shí)候可以按照這個(gè)脈絡(luò)來(lái)進(jìn)行;
作為低端的嵌入式系統(tǒng),選擇8位mcu作為入門是比較適中的,而8位mcu中,相比pic、avr、freescale等等8位單片機(jī)來(lái)說(shuō),又以選擇51核的單片機(jī)作為學(xué)習(xí)8位mcu的首選來(lái)更加合適。當(dāng)然這個(gè)觀點(diǎn)是仁者見仁智者見智;如果需要理由的話,那么也許以下這些理由可以作為參考:
1. 51上積累了大量的優(yōu)秀的代碼和其它資源;網(wǎng)絡(luò)上這樣的資源太多了,幾乎就是不花錢的;
2.生產(chǎn)51內(nèi)核的單片機(jī)的廠家很多,比如:ATMEL、華邦、LG、飛利浦、STC(宏晶科技)、TI、…
3. 51單片機(jī)在細(xì)分低端市場(chǎng),面向不同的行業(yè)應(yīng)用,廠家推出了不同的產(chǎn)品,如LPC900系列,STC的12CXXXX系列;在功能、價(jià)格、功耗,體積,封裝、抗干擾等方面來(lái)滿足行業(yè)用戶的需求;例如,現(xiàn)在的51單片機(jī)越來(lái)越多的集成了A/D、D/A、SPI、I2C、PWM、內(nèi)部時(shí)鐘、看門狗、eeprom、ISP/IAP等等,已經(jīng)跟傳統(tǒng)的ATMEL的89C51/52有了很大的差別!功能越來(lái)越強(qiáng)大的同時(shí)成本越來(lái)越低,而且不擔(dān)心某個(gè)廠家缺貨...
4. 。。。。(還在不斷增加之中)
第二步:熟悉can2.0A/B,在精通51的基礎(chǔ)上,熟悉can2.0A/B
為什么是canbus而不是modbus bus、bitbus?
CAN是德國(guó)Bosch 公司為解決現(xiàn)代車輛中眾多的控制和數(shù)據(jù)交換問題,開發(fā)出一種CAN(Controller Area Network)現(xiàn)場(chǎng)總線通信結(jié)構(gòu)。其主要特點(diǎn)是:
1. 8字節(jié)的短幀傳送,故傳輸時(shí)間短、抗干擾性強(qiáng);
2. 高速,最高速度可達(dá)1Mbit/s;
3.多主方式,多主之間又可以分成是主節(jié)點(diǎn)和次節(jié)點(diǎn);各節(jié)點(diǎn)均可在任意時(shí)刻主動(dòng)向網(wǎng)絡(luò)上的其他節(jié)點(diǎn)發(fā)送信息,不分主從,通信靈活;發(fā)送的時(shí)候總線自動(dòng)仲裁主次;主節(jié)點(diǎn)占有優(yōu)先權(quán);
4. 可以做到全區(qū)廣播、分區(qū)廣播和點(diǎn)對(duì)點(diǎn)通訊;
5. Can控制器自動(dòng)過濾幀號(hào)不符的幀;大大減輕了CPU的負(fù)擔(dān);
6.具有多種錯(cuò)誤校驗(yàn)方式如CRC及其他校驗(yàn)措施,數(shù)據(jù)出錯(cuò)率極低;而且在嚴(yán)重錯(cuò)誤的情況下,節(jié)點(diǎn)會(huì)自動(dòng)離線,避免影響總線上其它節(jié)點(diǎn);Rs485經(jīng)常是一個(gè)節(jié)點(diǎn)影響了總線上所有的節(jié)點(diǎn);
7. 采用無(wú)損壞的仲裁技術(shù);
作為一種技術(shù)先進(jìn)、可靠性高、功能完善、成本合理的遠(yuǎn)程網(wǎng)絡(luò)通訊控制方式,CAN總線已被廣泛應(yīng)用于各個(gè)行業(yè)之中。大致有以下這些行業(yè):
1、 汽車電子
2、 自動(dòng)控制
3、 智能大廈
4、 電子系統(tǒng)
5、 紡織
6、 智能儀表
7、 醫(yī)療系統(tǒng)
8、 電梯
9、 安防監(jiān)控
10、 電源
11、 運(yùn)動(dòng)控制
12、 …等各領(lǐng)域中,取代了原來(lái)的落后的RS485的通訊方式。bitbus/modbus在物理層上都是Rs485的。
第三步:熟悉ARM7,掌握ARM這個(gè)超級(jí)單片機(jī)(32位)
三、 直奔主題 - 不要穿著棉襖洗澡
學(xué)什么很重要,沒有必要穿著棉襖洗澡,直奔主題,要學(xué)就學(xué)最有用的東西。
比如單片機(jī),學(xué)什么型號(hào)?市場(chǎng)上的單片機(jī),有51、AVR、PIC、freescale等不同的系列,把任何一款單片機(jī)學(xué)會(huì)了玩通了那都是很不錯(cuò);
但是我個(gè)人認(rèn)為還是51系列的單片機(jī)在中國(guó)使用最多,去中發(fā)問問哪款單片機(jī)出貨量最大就知道啦;
據(jù)說(shuō)有些大學(xué)現(xiàn)在還在教授Z80,在論壇上爭(zhēng)論起來(lái),有些人支持,有些人反對(duì);支持的人認(rèn)為這是一款很好的原型機(jī),可以學(xué)到很多計(jì)算機(jī)的原理;
但是對(duì)于嵌入式系統(tǒng)的學(xué)習(xí)者,一款已經(jīng)過時(shí)的技術(shù)學(xué)它做什么?難道學(xué)了不能致用是對(duì)的?
學(xué)習(xí)51不也一樣能了解計(jì)算機(jī)的基礎(chǔ)知識(shí)?而學(xué)好了51畢業(yè)出去就能生存;
大家都知道485總線要想可靠工作非專家不可,而現(xiàn)在canbus作為更加可靠性能更加卓越的總線技術(shù),節(jié)點(diǎn)數(shù)量每年遞增;可以說(shuō),51+canbus能夠讓你如虎添翼;
那么,是不是去學(xué)習(xí)canbus要能獲得更加遠(yuǎn)大的前途而不必在485上浪費(fèi)寶貴的青春?答案顯然是前者。
畢業(yè)之前的大學(xué)n年+畢業(yè)設(shè)計(jì)就是為了邁出就業(yè)的第一步;第一步很重要。
人生不要有斷點(diǎn),一步接著一步,現(xiàn)在邁出的一步就是為了下一步做好準(zhǔn)備,甚至為了比較長(zhǎng)遠(yuǎn)的以后
總結(jié)
- 上一篇: 如何知道远程电脑某一端口是否打开?
- 下一篇: XP系统,CMD窗口总是只显示最后一屏的