㈠ 嵌入式新手入門最佳視頻教程
光碟詳細內容
嵌入式新手入門最佳視頻教程
一、光碟01
1.軟體視頻包-嵌入式linux軟體開發入門培訓視頻.iso
共有46個視頻,介紹嵌入式linux入門需要掌握的基礎知識,包括linux的基礎知識,shell基礎,vi編輯器,包括嵌入式linux的C語言編程,非常詳細,非常精闢,我當初剛出學校做嵌入式的時候,就是看這個視頻的。
2.軟體視頻包-嵌入式系統30學時.iso
共有16個視頻,講述嵌入式系統概述,還有基本概念,嵌入式微處理器及ARM體系結構,已經嵌入式系統的基本硬體知識,嵌入式實時操作系統的介紹,介紹us, os-II,介紹嵌入式wince,linux等操作系統。
3.軟體視頻包-嵌入式系統設計培訓教程.iso
共有25個視頻,講述嵌入式系統硬體和軟體的知識,嵌入式系統的基本知識,講述嵌入式軟體和硬體的協同設計,最後還講述了U-BOOT程序設計,MP3播放器的設計。
4.軟體視頻包-計算機系統結構和匯編培訓.iso
共有51個視頻,將計算機系統結構和匯編語言程序設計,對於以後進行底層的開發很有幫助。
二、光碟02
5.軟體視頻包-底層內核和驅動培訓視頻.iso
共有28個視頻,講述linux內核介紹,內核的源代碼結構,如何編譯和配置內核,如何開發內核模塊,內核的啟動流程分析,內核的內存管理,進程內存空間管理,linux2.6內存管理和分配,內核的鏈表操作,包括一些內核的實驗。
驅動部分講述字元設備驅動程序和字元驅動例子解析,驅動調試技術,並發控制技術,Ioctl的實現,驅動如何訪問硬體,中斷處理,LED驅動程序設計,等待隊列,阻塞,Poll方法實現,時間度量,內核定時器,網路體系架構,網卡驅動設計,觸摸屏驅動分析等等。
三、光碟03
6.軟體視頻包-linux系統編程培訓教程.iso
共有22個視頻,講述基於linux系統的編程,裡面介紹很多linux實例代碼的分析,非常不錯。
7.軟體視頻包-嵌入式系統及應用開發培訓視頻.iso
共有40個視頻,講述嵌入式系統結構、外設驅動和應用開發調試技術,嵌入式系統開發模式,嵌入式硬體開發,實時/嵌入式系統開發方法,還講述了嵌入式系統硬體結構,嵌入式處理器,ARM介紹,片內周邊電路,外圍電路,外設等等。
四、光碟04
8.軟體視頻包-嵌入式培訓視頻1.iso
這是RetHat的企業安裝盤,還有samba安裝方法介紹,適合新手學習,還有包括linux命令,腳本,Makefile和GCC的材料。
五、光碟05
9.軟體視頻包-linux內核編程初級班培訓教程.rar
共有30個視頻,都是基於代碼分析的,講述linux內核的基礎知識,匯編及保護模式,linux內核體系結構,linux引導程序分析,linux內核代碼分析,linux塊設備驅動程序分析。
10.軟體視頻包-嵌入式培訓視頻2.iso
共 有20個視頻,講述linux文件編程,庫函數方式訪問文件,系統調用方式訪問文件,時間編程,進程式控制制理論,進程創建,進程等待,進程通訊概述,管道通 訊,信號通訊,共享內存通訊,消息隊列,信號量,線程創建,線程等待與清除, ARM概述, mini2440, ARM寄存器, ARM定址方式, ARM指令1, ARM指令2.
六、光碟06
11.軟體視頻包-嵌入式培訓視頻3.iso
共有 20個視頻,講述內核簡介,Linux內核源代碼,Linux內核配置與編譯,內核模塊-1,內核模塊-2,Linux內存管理,Linux進程與內核地 址空間,Linux內核鏈表,內核定時器,內核進程,進程調度,系統調用,Proc文件系統,異常分析,交叉工具鏈,嵌入式系統構 建,bootloader介紹,Uboot簡介,UBoot命令,Uboot移植。
七、光碟07
12.軟體視頻包-嵌入式培訓視頻4.iso
共 有25個視頻,講述Linux驅動程序介紹,字元設備驅動,簡單字元設備驅動實例分析,並發控制,Ioctl設備控制,內核等待隊列,阻塞型字元設備驅 動, poll設備方法,自動創建設備文件, mmap設備方法,硬體訪問, LED驅動程序,匯流排,設備,驅動, platform驅動,中斷處理程序,按鍵驅動,網卡驅動程序設計, CS8900A網卡驅動程序分析,輸入子系統,觸摸屏驅動程序, PCI匯流排, PCI驅動程序設計,串口驅動程序,
八、光碟08
13.軟體視頻包-中嵌培訓視頻1
共有21個視頻,如圖1
九、光碟09
14.軟體視頻包-中嵌視頻2
共有22個視頻,如圖2,
十、光碟10
15.軟體視頻包-中嵌視頻3
共有26個視頻,包括課件
十一、光碟11
1.軟體視頻包-linux內核編程高級班培訓教程.rar
共有29個視頻,詳細介紹2.6內核的代碼,非常不錯,如果想學習內核,值得推薦!
2.硬體視頻包-CPLD系統設計和VHDL語言培訓教程
共有10個視頻,介紹CPLD系統設計和VHDL的程序設計,包括視頻和課件還有相關的資料。
3.硬體視頻包-電路分析培訓教程
共有30個視頻,詳細的介紹了電路分析,電路原理。
4.軟體視頻包-ARM S3C44B0 嵌入式微處理器原理及應用
共 有48個視頻,主要內容包括:嵌入式系統基礎知識、嵌入式交叉編譯環境與嵌入式開發環境的搭建、基於Linux的嵌入式軟體開發流程、MiniGUI應用 程序設計、嵌入式資料庫應用、Qt圖形界面應用程序開發。《嵌入式系統開發基礎——基於ARM微處理器和Linux操作系統》涉及嵌入式系統從底層驅動到 頂層應用的各個部分,配合實驗操作循序漸進地幫助讀者完成各個章節內容的學習,引領初學者順利進入嵌入式世界。
十二、光碟12
5.硬體視頻包-單品機經典培訓教程01-11
共有11個視頻,講述單片機的基本所有的內容,老師現場寫代碼,非常棒,可以從一個完全不懂單品機的人到熟悉單品機,到單片機編程,為以後ARM編程打好基礎!
十三、光碟13
6.實踐開發包-ARM 2410開發板資料.zip
包括用戶手冊,網上資料,晶元手冊,目標代碼和支持包,USB 驅動程序,原理圖,裡面還有實驗的指導,很好!
7.實踐開發包-ARM FS44B0開發板資料.zip
包括用戶手冊,ADS120評估板,BOIS和測試程序的源代碼,uCLinux代碼和編譯工具,晶元手冊,目標代碼和支持包,USB 驅動程序,原理圖,裡面還有實驗的指導,很好!
8.硬體視頻包-計算機電路基礎培訓教程.iso
共有14個視頻,講述計算機的電路基礎,適合初學者入門。
9.硬體視頻包-PCB設計培訓教程 Altium Designer
共有14個視頻,講述Altium Designed,電子設計基礎知識,原理圖初步設計,進階,提高,深入,pcb庫的設計,集成庫的作用和製作,pcb設計初步,PCB設計提高,PCB深入。
10.硬體視頻包-單品機經典培訓教程12-13
接光碟12
十四、光碟14
11.實踐開發包-ARM 6410開發板資料.rar
這是我們購買了一塊7000元的開發板配套的完整資料,包括開發套件源代碼壓縮包,套件使用手冊、CPU及其它各種晶元的datasheet,開發板電路圖,模擬器的驅動文件及說明文檔等等。
12.實踐開發包-MIPS CPU開發板資料.rar
這是我們購買了一塊3000元的開發板配套的完整資料,現在市場上 MIPS的開發板非常少,當然資料更少了。包括整套的文檔,軟體和硬體所有的資料,包括工具。
13.實踐開發包-USB實踐開發包.iso
關於USB的實踐開發包,裡面有介紹關於U盤和MP3的工具,軟體的程序,硬體的原理圖,製作的工具,和相關的資料手冊。
14.實踐開發包-嵌入式linux網路的遠程式控制制開發包.iso
關於嵌入式linux網路遠程式控制制的實踐開發包,裡面有詳細的一步步圖文操作的電子書,軟體的程序,硬體的原理圖,製作的工具,和相關的工具。
15.實踐開發包-電子相冊開發包.iso
關於電子相冊的實踐開發包,裡面有詳細的配套說明和實驗指導書,軟體的程序,硬體的原理圖,製作的工具,和相關的工具。
16.行業視頻包-MTK手機開發培訓.iso
介紹MTK的資料,有10個視頻教程,還包括新手如何學習MTK手機開發的資料,MTK開發平台大集合,入門導讀,全套資料,MMI的資料等等。
17.行業視頻包-VOIP視頻教程
共有12個視頻,介紹VOIP網路電話開發,非常不錯,這對以後找這方面的工作非常有幫助,是高薪的行業。
十五、光碟15
18.開發工具包-Wince開發平台platform builder5.0
這是platform builder 5.0的安裝包,可以基於它開發 wince.
十六、光碟16
19.電子書籍包.iso
這是我們多年來積累的電子書籍,是你學習嵌入式的不可多得的材料,太多經典的教材,太多經典的好文章,一定會讓你流連忘返!共有近900本關於嵌入式的電子書籍,覆蓋了嵌入式方方面面的內容!
20.開發工具包-安裝好的fedora9
已經安裝好的Fedora(一種基於linux的操作系統和平台,,從硬碟直接可以拷貝到硬碟linux,方便linux初學者免去安裝linux的麻煩。
㈡ 找人同去至芯科技FPGA培訓的就業班,有嗎
我要去至芯科技FPGA培訓的就業班,試聽過,很不錯
㈢ 請問:上海的嵌入式工程師培訓機構怎麼樣啊
主要針對入行沒多久的新人。其實成功沒有捷徑,所以打好基礎才是關鍵。嵌入式開發要學什麼主要包含以下4個方面的內容
㈣ 想要學習vxworks操作系統沒太多基礎,應該怎麼學
軍工單位還是研究所??我覺得關鍵還是要學有所用,那樣才快,Vx不需要太多基礎,入門比較簡單,想深入是要花費時間的,它和linux一樣,字元界面,不過也有區別,它的實時性非常強。結合工作方向選一本入門書先看看,其實會用是很簡單的。good luck to you!
㈤ 怎麼學習嵌入式系統開發
推薦到華清遠見的網站上了解嵌入式學習的課程設置和相關書籍。
如果是希望向嵌入式軟體方向發展的話,目前最常見的是嵌入式Linux方向,關於這個方向,我認為大概分3個階段:
1、嵌入式linux上層應用,包括QT的GUI開發
2、嵌入式linux系統開發
3、嵌入式linux驅動開發
嵌入式目前主要面向的幾個操作系統是,LINUX,WINCE、VxWorks等等
Linux是開源免費的,而且其源代碼是開放的,更加適合我們學習嵌入式。
所以你可以嘗試以下路線:
(1) C語言是所有編程語言中的強者,單片機、DSP、類似ARM的種種晶元的編程都可以用C語言搞定),因此必須非常熟練的掌握。
推薦書籍:譚浩強的很不錯,《The C Programming Language》 這本經典的教材是老外寫的,也有中譯版本。
(2) 操作系統原理,是必需的,如果你是計算機專業畢業那也就無所謂了,如果是非計算機專業的就必須找一本比較淺顯的計算機原理書籍看一看,把啥叫「進程」「線程」「系統調度」等等基本問題搞清楚。
(3) Linux操作系統就是用C語言編寫的,所以你也應該先學習下Linux方面的編程,只有你會應用了,才能近一步去了解其內核的精髓。
推薦書籍:《UNIX環境高級編程》(第2版)
(4) 了解ARM的架構,原理,以及其匯編指令,我們在嵌入式開發中,一般很少去寫匯編,但是最起碼的要求是能夠看懂arm匯編。
(5) 系統移植的時候,就需要你從最下層的bootloader開始,然後內核移植,文件系統移植等。而移植這部分對硬體的依賴是非常大的,其配置步驟也相對復雜,也沒有太多詳細資料。
(6) 驅動開發
linux驅動程序設計既是個極富有挑戰性的領域,又是一個博大精深的內容。
linux驅動程序設計本質是屬於linux內核編程范疇的,因而是對linux內核和內核編程是有要求的。在學習前你要想了解linux內核的組成,因為每一部分要詳細研究的話足夠可以擴展成一本厚書。
以上只不過是大概的框架,在實際的開發中還會涉及很多東西,比如:交叉編譯、makefile、shell腳本等等,所以說學習嵌入式的周期較長,門檻較高,自學的話更是需要較強的學習能力和專業功底。只要能堅持下來一定會取得成功!
你可以到華清遠見網站上了解更多嵌入式的相關資料。各大書店及圖書館也有華清遠見出版的暢銷嵌入式專業圖書,了解一下相信對你有幫助!
㈥ 如何來學習嵌入式,
在嵌入式軟體方面最重要的課程包括:
(1) 嵌入式微處理器結構與應用:這是一門嵌入式硬體基礎課程,我們說過,嵌入式是軟硬體結合的技術,搞嵌入式軟體的人應對ARM處理器工作原理和介面技術有充分了解,包括ARM的匯編指令系統。若不了解處理器原理,怎麼能控制硬體工作,怎麼能寫出節省內存又運行高速的最優代碼(嵌入式軟體設計特別講究時空效率),怎麼能寫出驅動程序(驅動程序都是與硬體打交道的)?很多公司招聘嵌入式軟體人員時都要求熟悉ARM處理器,將來若同學到公司中從事嵌入式軟體開發,公司都會給你一本該設備的硬體規格說明書 (xxx Specification),你必須能看懂其中的內存分布和埠使用等最基本的說明(就像x86匯編一樣),否則怎麼設計軟體。有些同學覺得嵌入式處理器課程較枯燥,這主要是硬體課程都較抽象的原因。還有同學對ARM匯編不感興趣,以為嵌入式開發用C語言就足夠了。其實不應僅是將匯編語言當成一個程序設計語言,學匯編主要是為了掌握處理器工作原理的。一個不熟悉匯編語言的人,怎麼能在該處理器寫出最優的C語言代碼。在嵌入式開發的一些關鍵部分,有時還必須寫匯編,如Bootloader等(可能還包括BSP)。特別是在對速度有極高要求的場合(如DSP處理器的高速圖像採集和圖像解壓縮),目前還會用到匯編寫程序的,盡管用到的機會相對C要小得多。當你在一個嵌入式公司工作時,在查看描述原理的手冊時,可能很多都是用匯編描述的,這是因為很多硬體設計人員只會寫或者喜歡用匯編描述,此時你就必須看懂匯編程序,否則軟硬體人員可能就無法交流。很多嵌入式職位招聘時都要求熟悉匯編。
(2) 嵌入式操作系統類課程
除了WinCE的實時性稍差外,大多數嵌入式操作系統的實時性都很強,所以也可稱為實時操作系統Real TimeOperating System。從事嵌入式的人至少須掌握一個嵌入式操作系統(當然掌握兩個更好),這在嵌入式的所有技術中是最為關鍵的了。
目前最重要的RTOS主要包括:第一類、傳統的經典RTOS:最主要的便是Vxworks操作系統,以及其Tornado開發平台。Vxworks因出現稍早,實時性很強(據說可在1ms內響應外部事件請求),並且內核可極微(據說最小可8K),可靠性較高等,所以在北美,Vxworks占據了嵌入式系統的多半疆山。特別是在通信設備等實時性要求較高的系統中,幾乎非Vxworks莫屬。Vxworks的很多概念和技術都和Linux很類似,主要是C語言開發。像Bell- alcatel、Lucent、華為等通信企業在開發產品時,Vxworks用得很多。但Vxworks因價格很高,所以一些小公司或小產品中往往用不起。目前很多公司都在往嵌入式Linux轉(聽說華為目前正在這樣轉)。但無論如何,Vxworks在一段長時間內仍是不可動搖的。與Vxworks類似的稍有名的實時操作系統還有pSOS、QNX、Nucleus等RTOS。
第二類、嵌入式Linux操作系統:Linux的前途除作為伺服器操作系統外,最成功的便是在嵌入式領域的應用,原因當然是免費、開源、支持軟體多、呼擁者眾,這樣嵌入式產品成本會低。Linux本身不是一個為嵌入式設計的操作系統,不是微內核的,並且實時性不強。
目前應用在嵌入式領域的Linux系統主要有兩類:一類是專為嵌入式設計的已被裁減過的Linux系統,最常用的是uClinux(不帶MMU功能),目前占較大應用份額,可在ARM7上跑;另一類是跑在 ARM 9上的,一般是將Linux 2.4.18內核移植在其上,可使用更多的Linux功能(當然uClinux更可跑在ARM 9上)。很多人預測,嵌入式Linux預計將占嵌入式操作系統的50%以上份額,非常重要。缺點是熟悉Linux的人太少,開發難度稍大。另外,目前我們能發現很多教材和很多大學都以ucOS/II為教學用實時操作系統,這主要是由於ucOS/II較簡單,且開源,非常適合入門者學習實時操作系統原理,但由於ucOS/II功能有限,實用用得較少。況且熟悉了Linux開發,不僅在嵌入式領域有用,對開發Linux應用軟體,對加深操作系統的認識也有幫助,可謂一舉多得。據我所知,目前Intel、Philip都在大搞ARM+LINUX的嵌入式開發,Fujitum則是在自己的處理器上大搞Linux 開發。目前在嵌入式Linux領域,以下幾個方面的人特別難找,一是能將Linux移植到某個新型號的開發版上;二是能寫Linux驅動程序的人; 三是熟悉Linux 內核裁減和優化的人。不過LINUX有一個硬傷,就是沒有WINDOWS那樣的友好方便美觀的交互界面,不然微軟帝國早就守不住了。
第三類、 Windows CE嵌入式操作系統:Microsoft也看準了嵌入式的巨大市場,MS永遠是最厲害的,WinCE出來只有幾年時間,但目前已佔據了很大市場份額,特別是在PDA、手機、顯示儀表等界面要求較高或者要求快速開發的場合,WinCE目前已很流行(據說有一家賣工控機的公司板子賣得太好,以至來不及為客戶裁減WinCE)。WinCE目前主要為4.2版(.NET),開發平台主要為WinCE Platform Builder,有時也用EVC環境開發一些較上層的應用,由於WinCE開發都是大家熟悉的VC++環境,所以我院學過Windows程序設計課程的同學都不會有多大難度,這也是WinCE容易被人們接受的原因,開發環境方便快速,微軟的強大技術支持,WinCE開發難度遠低於嵌入式Linux。對於急於完成,不想拿嵌入式Linux冒險的開發場合,WinCE是最合適了(找嵌入式Linux的人可沒那麼好找的),畢竟公司不能像學生學習那樣試試看,保證開發成功更重要。根據不同的側重點 ,WinCE還有兩個特殊版本,一個是MS PocketPC操作系統專用於PDA上(掌上電腦),另一個是MS SmartPhone操作系統用於智能手機上(帶PDA功能的手機),兩者也都屬於WinCE平台。在PDA和手機市場上,除WinCE外,著名的PDA 嵌入式操作系統還有Palm OS(因出現很早,很有名)、Symbian等,但在WinCE的強勁沖擊下,Palm和Symbian來日還能有多長?同學學過VC++後再學 WinCE,非常方便自然,通過學習WinCE同樣也可了解嵌入式軟體的一般開發過程,對Linux有懼怕心理的同學也很合適。很顯然,嵌入式Linux 永遠不可能替代WinCE,而且將來誰占份額大還很難講,畢竟很多人更願意接受MS的平台,就像各國政府都在大力推LINUX已好長時間,但你能看到幾個在PC機上真正使用LINUX的用戶?據我觀察,目前在嵌入式平台上,LINUX是叫得最響,但還是WinCE實際用得更多。嵌入式LINUX可能更多地是一些有長遠產品計劃的公司,為降低成本而進行長遠考慮。WinCE和多媒體(如MPEG技術)是微軟亞洲工程院目前做得較多的項目領域之一,現在社會很需要精通WinCE的人。現在有WINCE的智能手機,金山詞霸、WORD、EXCEL、REGEDIT等居然都有 smartphone版的,PC上的MP3、DOC等居然在download時都可被自動轉換成smartphone格式,很爽的。完全可用 Windows CE自己開發一些需要的程序download到自己的手機上。現在市面銷售PDA智能手機火爆,MS總是財源滾滾。
總結關於嵌入式操作系統類課程,若你覺得自己功底較深且能鑽研下去,則可去學嵌入式Linux;若你覺得自己VC++功底較好且想短平快地學嵌入式開發,自學WINCE是非常好的選擇。
(3) 嵌入式開發的相關領域
搞嵌入式若能熟悉嵌入式應用的一些主要領域,這樣的人更受企業歡迎。主要的相關領域包括:
A、數字圖像壓縮技術:這是嵌入式最重要最熱門的應用領域之一,主要是應掌握MPEG編解碼演算法和技術,如DVD、MP3、PDA、高精電視、機頂盒等都涉及MPEG高速解碼問題。
B、通信協議及編程技術:這包括傳統的TCP/IP協議和熱門的無線通信協議。首先,大多數嵌入式設備都要連入區域網或Internet,所以首先應掌握 TCP/IP協議及其編程,這是需首要掌握的基本技術;其次,無線通信是目前的大趨勢,所以掌握無線通信協議及編程也是是很重要的。無線通信協議包括無線區域網通信協議802.11系列,Bluetooth,以及移動通信(如GPRS、GSM、CDMA等)。
C、網路與信息安全技術:如加密技術、數字證書CA以及各種網路安全設備,包括硬體防火牆、入侵檢測IDS、還有防毒牆、IPS等,中國在這方面還是沒有自己優勢的,我們陳院長好象正在往這方面發展。
D、 DSP技術:DSP是Digital Signal Process數字信號處理的意思,DSP處理器通過硬體實現數字信號處理演算法,如高速數據採集、壓縮、解壓縮、通信等。數字信號處理是電子、通信等硬體專業的課程,對於搞軟體的人若能了解一下最好。目前DSP人才較缺。如果有信號與系統、數字信號處理等課程基礎,對於學習MPEG編解碼原理會有很大幫助。
(4)嵌入式開發的相關硬體基礎
對於軟體工程專業的學生,從事嵌入式軟體開發,像數字電路、計算機組成原理、嵌入式微處理器結構等硬體課程是較重要的。另外,匯編語言、C/C++ 數據結構演算法、特別是操作系統等軟體基礎課也是十分重要的。我們的主要目地是能看懂硬體工作原理,但重點應是在嵌入式軟體,特別操作系統級軟體,那將是我們的優勢。我們的研究生里有些是學電子、通信類專業過來的,有較好的模擬電路和單片機基礎,學嵌入式非常合適。
嵌入式本身就是從單片機發展過來的,只是單片機不帶OS,而現在很多嵌入式應用越來越復雜,以至不得不引入嵌入式操作系統。另外,為追求更高速的信號處理速度,現在在一些速度要求較高場合,有不少公司是將一些DSP演算法,如MPEG壓縮解壓縮演算法等用硬體來實現,這就涉及到HDL數字電路設計技術及其 FPGA/IP核實現技術,這方面的人目前市場上也很缺。
關於嵌入式領域內的相關專業問題,建議LZ可以到華清遠見的網站上了解一下,上面有詳細的嵌入式方面的信息,可在線看一下華清的視頻講座或教程,了解嵌入式的關鍵技術點,更好的向嵌入式方向發展,另外,各大書店及圖書館也有華清遠見出版的暢銷嵌入式專業圖書,了解一下相信對你會有幫助。
希望我的回答對你有幫助。
㈦ 現在學一門實時操作系統,VxWorks怎麼樣 還是 uc/osII系統
這個是最穩定的操作系統了,美國火星車上跑得就是這個,ucos是比較基礎的,還是先消息隊列,進程基礎的東西學好就好。
㈧ 請推薦一些關於vxworks的資料或視頻,謝謝了
有vxworks編程指南,BSP開發人員指南等,可以到一些嵌入式網站,比如tony嵌入式,CSDN上看看,有專門的論壇。
㈨ 關於《深入淺出玩轉FPGA視頻學習課程》特權同學 有疑問 求教
我是自學的FPGA,我認為學習靠的是堅持,打好基礎很重要。再為自己定一個學習目標,就OK啦!
如何兼顧學習ARM與FPGA!(2009-03-12 11:38:38)轉載標簽: 就業fpga數字電路模擬電路c語言教育
對於初學者來說,要學的知識點很多,到底從哪裡下手,人們常常感到非常迷茫。
大一學生先從C語言開始入門,在大一階段由於對計算機還非常陌生,因此不可能寫出一個具有完整圖形界面的軟體,重點以「與硬體無關的計算方法、數據結構」為基礎學習C語言,至少練習編寫一萬行C代碼,否則不會找到編程的感覺,也體會不到編程樂趣,很多人就是因為缺乏一定量的訓練,所以對編程沒有興趣,以至於未到畢業時就全部忘記了,程序設計是一項實踐性很強的實踐活動,沒有大量的實踐作為基礎是很難入門的,因此我認為編寫一萬行代碼是判定是否入門的依據。請初學者記住:當你編寫了一萬行代碼時,這是你能夠從事專業的開始,否則你不要期望在這個領域混下去。與此同時,C語言也是學習和使用Verilog的重要基礎,所以千萬不可小視C語言。更重要的是,如果你的C語言不好的話,你將來就業選擇的路子就會受到很大的限制,要麼只能做硬體工程師、銷售工程師或者轉行,別無選擇!
有了一萬行編程的經驗後,大二接著開始學習數字電路和模擬電路了,這是你的機會!將來的開發工作有幾種選擇,但這兩門都很重要,學好了你有可能成為頂尖的高手、專家和系統級水平的人才,即便學得不太好,你也有可能成為一個優秀的工程師。前一篇博文講了,如果你精通了C/C++,即便你的硬體水平一般,你也可以成為一個優秀的開發工程師,即由硬體工程師負責邏輯電路和模擬電路的設計,由你來編程——你可以編寫基於WinCE、Linux、Vxworks或者Windows等操作系統的程序。那麼怎樣才算基本上「精通」呢?至少編寫五萬行代碼,當你已經編寫了10萬行代碼時,可以說你已經完全精通了,這個時候你如果有很大的造化的話,那完全取決於你當初學習的基礎是否牢固了。所以我在前面提到了,精通一門可以成為優秀的開發工程師,但絕對不可能成為系統級的開發工程師,因為你的知識結構不行。
最好在學習數字電路時購買一個99元的EasyFPGA030開發學習板,這個板子是我們開發的,但這個價格是沒有利潤的,不要認為我是在做推銷,我們推出這個產品完全是針對大二學生的,希望有更多的大二學生提早醒悟,能夠在學習數字電路時同步學習FPGA和Verilog,強化課程之間的關聯。筆者雖然是一個企業家,但也有一份愛心和社會責任感,為社會做出自己的貢獻同樣也是企業家的「銷售業績」,我們為這個開發板撰寫了30萬字的配套資料和適合各種水平的範例,也投入了大量的精力錄制Verilog語言視頻講座,這些都是超值和免費的。與此同時從2009年開始著手針對大二和大三學生舉辦FPGA大賽,以提高在校大學生的興趣,讓那些覺悟者進一步提高自信心,找到自己未來的坐標。學好數字電路和模擬電路以及FPGA應用技術,除了成為電子產品開發工程師之外(高附加值的嵌入式系統產品幾乎離不開FPGA),還有一個就業方向就是號稱「金飯碗」的集成電路設計。
作為初學者,在學習《電子技術基礎(數字部分)》時同步學習FPGA與Verilog技術的重點是快速入門和打下一定的基礎,根據配套的教材和數字電路教材的內容將基本的數字電路用FPGA實現即可,這是本階段的學習目標,不要將學習高深難度的應用技術作為重點。並利用課余和暑假期間的空餘時間,將一些圖書上現成的使用數字電路實現的例子用FPGA來完成設計即可,比方如何使用FPGA 實現一個計數器,並動手做出來。到大三階段在做出選擇,到底是選擇成為一個專業的FPGA應用設計工程師、還是嵌入式系統與FPGA混合應用系統設計工程師或集成電路開發工程師,以自己的興趣和志向為基礎而定,所以在學習嵌入式系統技術的同時學習FPGA,兩者之間並不矛盾。
最好在大一開始學習單片機,這就是筆者為何撰寫《新編電類專業計算機基礎》這本圖書的原因(詳見破解電類專業「就業難、人才荒」的解決方案!(4))。因為大一不學習單片機,後面的課程都沒有辦法學好。對於大一學習單片機,很多老師不去用心研究學習方法和教學規律,反而搬出一大堆理由來「嚇唬」人。筆者當年僅僅是一個技校生,在完全沒有指導老師的情況下,也找不到可以參考的技術資料,只是憑著偶爾看到一篇報道羅伯特設計的Altair 8800計算機就做出了一台不需要工作軟體的計算機(改進型的Altair-80C31電路詳見《新編電類專業計算機基礎》教材)。要相信現在公開的信息、資訊條件、人們的聰明智慧與教師的力量,因此大學本科生在大一階段學會單片機是非常容易的一件事情。
有了單片機基礎之後,在大二階段學習數字電路與模擬電路的同時,結合單片機學習介面擴展技術與模擬前向通道數據採集技術,並編寫相應的程序實現一個一個的小系統設計,大三時根本不再需要學習所謂的介面技術與微機原理了。針對數字電路與模擬電路筆者准備寫作一套小系統設計與製作配套圖書,將前後之間的課程也同步和關聯起來,期望進一步提高大學生的動手能力。
有了大一、二階段強化訓練,後續的很多課程度可以理論與實踐並重地學習,比方目前大學開設的《自動控制理論》幾乎都是空對空地教學與聯系,如果結合自動控制理論的教學,讓學生學習設計一個自動穿越迷宮的電腦鼠,並舉辦相應的大賽,則能夠很好地將嵌入式系統應用技術、數字電路與模擬電路、計算方法與數據結構、機構設計......相關課程有機地結合起來,學生的興趣將大大地得到提高。
當學生有了學習的興趣和動力之後,教學勢必由老師個人在課堂上演「獨角戲」的場面轉變為研討會,學生也一定會竭盡全力由被動學習向主動學習轉變,這就是教育要達到的目標,所以我們不能一味地指責學生不好學。作為老師我們一定要思考和拿出行動,讓學生喜歡並願意向您學習。事實上學生的未來完全取決於老師的引導,現在教師隊伍存在的很大毛病就是將責任推向擴招和學生不好好學,擴招有沒有問題?當然有,但作為教師我們做得怎麼樣呢?我們是否在教學上做出了巨大的努力,這需要我們捫心自問。
學生不好好學,這也是事實!但也是表象,我們要思考他們為什麼不好好學習?我們應該怎樣才能讓他們好好地學?作為老師,第一不能給學生劃定考試范圍,第二學生缺課要堅決扣分,如果做到這兩點基本的要求,學生不好好學就制度處理,我想效果會有很大的改變。當然就業難的責任也不能完全推給老師,但老師們應該做到自己該做到的,因為家長都希望老師們對他們的子女嚴格要求,更迫切的需求就是讓他們的子女學到真本事,他們肯定支持教師的行動。
進入大三階段則需要有選擇地重點學習嵌入式操作系統原理與編程、嵌入式系統與FPGA的混合系統設計或者全力以赴鑽研FPGA應用技術等技術方向,大四階段就可以真刀真槍地完成一個漂亮的畢業設計,並能夠寫出一篇比碩士水平還要高的論文。
㈩ 請大家推薦好的嵌入式系統教材和視頻!
嵌入式的發展前景,不言而喻,就說我們經常接觸的消費類電子,手機、MP4這些設備,都集成了各種功能,多點觸摸,重力感測,嵌入式操作系統,WiFi等等,都是用高性能的嵌入式CPU來實現的。其他領域應用也是非常多的,如工業控制,醫療設備等。
嵌入式學習是一個循序漸進的過程,如果是希望向嵌入式軟體方向發展的話,目前最常見的是嵌入式Linux方向,關於這個方向,我認為大概分3個階段:
1、嵌入式linux上層應用,包括QT的GUI開發
2、嵌入式linux系統開發
3、嵌入式linux驅動開發
嵌入式目前主要面向的幾個操作系統是,LINUX,WINCE、VxWorks等等
Linux是開源免費的,而且其源代碼是開放的,更加適合我們學習嵌入式。
所以你可以嘗試以下路線:
(1) C語言是所有編程語言中的強者,單片機、DSP、類似ARM的種種晶元的編程都可以用C語言搞定),因此必須非常熟練的掌握。
推薦書籍:《The C Programming Language》 這本經典的教材是老外寫的,也有中譯版本。
(2) 操作系統原理,是必需的,如果你是計算機專業畢業那也就無所謂了,如果是非計算機專業的就必須找一本比較淺顯的計算機原理書籍看一看,把啥叫「進程」「線程」「系統調度」等等基本問題搞清楚。
(3) (3)Linux操作系統就是用C語言編寫的,所以你也應該先學習下Linux方面的編程,只有你會應用了,才能近一步去了解其內核的精髓。
推薦書籍:《UNIX環境高級編程》(第2版)
(4) 了解ARM的架構,原理,以及其匯編指令,我們在嵌入式開發中,一般很少去寫匯編,但是最起碼的要求是能夠看懂arm匯編。
(5) 系統移植的時候,就需要你從最下層的bootloader開始,然後內核移植,文件系統移植等。而移植這部分對硬體的依賴是非常大的,其配置步驟也相對復雜,也沒有太多詳細資料。
(6) 驅動開發
linux驅動程序設計既是個極富有挑戰性的領域,又是一個博大精深的內容。
linux驅動程序設計本質是屬於linux內核編程范疇的,因而是對linux內核和內核編程是有要求的。在學習前你要想了解linux內核的組成,因為每一部分要詳細研究的話足夠可以擴展成一本厚書。
以上只不過是大概的框架,在實際的開發中還會涉及很多東西,比如:交叉編譯、makefile、shell腳本等等,所以說學習嵌入式的周期較長,門檻較高,自學的話更是需要較強的學習能力和專業功底。只要能堅持下來一定會取得成功!
如果之前基本沒接觸過嵌入式技術的話,建議你去參加嵌入式培訓系統的學習這方面的知識,對你以後的就業發展很有好處的,建議你在線看一下千鋒嵌入式培訓學院相關嵌入式技術專題的視頻,先對這個行業有更多了解,具體知道關鍵的技術點,更好地往這個方向發展。另外,千鋒嵌入式培訓學院從06年起陸續出版的四十多本暢銷嵌入式專業教材,各大書店和圖書館都有,你可以網路一下「千鋒嵌入式培訓學院」 了解更多嵌入式行業的相關信息。