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