⑴ 從單片機到嵌入式,需要學點啥
在學習嵌入式linux之前,肯定要有C語言基礎。匯編基礎有沒有無所謂(就那麼幾條匯編指令,用到了一看就會)。C語言要學到什麼程度呢?越熟當然越好,不熟的話也要具備基本技能。比如寫一個數組排序、輸入數字求和什麼的。學C語言唯一的方法是多寫程序多練習,編譯出錯沒關系,自己去解決;執行出錯沒關系,自己去分析。以前我是用VC來練習C語言的,經常去嘗試著寫一些C語言競賽的題目。它們是純C、純數學、純邏輯的題目,不涉及界面這些東西,目前來說嵌入式軟體的就業前景很好,創客學院的嵌入式視頻很適合提高你的編程能力。
⑵ 嵌入式方向學習單片機的重點在哪,很多術語都不懂,我想知道我該怎麼學習
是啊!有很多專業名詞,我想知道你現在是什麼水平?
如果你覺得你51單片機和C語言編程已經很好了,而且在單片機外圍編程方面也有很強的實力,比如IIC,EEPROM(這個很重要,不然學起嵌入式來很痛苦);
如果你具備上述技能,而且還有充足的時間,我建議你先看看操作系統原理(LINUX)和數據結構,期間看看一些匯流排結構(比如USB,IIS等);
這樣你可以學習嵌入式了,學習嵌入式有一定的流程,推薦一本好書:ARM9嵌入式系統開發與實踐 作者:王黎明;還有請多看器件文檔,這樣你會收益匪淺;
⑶ 主流的嵌入式單片機有幾種最主要的特點是什麼
arm,mips...這些都是內核,stm32也只是arm裡面cortex-m3內核的晶元,看看內核,看看晶元的參考手冊,基本上就可以入門了。特點太多了,一般手冊裡面的feature就是說的該片子的特點。
⑷ 要往單片機和嵌入式這方面發展必備的知識 或者說我大學期間應該側重學哪方面 哪方面可以放輕松點學
與編程相關的課程、數模電、單片機原理及系統設計,嵌入式開發基礎等等。。單片機,嵌入式屬硬體方向,一般都會涉及控制知識和電路、編程相關知識。
⑸ 嵌入式單片機的簡介
中文名稱:單片機與嵌入式系統
英文名稱:Single Chip Microcomputer & Embedded System 嵌入式系統指的是系統能單獨完成一項功能, 而單片機只是能實現這個目的的一個部分而已。 嵌入式系統是指把一個微處理器「嵌入」到實際的應用系統中從而構成一個嵌入式系統,可分為硬體部分和軟體部分。
其硬體部分主要有以下幾種方式實現:
1.以mpu為核心組成,例如:arm等。
2.以mcu為核心,就是各種各樣的單片機,它主要把處理器和存儲器等部件集成在一塊晶元上。
3.以dsp為核心,主要用來處理語音圖形方面。
4.就是人們所說的sop了。
而軟體部分,有的嵌入式有操作系統,有的沒有。這主要由系統大小來決定。 1.始於微型機時代的嵌入式應用
電子數字計算機誕生於1946年,在其後漫長的歷史進程中,計算機始終是供養在特殊的機房中,實現數值計算的大型昂貴設備。直到20世紀70年代,微處理器的出現,計算機才出現了歷史性的變化。以微處理器為核心的微型計算機以其小型、價廉、高可靠性特點,迅速走出機房;基於高速數值解算能力的微型機,表現出的智能化水平引起了控制專業人士的興趣,要求將微型機嵌入到一個對象體系中,實現對象體系的智能化控制。例如,將微型計算機經電氣加固、機械加固,並配置各種外圍介面電路,安裝到大型艦船中構成自動駕駛儀或輪機狀態監測系統。這樣一來,計算機便失去了原來的形態與通用的計算機功能。為了區別於原有的通用計算機系統,把嵌入到對象體系中,實現對象體系智能化控制的計算機,稱作嵌入式計算機系統。因此,嵌入式系統誕生於微型機時代,嵌入式系統的嵌入性本質是將一個計算機嵌入到一個對象體系中去,這些是理解嵌入式系統的基本出發點。
2.現代計算機技術的兩大分支
由於嵌入式計算機系統要嵌入到對象體系中,實現的是對象的智能化控制,因此,它有著與通用計算機系統完全不同的技術要求與技術發展方向。通用計算機系統的技術要求是高速、海量的數值計算;技術發展方向是匯流排速度的無限提升,存儲容量的無限擴大。而嵌入式計算機系統的技術要求則是對象的智能化控制能力;技術發展方向是與對象系統密切相關的嵌入性能、控制能力與控制的可靠性。
早期,人們勉為其難地將通用計算機系統進行改裝,在大型設備中實現嵌入式應用。然而,對於眾多的對象系統(如家用電器、儀器儀表、工控單元……),無法嵌入通用計算機系統,況且嵌入式系統與通用計算機系統的技術發展方向完全不同,因此,必須獨立地發展通用計算機系統與嵌入式計算機系統,這就形成了現代計算機技術發展的兩大分支。
如果說微型機的出現,使計算機進入到現代計算機發展階段,那麼嵌入式計算機系統的誕生,則標志了計算機進入了通用計算機系統與嵌入式計算機系統兩大分支並行發展時代,從而導致20世紀末,計算機的高速發展時期。
3.兩大分支發展的里程碑事件
通用計算機系統與嵌入式計算機系統的專業化分工發展,導致20世紀末、21世紀初,計算機技術的飛速發展。計算機專業領域集中精力發展通用計算機系統的軟、硬體技術,不必兼顧嵌入式應用要求,通用微處理器迅速從286、386、486到奔騰系列;操作系統則迅速擴張計算機基於高速海量的數據文件處理能力,使通用計算機系統進入到盡善盡美階段。
嵌入式計算機系統則走上了一條完全不同的道路,這條獨立發展的道路就是單晶元化道路。它動員了原有的傳統電子系統領域的廠家與專業人士,接過起源於計算機領域的嵌入式系統,承擔起發展與普及嵌入式系統的歷史任務,迅速地將傳統的電子系統發展到智能化的現代電子系統時代。
因此,現代計算機技術發展的兩大分支的里程碑意義在於:它不僅形成了計算機發展的專業化分工,而且將發展計算機技術的任務擴展到傳統的電子系統領域,使計算機成為進入人類社會全面智能化時代的有力工具。 1.單片機開創了嵌入式系統獨立發展道路
嵌入式系統雖然起源於微型計算機時代,然而,微型計算機的體積、價位、可靠性都無法滿足廣大對象系統的嵌入式應用要求,因此,嵌入式系統必須走獨立發展道路。這條道路就是晶元化道路。將計算機做在一個晶元上,從而開創了嵌入式系統獨立發展的單片機時代。
在探索單片機的發展道路時,有過兩種模式,即「Σ模式」與「創新模式」。「Σ模式」本質上是通用計算機直接晶元化的模式,它將通用計算機系統中的基本單元進行裁剪後,集成在一個晶元上,構成單片微型計算機;「創新模式」則完全按嵌入式應用要求設計全新的,滿足嵌入式應用要求的體系結構、微處理器、指令系統、匯流排方式、管理模式等。Intel公司的MCS-48、MCS-51就是按照創新模式發展起來的單片形態的嵌入式系統(單片微型計算機)。MCS-51是在MCS-48探索基礎上,進行全面完善的嵌入式系統。歷史證明,「創新模式」是嵌入式系統獨立發展的正確道路,MCS-51的體系結構也因此成為單片嵌入式系統的典型結構體系。
2.單片機的技術發展史
單片機誕生於20世紀70年代末,經歷了SCM、MCU、SoC三大階段。
1.SCM即單片微型計算機(Single Chip Microcomputer)階段,主要是尋求最佳的單片形態嵌入式系統的最佳體系結構。「創新模式」獲得成功,奠定了SCM與通用計算機完全不同的發展道路。在開創嵌入式系統獨立發展道路上,Intel公司功不可沒。
2.MCU即微控制器(Micro Controller Unit)階段,主要的技術發展方向是:不斷擴展滿足嵌入式應用時,對象系統要求的各種外圍電路與介面電路,突顯其對象的智能化控制能力。它所涉及的領域都與對象系統相關,因此,發展MCU的重任不可避免地落在電氣、電子技術廠家。從這一角度來看,Intel逐漸淡出MCU的發展也有其客觀因素。在發展MCU方面,最著名的廠家當數Philips公司。
Philips公司以其在嵌入式應用方面的巨大優勢,將MCS-51從單片微型計算機迅速發展到微控制器。因此,當我們回顧嵌入式系統發展道路時,不要忘記Intel和Philips的歷史功績。
3.單片機是嵌入式系統的獨立發展之路,向MCU階段發展的重要因素,就是尋求應用系統在晶元上的最大化解決;因此,專用單片機的發展自然形成了SoC化趨勢。隨著微電子技術、IC設計、EDA工具的發展,基於SoC的單片機應用系統設計會有較大的發展。因此,對單片機的理解可以從單片微型計算機、單片微控制器延伸到單片應用系統。
⑹ 嵌入式與單片機之間的關系是什麼
嵌入式與單片機之間的關系如下:
嵌入式系統是一個大類,單片機是其中一個重要的子類。嵌式系統像是一個完整的計算機,而單片機更像是一個沒有外設的計算機。
以前單片機包括的東西並不算多,兩者的硬體區別較為明顯。但是,隨著半導體技術的突飛猛進,現在各種硬體功能都能被做進單片機之中。所以,嵌入式系統和單片機之間的硬體區別越來越小,分界線也越來越模糊。
於是,人們傾向於在軟體上進行區分。
從軟體上,行業里經常把晶元中不帶MMU(memory management unit,內存管理單元)從而不支持虛擬地址,只能裸奔或運行RTOS(實時操作系統,例如ucos、華為LiteOS、RT-Thread、freertos等)的system,叫做單片機(如STM32、NXP LPC系列、NXP imxRT1052系列等)。
同時,把晶元自帶MMU可以支持虛擬地址,能夠跑Linux、Vxworks、WinCE、Android這樣的「高級」操作系統的system,叫做嵌入式。
在某些時候,單片機本身已經足夠強大,可以作為嵌入式系統使用。它的成本更低,開發和維護的難度相對較小,尤其是針對一些針對性更強的應用。而嵌入式系統理論上性能更強,應用更廣泛,但復雜度高,開發難度大。
嵌入式,一般是指嵌入式系統,嵌入式開發,就是對嵌入式系統的開發。IEEE(美國電氣和電子工程師協會)對嵌入式系統的定義是:「用於控制、監視或者輔助操作機器和設備的裝置」。
國內學術界的定義更為具體一些,也更容易理解:嵌入式系統,是以應用為中心,以計算機技術為基礎,軟體硬體可裁剪,適用於對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統。 以應用為中心,說明嵌入式系統是有明確實際用途的。
以計算機技術為基礎,說明它其實就是一種特殊的計算機。軟硬體可裁剪,說明它有很強的靈活性和可定製能力。
嵌入式系統的核心,就是嵌入式處理器。嵌入式處理器一般分為以下幾種典型類型: 嵌入式微控制器MCU(Micro Control Unit) MCU內部集成ROM/RAM、匯流排邏輯、定時/計數器、看門狗、I/O、串口、A/D、D/A、FLASH等。典型代表是8051、8096、C8051F等。
嵌入式DSP處理器(Digital Signal Processor) DSP處理器專門用於信號處理,在系統結構和指令演算法進行了特殊設計。在數字濾波、FFT、頻譜分析中廣泛應用。
典型代表是TI(德州儀器)公司的TMS320C2000/C5000系列。 嵌入式微處理器MPU(Micro Processor Unit) MPU由通用處理器演變而來,具有較高的性能,擁有豐富的外圍部件介面。典型代表是AM186/88、386EX、SC-400、PowerPC、MIPS、ARM系列等。
此外,還有嵌入式片上系統SoC(System on Chip)和可編程片上系統SoPC(System on a Programmable Chip)。 我們的單片機,就屬於上述的第一種——MCU(嵌入式微控制器)。
單片機,又稱為單片微控制器,英文叫Single-Chip Microcomputer。它其實就是一種集成電路晶元,是通過超大規模集成電路技術,將CPU、RAM、ROM、輸入輸出和中斷系統、定時器/計數器等功能,塞進一塊矽片上,變成一個超小型的計算機。
單片機技術從上世紀70年代末誕生,早期的時候是4位,後來發展為8位,16位,32位。它真正崛起,是在8位時代。
8位單片機功能很強,被廣泛應用於工業控制、儀器儀表、家電汽車等領域。我們在研究單片機的時候,經常會聽到兩個詞——51單片機、STM32。我來介紹一下它們究竟是什麼。
51單片機,其實就是一系列單片機的統稱。該系列單片機,兼容Intel8031指令系統。它們的始祖,是Intel(英特爾)的8004單片機。
STM32,是意法半導體公司推出的基於ARM Cortex-M內核的通用型單片機。STM32的硬體配置可以滿足大部分的物聯網開發需求,開發工具和相關的文檔資料齊全,已經成為目前單片機學習的首選對象。
⑺ 嵌入式系統和單片機的區別
簡單的講,嵌入式系統是一個大類,單片機是其中一個重要的子類。
嵌入式和單片機的區別
單片機與嵌入式在系統組成結構上的區別:
(1)單片機基本結構
單片機由運算器、控制器、存儲器、輸入輸出設備構成。
(2)嵌入式系統成部分:
嵌入式系統一般由嵌入式微處理器、外圍硬體設備、嵌入式操作系統、特定的應用程序組成。
嵌入式系統設計的第一步是結合具體的應用,綜合考慮系統對成本、性能、可擴展性、開發周期等各個方面的要求,確定系統的主控器件,並以之為核心搭建系統硬體平台。
單片機與嵌入式在硬體組成上的區別:
單片機是在一塊集成電路晶元中包含了微控制器電路,以及一些通用的輸入輸出介面器件。從構成嵌入式系統的方式看,根據現代電子技術發展水平,嵌入式系統可以用單片機實現,也可以用其它可編程的電子器件實現。其餘硬體器件根據目標應用系統的需求而定。
單片機與嵌入式在軟體組成上的區別:
製造商出廠的通用單片機內沒有應用程序,所以不能直接運行。增加應用程序後,單片機就可以獨立運行。嵌入式系統一定要有控制軟體,實現控制邏輯的方式可以完全用硬體電路,也可以用軟體程序。
單片機與嵌入式在主次關系方面的區別:
單片機現在已經被認為是通用的電子器件了,單片機自身為主體。嵌入式系統在物理結構關繫上是從屬的,嵌入式系統被嵌入安裝在目標應用系統內。嵌入式系統在控制關繫上卻是主導的,是控制目標應用系統運行的邏輯處理系統。盡管可以用不同方式構成嵌入式系統,但是一旦構成之後,嵌入式系統就是一個專用系統。專用系統中,可編程器件的軟體可以在系統構建過程中植入,也可以在器件製造過程中直接生成,以降低製造成本。控制邏輯復雜的單片機會需要操作系統軟體支持;控制邏輯簡單的嵌入式系統也可以不用操作系統軟體支持。
⑻ 如何讓自己成為嵌入式單片機高手
成為嵌入式高手的技能清單和升級線路圖
第一部分:Linux平台搭建與環境熟悉
了解linux系統;區分各種版本的Linux系統,以便於拓展 Linux視野。
1、Linux 簡介;
2、Linux 系統的主要特點;
3、Linux 的組成;
4、主要的 Linux 版本;
5、嵌入式 Linux簡介與發展
第二部分虛擬機安裝和LINUX系統安裝
1、虛擬機安裝;
2、Linux系統的安裝;
3、Linux系統的常用軟體的安裝;
4、Linux快速入門
5、 熟悉運用 Linux環境下,常用命令的操作與系統設置,如常用的 Shell;掌握基本的 Shell 應用
第三部分:嵌入式LINUX環境搭建
1、 建立嵌入式 Linux開發環境
2、 熟悉嵌入式開發平台
3、 嵌入式 Linux開發工具
4、 Linux下的調試技巧
5、 MAKE工程管理器
6、 硬體環境的搭建;arm-linux-gcc與 gcc安裝配置
第四部分:U-Boot
了解 U-Boot 的作用及工作流程;了解Bootloader 的代碼結構、編譯過程;移植U-Boot;掌握常用的U-Boot命令。
1、 Bootloader介紹
2、 u-boot工程介紹
3、 u-boot的編譯使用
4、 u-boot源碼分析
5、 u-boot資源分配
6、 配置編譯u-boot
7、 u-boot移植過程
8、 u-boot常用命令操作
9、 添加u-boot新命令
10、設置u-boot環境變數
11、 u-boot驅動添加如網卡:DM9000
第五部分:LINUX內核移植
熟悉內核的原碼結構和kbuild Makefile語法;掌握和內核、驅動模塊編譯相關的原理及方法。
1、Linux內核介紹
2、Linux內核特點
3、Linux內核源代碼結構
4、Linux內核選項解析
5、Linux內核編譯鏈接
6、內核模塊編譯、使用方法
第六部分:LINUX根文件系統
1、busybox 包移植、編譯
2、Linux跟文件系統製作過程
3、根文件系統介紹
4. nfs文件伺服器系統搭建
第七部分:LINUX驅動開發
驅動開發是嵌入式Linux開發難度最高的內容,也是目前嵌入式行業最緊缺的人才之一。本課程介紹嵌入式Linux驅動開發相關概念及開發流程,了解驅動開發的關鍵技術點,重點講解嵌入式Linux下常用介面驅動的編寫方法,包括:
1、字元型LED驅動開發(GPIO口驅動)
2、按鍵驅動開發(中斷驅動,在驅動中中斷程序的編寫,消息隊列的應用
3、ADC驅動開發
4、網卡驅動開發
5、串口驅動開發
6、液晶屏(TFT彩屏驅動開發
7、觸摸屏驅動+tslib(中間插件移植與設置),
8、USB驅動開發+USB無線網卡移植
9、IIS驅動開發+maplay移植與應用(mp3播放)+mplayer移植與應用(視頻播放Mp4/廣告機等播放)
10、SD驅動開發
11、RTC驅動開發
12、電源管理方法
第八部分:LINUX應用學習
嵌入式Linux應用開發和系統開發是嵌入式Linux中最重要的一部分,也是企業人才需求最廣的一部分。主要目標是精通嵌入式Linux下的程序設計,熟練掌握嵌入式Linux的開發環境、系統編程以及網路編程,熟悉C++、QT編程並且深刻體會整個嵌入式Linux項目開發流程,強化學員對Linux應用開發的能力。
1、Linux系統中的進程的概念,在應用程序中線程與父子進程的創建與應用
2、線程之間、進程之間的通信
3、進程間通信基本概念
4、管道(PIPE)
5、信號(SIGNAL)
6、內存映射(MAPPED MEMORY)
7、消息隊列(MESSAGE QUEUE)
8、信號量(SEMAPHORE)
9、共享內存(SHARE MEMORY)@
10、tcPip協議在應用程序中的編程開發(SOCKET套接字編程開發)
10.1. ISO/OSI七層協議模型與IP網路四層模式
10.2.TCP/IP協議簇
10.3. 基於嵌入式Linux的TCP/IP網路結構
10.4. 基於嵌入式Linux的SOCKET編程
10..5.UDP與TCP的區別
10.6. UDP SERVER-CLIENT關系程
11、文件讀寫與存儲
第九部分:QT移植與開發
了解嵌入式Linux下的幾種常見GUI及其特點,重點能掌握QT的有關內容,具備QT程序設計能力。了解嵌入式資料庫的配置與開發:
1 、嵌入式Linux GUI介紹
2、嵌入式QT開發包移植
3、QT介紹及其信號插槽機制
4、 QT圖形界面編程技術
5、QT應用程序與Linux驅動的銜接
6、 QT在實際項目中具體應用
第十部分:無線通訊應用
1、無線wifi模塊應用
2、3G模塊應用
第十一分布:嵌入式系統應用程序,驅動程序調試
1、Linux基本工具調試使用。GDB,insight調試等
2、Linux應用程序的編程
3、嵌入式產品程序打包與發布
第十二部分:嵌入式項目綜合調試,產品發布
了解真實項目的開發流程,掌握如何將所學知識應用到項目開發中。將模擬真實項目的管理過程,培養學員項目團隊協同開發能力,項目文檔編寫能力和新知識的學習能力,為下一步就業做好知識上和心理上的充分准備。
嵌入式LININX開發第一學習階段,主要打好基礎,學好C編程,Linux系統編程。
1、C語言編程基礎
2、嵌入式開發基礎:Linux概述安裝,shell命令,vim編輯器,GCC,GDB,Makefile,交叉開發環境構建
3、嵌入式Linux系統編程:shell編程,文件編程,串口編程,進程編程,線程編程,網路編程
4、嵌入式項目開發:數據採集控制系統,串口伺服器
嵌入式LININX開發第二學習階段,掌握ARM匯編程序設計,驅動程序設計。
1、ARM體系結構:ARM體系,ARM指令,Thumb指令,匯編程序設計,邏輯程序開發
2、Linux內核移植:bootloader,內核配置,文件系統
3、驅動程序開發:驅動架構模型,字元設備驅動,塊設備驅動,網路驅動
4、嵌入式項目開發:智能家居系統,視頻監控系統
嵌入式LININX開發第三學習階段,掌握C++面向對象程序設計,Qt編程。
1、C++語言編程基礎
2、QT編程開發:QT開發基礎,QT布局與控制項,QT繪圖,QT事件,QT網路通信,QT資料庫,QT移植
3、嵌入式項目開發:車載監控管理系統,工業能源管理系統
⑼ 單片機和嵌入式系統有啥區別
(1)單片機基本結構
單片機由運算器、控制器、存儲器、輸入輸出設備構成。
(2)嵌入式系統成部分:
嵌入式系統一般由以下幾組嵌入式微處理器、外圍硬體設備、嵌入式操作系統、特定的應用程序。
嵌入式系統設計的第一步是結合具體的應用,綜合考慮系統對成本、性能、可擴展性、開發周期等各個方面的要求,確定系統的主控器件,並以之為核心搭建系統硬體平台。
單片機是眾多嵌入式處理器的一種,目前通用的理解是,嵌入式主要是指ARMDSP等處理器.而嵌入式系統是指實現了一定功能的電路的軟硬體的集合。
單片機與autoCAD的聯系就不是很大,因為單片機是一種控制領域用的微控制晶元,而autoCAD是機械或者建築行業用的一種應用設計軟體。