嵌入式開發(fā)中常用的軟件架構(gòu) 學好嵌入式必須要學的課程有什么?比如c?
學好嵌入式必須要學的課程有什么?比如c?謝謝邀請。這個問題相信是所有嵌入式初學者的難題。下面這一課是嵌入式學習的必備:C語言C操作系統(tǒng)計算機組成原理linux編程51單片機arm硬件編程語言(FPGA
學好嵌入式必須要學的課程有什么?比如c?
謝謝邀請。
這個問題相信是所有嵌入式初學者的難題。下面這一課是嵌入式學習的必備:C語言C操作系統(tǒng)計算機組成原理linux編程51單片機arm硬件編程語言(FPGA)模擬電路amp數(shù)字電路。
語言,是計算機行業(yè)的必修課,一定要扎扎實實的學。可以安裝turbo c編譯器作為開發(fā)環(huán)境,接觸C語言編程安裝vc 6.0學習C編程。
2.操作系統(tǒng):首先在電腦上安裝一個vmwar《自己動手寫操作系統(tǒng)》寫一個操作系統(tǒng)了。
3、計算機組成原理,熟悉計算機的基本原理,看看一臺計算機的基本組成和里面的軟件是如何運行的。
4、《unix/linux編程實踐教程》可以說是linux編程的必修課,一本非常好的書,初學嵌入式的朋友可以看看。
5.單片機其實就是一臺電腦,像現(xiàn)在的汽車控制,led控制,屏幕亮度控制,都是可以實現(xiàn)的。你可以學到很多別人可以學到的東西。;t.
,現(xiàn)在流行的微機,是32位單片機,也可以運行操作系統(tǒng)。自己嘗試移植一個操作系統(tǒng)。
7、硬件編程語言(FPGA),芯片是怎么做出來的,學了這門課,你就知道了。
8、模擬電路amp數(shù)字電路,硬件的基礎(chǔ),有可能的話學習protel,嘗試自己做一個硬件pcb板。
計算機是一門實踐性很強的課程,所以我們應(yīng)該注重實踐能力。學習嵌入式基礎(chǔ)課程時,可以按以下順序?qū)W習:
1.c語言、計算機組成原理、模擬電路和數(shù)字電路
2.匯編語言,單片機,操作系統(tǒng),c。
3:硬件編程語言,arm
嵌入式開發(fā)可以分為硬件、驅(qū)動、內(nèi)核、應(yīng)用四個方向。如果要向嵌入式軟件方向發(fā)展,目前常見的是
嵌入式Linux ARM的發(fā)展方向可以分為三個階段:
1.嵌入式linux的上層應(yīng)用,包括QT的GUI開發(fā)。
2.嵌入式linux系統(tǒng)的開發(fā)。
3.嵌入式linux驅(qū)動開發(fā)嵌入式系統(tǒng)的主要操作系統(tǒng)有LINUX、WINCE、VxWorks等。Linux開源免費,源代碼開放,更適合我們學習嵌入式系統(tǒng)。
如果自學,可以嘗試以下路線:
(1) C語言是所有編程語言中的強者,比如單片機、DSP以及類似ARM的各種芯片,都可以用C語言編程),所以一定要掌握的非常熟練。推薦書籍:譚浩強 s很好。經(jīng)典教材《《The C Programming Language》》是外國人寫的,也翻譯成了中文。
(2)操作系統(tǒng)的原理是必要的。如果你畢業(yè)于計算機科學專業(yè),它不會。;沒關(guān)系。如果不是計算機專業(yè)的,一定要找一本比較簡單的計算機原理的書,把 "過程與結(jié)果, "線程和和 "系統(tǒng)調(diào)度與管理。
(3) Linux操作系統(tǒng)是用C語言寫的,所以你也要先學習Linux的編程。只有你能應(yīng)用它,你才能更深入地了解它的內(nèi)核的本質(zhì)。推薦書籍:《《UNIX環(huán)境高級編程》》(第二版)
(4)了解arm的架構(gòu)、原理和匯編指令。在嵌入式開發(fā)中,我們很少寫匯編,但最起碼的要求是要能看懂ARM匯編。
(5)移植系統(tǒng)時,需要從較低的bootload
嵌入式驅(qū)動開發(fā)百科?
在嵌入式產(chǎn)品的設(shè)計開發(fā)中,首先需要硬件支持。大多數(shù)嵌入式硬件需要某種軟件來初始化和管理。這類軟件直接與硬件接口并控制硬件,從而很好地與硬件配合,完成相關(guān)功能。一句話,驅(qū)動就是軟件庫,初始化硬件,管理上層軟件對硬件的訪問。是硬件與操作系統(tǒng)、中間件與應(yīng)用層連接的關(guān)鍵。它在嵌入式軟件開發(fā)中起著不可替代的作用。
首先,驅(qū)動是程序員設(shè)計開發(fā)的。由于各種各樣的問題,驅(qū)動程序的開發(fā)面臨著許多挑戰(zhàn)。具體挑戰(zhàn)如下:
(1)市場上的硬件類型很多,不同類型的硬件對設(shè)備驅(qū)動的要求也不同。這就使得對驅(qū)動開發(fā)的需求更多,驅(qū)動開發(fā)的復(fù)雜和繁瑣增加了開發(fā)者的開發(fā)難度。
(2)設(shè)備驅(qū)動通常被認為是面向架構(gòu)的,否則就是通用的。此時,開發(fā)的驅(qū)動程序代碼可以 不要完全一樣。對于不同的架構(gòu),不同的板載硬件,需要配置或者加減一些代碼,使驅(qū)動適合特定的環(huán)境。再加上硬件的多樣性,驅(qū)動開發(fā)者需要編寫和設(shè)計更多的代碼來完善其功能,以便在特定環(huán)境下使用驅(qū)動。