欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      學(xué)習(xí)嵌入式Linux系統(tǒng)的筆記和體會[5篇模版]

      時間:2019-05-12 18:29:12下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《學(xué)習(xí)嵌入式Linux系統(tǒng)的筆記和體會》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《學(xué)習(xí)嵌入式Linux系統(tǒng)的筆記和體會》。

      第一篇:學(xué)習(xí)嵌入式Linux系統(tǒng)的筆記和體會

      學(xué)習(xí)嵌入式Linux系統(tǒng)的筆記和體會

      一個典型的桌面Linux系統(tǒng)包括3個主要的軟件層---linux內(nèi)核、C庫和應(yīng)用程序代碼。

      內(nèi)核是唯一可以完全控制硬件的層,內(nèi)核驅(qū)動程序代表應(yīng)用程序與硬件之間進行會話。內(nèi)核之上是C庫,負責(zé)把POSIX API轉(zhuǎn)換為內(nèi)核可以識別的形式,然后調(diào)用內(nèi)核,從應(yīng)用程序向內(nèi)核傳遞參數(shù)。應(yīng)用程序依靠驅(qū)動內(nèi)核來完成特定的任務(wù)。

      在設(shè)計嵌入式應(yīng)用的時候,可以不按照這種層次,應(yīng)用程序越過C庫直接和內(nèi)核會話,或者把應(yīng)用和內(nèi)核捆綁在一起,甚至可以把應(yīng)用寫為內(nèi)核的一個線程,在內(nèi)核中運行,雖然這樣在移植上帶來了困難,但考慮嵌入式系統(tǒng)對尺寸要求小的特點,是完全可行的。不過我們使用三層軟件結(jié)構(gòu)的模式來學(xué)習(xí)嵌入式linux將會是我們認識更清晰,簡單可行并使應(yīng)用具有彈性。

      快速入門

      最簡單的建立嵌入式Linux應(yīng)用的方法就是從我們使用的桌面Linux入手,安裝一個喜愛的版本,把我們的某個應(yīng)用作為初始化的一部分,框架就算完成了。

      當(dāng)然,嵌入式linux應(yīng)用遠比我們的桌面版本功能簡單專一,它也許就是一個用于足彩的終端機,或是一個數(shù)碼音頻播放器,這些系統(tǒng)除了使用嵌入式CPU外,僅僅再需要一個串口,網(wǎng)口等少量的輸入輸出接口就可以完成它們特定的應(yīng)用了。

      在軟件上,它可以按照三層的概念由內(nèi)核裝載器,定制的內(nèi)核和較少的為特定任務(wù)設(shè)計的靜態(tài)連接的應(yīng)用程序組成。之所以使用靜態(tài)連接的應(yīng)用程序,是因為少量的靜態(tài)連接程序所要的存儲空間,比同樣數(shù)量的動態(tài)連接的程序所占的空間小,這個平衡點需要我們在實際開發(fā)中去獲取。也許你正在設(shè)計的是個PDA,它的應(yīng)用程序較多,那么你很可能就要使用動態(tài)連接程序來減少存儲空間。在你的/bin或者/sbin目錄下,用廠列表看看bash,ifconfig,vi...,也許只用幾十K,當(dāng)你運行 ldd /bin/bash 時,你會看到它們都和好幾個庫文件相連。好了,這樣看來,我們得把PC想像成一個嵌入式硬件平臺,再重新制作一個特定功能的嵌入式linux。

      基礎(chǔ)知識

      再進行實際操作之前,先來搞清楚幾個基礎(chǔ)知識。

      內(nèi)核裝載器Loader,它的作用是把內(nèi)核從外部存儲器,移動到內(nèi)存中。它只作這個事情,一旦完成了調(diào)入內(nèi)核的工作,Loader就跳轉(zhuǎn)到內(nèi)核位置開始執(zhí)行。不同架構(gòu)有不同的 Loader,在x86結(jié)構(gòu)的PC上,通常使用的loader有LILO,GRUB,syslinux,syslinux在嵌入式linux中也同樣工作。其他非x86架構(gòu)的應(yīng)用中,你必須使用專門的loader,或者自己編寫loader來裝入內(nèi)核。也有不使用loader的情況,系統(tǒng)加電以后,內(nèi)核直接從燒錄有映象的Flash上開始執(zhí)行。

      內(nèi)核,一旦內(nèi)核開始執(zhí)行,它將通過驅(qū)動程序初始化所有硬件,這可以從我們的pc機監(jiān)視器的輸出看出來,每個驅(qū)動程序都打印一些有關(guān)它的信息。初始化完成后,計算機就準(zhǔn)備運行嵌入式應(yīng)用。也許一個,也許是多個應(yīng)用程序組成了嵌入式應(yīng)用,但通常首先調(diào)用的是init(通過loader 向核心傳入init=/program 可以定制首先運行的程序)。桌面linux中,init會讀取/etc/inittab文件,來決定執(zhí)行級別和哪些腳本和命令。嵌入式應(yīng)用中,可以根據(jù)實際的情況決定是否使用標(biāo)準(zhǔn)的init執(zhí)行方式,也許這個init是個靜態(tài)程序,它能夠完成我們的嵌入應(yīng)用的特定任務(wù),那完全不用考慮inittab了。

      initrd文件系統(tǒng),initrd以一種把內(nèi)核從存儲介質(zhì)裝入到內(nèi)存的相同的機制來裝入一個小型文件系統(tǒng)。這個文件系統(tǒng)最好是以壓縮的方式存儲在介質(zhì)上的,解壓縮到RAM盤上。通過使用initrd,包含有核心驅(qū)動和啟動腳本的小文件系統(tǒng),就可以直接從介質(zhì)上和內(nèi)核一起啟動起來,內(nèi)核屆壓縮這個文件系統(tǒng),并執(zhí)行這個文件系統(tǒng)上叫做/linuxrc的腳本文件,這個腳本通常會把啟動過程中所需要的驅(qū)動程序裝入。腳本退出以后,initrd文件系統(tǒng)也卸下了,啟動過程進入真正初始化過程。對于嵌入式來講,可以將需要的應(yīng)用軟件都運行在這個initrd文件系統(tǒng)上,只要/linxrc文件不結(jié)束,內(nèi)核啟動過程的其他部分就不會繼續(xù)。

      做個試驗:

      cp /boot/initrd-2.4.20.img /tmp

      cd /tmp

      mv initrd-2.4.2-.img initrd.img.gz

      gunzip initrd.img.gz

      mount-o loop initrd.img /mnt

      cd /mnt

      ls

      cat linuxrc 可以看到里面執(zhí)行了加載了兩個模塊的操作,你在啟動linxu的時候會看見屏幕打印信息。

      入門試驗,制作一個簡單的應(yīng)用

      我們使用一張軟盤啟動一臺假象的只有一個串口,鍵盤輸入,顯示輸出的x86架構(gòu)的linux系統(tǒng),執(zhí)行的特定應(yīng)用就是運行minicom,通過串口撥號。需要軟件: minicom-xx.src.tar.gz 和 syslinux-xx.tar.gz,xx代表版本號,開始之前,在主目錄建立一個目錄,來釋放這兩個軟件包:

      cd

      mkdir-p project/minilinux

      cd project/minilinux

      tar zxvf minicom-xx.src.tar.gz

      tar zxvf syslinux-xx.tar.gz1、裁減linux內(nèi)核(需要系統(tǒng)安裝內(nèi)核文件包)

      配置內(nèi)核的時候,我們需要選擇這些:摸塊編入內(nèi)核,386處理器、物理內(nèi)存off、支持ELF、標(biāo)準(zhǔn)PC軟盤、支持RAM盤(4096)、支持 initial RAM disk(initrd)、虛你終端、虛擬終端控制臺、標(biāo)準(zhǔn)串口、ext2文件系統(tǒng)、控制臺驅(qū)動,VGA text console、DOS FAT、MSDOS文件系統(tǒng),其他的都可以不要,這樣內(nèi)核編出來較小。

      步驟:

      cd /usr/src/linux

      make mrproper

      make xconfig

      make dep && make bzImage

      得到 /usr/src/linux/arch/i386/boot/目錄的內(nèi)核文件bzIamge。

      2、編譯一個靜態(tài)的minicom,把它作為將來的linuxrc

      cd minicom-xx/src

      vi Makefile

      修改下面這行

      minicom: $(minicom_OBJECTS)$(minicom_DEPENDENCIES)

      rm-f minicom 下面的行加上-static,連接為靜態(tài)程序

      (LINK)-static $(minicom_LDFLAGS)$(minicom_OBJECTS)$(minicom_LDADD)$(LIBS)

      vi minicom.c

      找到 if(real_uid==0 && dosetup==0)刪除這個判斷條件語句,主要是用于權(quán)限判斷的,因為這個嵌入應(yīng)用不關(guān)注權(quán)限問題,否則會出錯。

      make

      得到可執(zhí)行程序,用ldd 檢查一下是不是靜態(tài)程序。

      3、準(zhǔn)備initrd壓縮文件image.gz

      dd if=/dev/zero of=image bs=1k count=4096

      losetup /dev/loop0 image

      mke2fs-m 0 /dev/loop0

      mounmt-t ext2 /dev/loop0 /mnt/

      mkdir-p /mnt/dev

      mkdir-p /mnt/usr/share/terminfo/l/

      cd /dev

      cp-a consle null tty tty0 zero mem /mnt/dev

      cp-P /usr/share/terminfo/l/linux /mnt/usr/share/terminfo/l/linux

      cp ~/project/minilinux/mincom/src/minicom /mnt/linuxrc

      umount /mnt

      losetup-d /dev/loop0

      sync

      gzip-9 image4、制作軟盤引導(dǎo),并拷貝文件 bzimage image.gz 到軟盤

      A.使用grub

      fdformat /dev/fd0

      mke2fs /dev/fd0

      mount /mnt/fd0 /mnt/floppy

      mkdir-p /mnt/floppy/boot/grub

      cp /boot/grub/stage1 /boot/grub/stage2 /mnt/floppy/boot/grub

      執(zhí)行 grub,在軟盤上創(chuàng)建引導(dǎo)

      grub > root(fd0)

      grub > setup(fd0)

      grub > quit

      cp /usr/src/linux/arch/i386/boot/bzImge /mnt/floppy

      cp ~/porject/minilinux/image.gz /mnt/floppy

      編輯 /mnt/floppy/boot/grub/grub.conf

      default =0

      timeout-=10

      title minilinux

      root(fd0)

      kernel /bzImage

      initrd /image.gz

      卸下軟盤

      umount /mnt/floppy

      B.使用syslinux

      fdformat /dev/fd0

      mkfs.msdos /dev/fd0

      mount-t msdos /dev/fd0 /mnt/floppy

      cp /usr/src/linux/arch/i386/boot/bzImge /mnt/floppy

      cp ~/porject/minilinux/image.gz /mnt/floppy

      cp syslinux-xx/ldlinxu.sys /mnt/floppy

      cat > /mnt/floppy/syslinux.cfg

      LABEL linux

      KERNEL bzimage

      APPEND initrd=image.gz

      umont /mnt/floppy

      syslinux-xx/syslinux /dev/fd0

      sync5、用軟盤啟動計算機,如果幸運,minicom的運行畫面出現(xiàn)在屏幕上。

      到此,我們的單應(yīng)用嵌入式linux做好了,但它還很簡陋,沒有什么實際用途,但通過這個實驗,可以了解嵌入式系統(tǒng)的大致結(jié)構(gòu)和開發(fā)過程。在進行實際的嵌入式開發(fā)時,通常要在PC機上借助嵌入式linux開發(fā)工具包,如:uclinux,bluecat等,對相應(yīng)的硬件平臺(目標(biāo)機)進行軟件編寫編譯,調(diào)試成功后,將內(nèi)核及應(yīng)用程序?qū)懭氲侥繕?biāo)機的存儲器中,從而完成整個應(yīng)用。

      第二篇:嵌入式linu學(xué)習(xí)心得

      嵌入式Linux學(xué)習(xí)心得

      1、Linux命令

      ls:查看目錄-l以列表方式查看;ls –l 與ll的功能一樣 pwd: 查看當(dāng)前的目錄

      cd:改變當(dāng)前操作目錄cd /直接跳到根目錄 cd..回到上一級目錄 cat: 打印顯示當(dāng)前文件的內(nèi)容信息

      mkdir:創(chuàng)建目錄

      fdisk: 查看硬盤分區(qū)信息,-l以列表方式查看

      ->代表是鏈接文件,類似window下的快捷方式。

      cp: 復(fù)制命令,例子cp 文件名 /home/dir/

      mv: 移動或改名,如mv sonf.confsonf.txt(改名)移動:mv sonf.conf / rm:刪除命令,如rm –f test.c;如刪除目錄rm –fr d

      man:查看某個命令的幫助,man 命令

      2、各系統(tǒng)目錄的功能

      drw—r—w--:d代表是目錄,drw代表當(dāng)前用戶的權(quán)限,r代表組用戶的權(quán)限,w代表其它用戶的權(quán)限。x代表有執(zhí)行權(quán)限。

      /boot/gruff.conf: 啟動引導(dǎo)程序

      /dev:brw—rw--:b代表是塊設(shè)備。Linux設(shè)備有三種,塊設(shè)備(b開頭)、字符設(shè)備(c開頭)、網(wǎng)絡(luò)設(shè)備。had代表第一個硬盤,hdb代表第二個硬盤。Hdb2代表第二塊硬盤的第二個分區(qū)。3,67代表主設(shè)備為3,從設(shè)備為67./etc:存放的是系統(tǒng)的配置文件。Inittab文件存放不同啟動方式下必須啟動的進程。Inittab文件中有6個啟動level,wait中對應(yīng)著6個level的目錄,respawn代表當(dāng)一個進程被意外終止了,但會自動啟動的進程,如守護進程。rc.d目錄中存放了一個rc.sysinit文件,里面存放系統(tǒng)初始化配置信息。/etc還有一個vsftpd里面存放tcp、ftp的配置。

      /home : 用戶目錄,存放用戶的文件,/lib:存放庫文件,后綴為so的文件代表動態(tài)鏈接庫。

      /lost+found:系統(tǒng)意外終止,存放一些可以找回的文件。

      /mnt:掛載外部設(shè)備,如掛載光驅(qū):mount –t /dev/cdrom/mnt/cdrom,如

      果在雙系統(tǒng)中,要查看windows中D盤的文件,首先應(yīng)該將D盤的文件映射過來,mount –t /dev/hda2/mnt/windows/d

      /opt:用戶安裝的應(yīng)用程序

      /proc:是系統(tǒng)運行的映射,比較重要。里面的文件數(shù)字代表進程號。每個進程號目錄下包含進程的基本信息。還有其他信息,如cpuinfo等,內(nèi)核支持的文件系統(tǒng)filesystem等。系統(tǒng)支持的中斷interrupts,iomen代表內(nèi)存分配情況。ioport存放IO端口號。還有分區(qū)信息,modole信息,狀態(tài)信息,版本信息

      對于Linux的設(shè)備驅(qū)動程序,有兩種加載模式,一種是直接加載進linux內(nèi)核,一種是以模塊的方式加載到內(nèi)核。

      /sbin: 系統(tǒng)管理的一些工具。如poweroff關(guān)機工具。

      /usr: 安裝系統(tǒng)時很多文件放在此目錄下面,包含一些更新等,include包含的頭文件,lib 是Linux的庫文件,src包含Linux2.4的內(nèi)核源碼

      /var:存放是臨時變量

      3、

      第三篇:學(xué)習(xí)嵌入式系統(tǒng)感言

      個人覺得培訓(xùn)學(xué)校都是差不多,所學(xué)的內(nèi)容都是一樣的。您不妨自己找?guī)讉€學(xué)校的課程對比下,你就知道大同小異了,培訓(xùn)主要就是C、Linux和ARM課程。

      我原來也想去培訓(xùn),可是家里條件不允許,我沒有那么多錢,后來我只好自學(xué)了,不懂的就上論壇問,我自己學(xué)了四個月,差不多也入門了,現(xiàn)在也是在做嵌入式開發(fā)。想想我自己走過的路,其實我發(fā)現(xiàn),其實嵌入式并沒有想象的難,關(guān)鍵是要花時間去學(xué),要堅持幾個月就可以了。

      如果樓主還有時間,不妨自己學(xué)下。實在覺得困難的話再去培訓(xùn)吧。當(dāng)然,樓主如果家里經(jīng)濟不錯的話,也可以去培訓(xùn)吧。但是如果真的下決心要學(xué)的話,其實可以去找找自學(xué)的方法。

      我把我前階段看到的一篇一個??粕绾巫詫W(xué)嵌入式,里面有介紹了他的學(xué)習(xí)方法和學(xué)習(xí)過程的文章,給樓主看看,希望對你有幫助。

      ??粕鷮W(xué)嵌入式到找到工作的前前后后--學(xué)習(xí)的榜樣

      先做個自我介紹,我07年考上一所很爛??泼褶k的學(xué)校,學(xué)的是生物專業(yè),具體的學(xué)校名稱我就不說出來獻丑了。09年我就輟學(xué)了,我在那樣的學(xué)校,一年學(xué)費要1萬多,但是根本沒有人學(xué)習(xí),我實在看不到希望,我就退學(xué)了。

      退學(xué)后我也迷茫,大專都沒有畢業(yè),我真的不知道我能干什么,我在糾結(jié)著我能做什么。所以輟學(xué)后我一段時間,我想去找工作,因為我比較沉默寡言,不是很會說話,我不適合去應(yīng)聘做業(yè)務(wù)。我想應(yīng)聘做技術(shù)的,可是處處碰壁。

      一次偶然的機會,我才聽到嵌入式這個行業(yè)。那天我去新華書店,在計算機分類那邊想找本書學(xué)習(xí)。后來有個女孩子走過來,問我是不是讀計算機的,有沒有興趣學(xué)習(xí)嵌入式,然后給我介紹了一下嵌入式現(xiàn)在的火熱情況,告訴我學(xué)嵌入式多么的有前景,給我了一份傳單,嵌入式培訓(xùn)的廣告。聽了她的介紹,我心里癢癢的,確實我很想去學(xué)會一門自己的技術(shù),靠自己的雙手吃飯。

      回家后,我就上網(wǎng)查了下嵌入式,確實是當(dāng)今比較熱門的行業(yè),也是比較好找工作的,工資也是相對比較高。我就下決心想學(xué)嵌入式了。于是我去找嵌入式培訓(xùn)的相關(guān)信息,說真的,我也很迷茫,我不知道培訓(xùn)是否真的能像他們宣傳的那樣好,所以我就想了解一段時間再做打算。

      后來,我在百度知道看到一篇讓我很鼓舞的文章《如何學(xué)習(xí)嵌入式》,是一個嵌入式高手介紹沒有基礎(chǔ)的朋友怎么自學(xué)入門學(xué)嵌入式,文章寫的很好,包含了如何學(xué)習(xí),該怎么學(xué)習(xí)。他提到一個方法就是看視頻,因為看書實在太枯燥和費解的,很多我們也看不懂。這點我真的很認同,我自己看書往往看不了幾頁。

      我在想,為什么別人都能自學(xué)成才,我也可以的!我要相信自己,所以我就想自學(xué),如果實在學(xué)不會我再去培訓(xùn)。

      主意一定,我就去搜索嵌入式的視頻,雖然零星找到一些嵌入式的視頻,但是都不系統(tǒng),我是想找一個能夠告訴我該怎么學(xué)的視頻,一套從入門到精通的視頻,一個比較完整的資料,最好能有老師教,不懂可以請教的。

      后來我又找到一份很好的視頻,是在嵌入式學(xué)習(xí)網(wǎng)推出的一份視頻《從零基礎(chǔ)開始學(xué)嵌入式》,網(wǎng)址:http://www.FASHIONWEEKDAILY.info/evem.htm里面的教程還不錯,很完整,可以讓我從基礎(chǔ)的開始學(xué)起。視頻不便宜啊,但是我也忍了,畢竟買幾本書都要幾百了,何況他們還有半年的技術(shù)咨詢和服務(wù),算值了。

      下面介紹下我的學(xué)習(xí)流程,希望對和我一樣完全沒有基礎(chǔ)的朋友有所幫助。

      收到他們寄過來的光盤后,我就開始學(xué)習(xí)了,由于我沒有什么基礎(chǔ),我就從最簡單的C語言視頻教程學(xué)起,話說簡單,其實我還是很多不懂的,我只好請教他們,他們還是很熱心的,都幫我解決了。C語言我差不多學(xué)了一個禮拜,接下來我就學(xué)了linux的基本命令,我在他們提供linux虛擬機上都有做練習(xí),敲linux的基本命令,寫簡單的C語言代碼,差不多也就三個禮拜。我每天都在不停的寫一些簡單的代碼,這樣一月后我基本掌握了C和linux的基本操作。

      接下來我就去學(xué)習(xí)了人家的視頻的培訓(xùn)教程,是整套的,和去參加培訓(xùn)沒有多大的區(qū)別,這一看就是兩個月,學(xué)習(xí)了ARM的基本原理,學(xué)習(xí)嵌入式系統(tǒng)的概念,也掌握了嵌入式的環(huán)境的一些搭建,對linux也有更深層次的理解了,明白了嵌入式應(yīng)用到底是怎么做的,但是驅(qū)動我只是有一點點的了解,這個相對難一點,我想以后再慢慢啃。

      這兩個月,除了吃飯睡覺,我?guī)缀醵荚趯W(xué)習(xí)。因為我知道幾乎沒有基礎(chǔ),比別人差勁,我只能堅持努力著,我不能放棄,我必要要靠自己來養(yǎng)活自己,必須學(xué)好這門技術(shù),同時我不懂的就問,這里真的很感謝他們的技術(shù)客服對我的任何問題都是耐心的解答,每天都我?guī)缀醵加泻脦讉€問題問他們,然后我就把不懂的問題總結(jié)記下來,這樣慢慢積累了一段時間,我發(fā)現(xiàn)自己真的有點入門了。

      最后的一個月,我就去看關(guān)于實踐部分的內(nèi)容,了解嵌入式項目具體的開發(fā)流程,需要什么樣的知識,我就開始準(zhǔn)備這方面的知識,也就是學(xué)習(xí)這方面的視頻,同時他們建議我去找了找一些嵌入式面試的題目,為自己以后找工作做準(zhǔn)備。我就到網(wǎng)上找了很多嵌入式的題目,把他們理解的記下來,這樣差不多準(zhǔn)備了20天左右

      我覺得自己差不多入門了,會做一些簡單的東西了。我就想去找工作看看,于是我就到51job瘋狂的投簡歷,因為我學(xué)歷的問題,??茮]有畢業(yè),說真的,大公司沒有人會要我,所以我投的都是民營的小公司,我希望自己的努力有所回報。沒有想過幾天過后,就有面試了,但是第一次面試我失敗了,雖然我自認為筆試很好,因為我之前做了準(zhǔn)備,但是他們的要求比較嚴(yán)格,需要有一年的項目經(jīng)驗,所以我沒有被選中。

      后來陸續(xù)面試了幾家公司,終于功夫不負有心人。我終于面試上的,是在閔行的一家民營的企業(yè),公司規(guī)模比較小,我的職務(wù)是嵌入式linux應(yīng)用開發(fā),做安防產(chǎn)品的應(yīng)用的。我想我也比較幸運,經(jīng)理很看重我的努力,就決定錄用我,開的工資是3500一個月,雖然我知道在上海3500只能過溫飽的生活,但是我想我足夠了。我至少不用每天都要靠父母養(yǎng),我自己也能養(yǎng)活自己的。我想只要我繼續(xù)努力,我工資一定會翻倍的。

      把本文寫出來,希望能讓和我一樣的沒有基礎(chǔ)的朋友有信心,其實我們沒有必要自卑,我們不比別人笨,只要我們肯努力,我們一樣會成功。

      在大學(xué)生如則的身上,我們看到了一種精神,就是對認準(zhǔn)的事情,不管多困難,多曲折,都不放棄,而且要堅定地、執(zhí)著地做下去。這是在許多成功者身上我們看到的共同的東西。搞發(fā)明創(chuàng)造是寂寞的、艱苦的,但當(dāng)一個人將它視作自己的事業(yè)和理想,它就是快樂的、充實的,堅持下去,必將看到成功的果實,世界上的許多事情亦是同理。(完)

      第四篇:學(xué)習(xí)嵌入式系統(tǒng)心得

      學(xué)習(xí)嵌入式系統(tǒng)心得

      說實在話在沒有學(xué)習(xí)之前,以及在學(xué)之前通過一些口中得知這是一門很不錯,很有意思的一門課。而且目前是十分吃香的一門課程,如果學(xué)好了工作很好找并且待遇也很好。聽到這些,我內(nèi)心非常期待上這門含金量如此之高的一門技術(shù)課。據(jù)我了解,嵌入式系統(tǒng)是一個很有前景的行業(yè)。學(xué)會嵌入式技術(shù),就相當(dāng)于給自己創(chuàng)造了更多的機會。那么,在可以預(yù)計的將來,嵌入式技術(shù)的應(yīng)用會越來越廣泛。(大量的人才需求,未來五年內(nèi),國內(nèi)LINUX嵌入式軟件開發(fā)的人才缺口達到120萬)

      說實在的,第一天,我滿懷期望的去上這門課。可是一上課聽到老師的介紹,我就頭昏腦脹了。這是什么課啊,誰會聽得懂。猶如天書一般。

      實事求是的說,嵌入式技術(shù)的全面掌握是有相當(dāng)難度的??梢暂p輕松松學(xué)會嵌入式技術(shù)的說法是夸大其詞了。這個就像學(xué)英語一樣,學(xué)英語無論怎樣學(xué),不管是“瘋狂學(xué)”還是用新理念來學(xué),真正掌握的話還是需要一步步積累才能熟練掌握。在此,我們通過短短的幾個星期簡單的了解和學(xué)習(xí)一下嵌入式,想成為這方面的高手。這些想法本身是不太現(xiàn)實的。我心里清楚我們需要做的是:

      第一:把心踏實下來,做好打硬仗的準(zhǔn)備。

      第二:注意學(xué)習(xí)方法。盡量不要走彎路,爭取一鼓作氣入門。一旦入門了以后呢就好辦了。嵌入式技術(shù)的掌握,本身呢就比較難,要是再走些彎路,時間上會浪費,甚至?xí)绊憣W(xué)習(xí)的信心。

      這就是我這段時間的學(xué)習(xí)心得。

      魯增慶 110402110 A11電氣

      第五篇:軟考嵌入式系統(tǒng)設(shè)計師筆記歸納總結(jié)

      軟考嵌入式系統(tǒng)設(shè)計師筆記

      1.嵌入式系統(tǒng)的組成:硬件層、中間層、系統(tǒng)軟件層和應(yīng)用軟件層

      (1)硬件層:嵌入式微處理器、存儲器、通用設(shè)備接口和I/O 接口。

      嵌入式核心模塊=微處理器+電源電路+時鐘電路+存儲器

      Cache:位于主存和嵌入式微處理器內(nèi)核之間,存放的是最近一段時間微處理器使用最多的程序代碼和數(shù)據(jù)。它的主要目標(biāo)是減小存儲器給微處理器內(nèi)核造成的存儲器訪問瓶頸,使處理速度更快。

      (2)中間層(也稱為硬件抽象層HAL 或者板級支持包BSP):它將系統(tǒng)上層軟件和底層硬件分離開來,使系統(tǒng)上層軟件開發(fā)人員無需關(guān)系底層硬件的具體情況,根據(jù)BSP 層提供的接口開發(fā)即可。

      BSP 有兩個特點:硬件相關(guān)性和操作系統(tǒng)相關(guān)性。

      設(shè)計一個完整的BSP 需要完成兩部分工作:

      A、嵌入式系統(tǒng)的硬件初始化和BSP 功能。

      片級初始化:純硬件的初始化過程,把嵌入式微處理器從上電的默認狀態(tài)逐步設(shè)置成系統(tǒng)所要求的工作狀態(tài)。

      板級初始化:包含軟硬件兩部分在內(nèi)的初始化過程,為隨后的系統(tǒng)初始化和應(yīng)用程序建立硬件和軟件的運行環(huán)境。

      系統(tǒng)級初始化:以軟件為主的初始化過程,進行操作系統(tǒng)的初始化。

      B、設(shè)計硬件相關(guān)的設(shè)備驅(qū)動。

      (3)系統(tǒng)軟件層:由RTOS、文件系統(tǒng)、GUI、網(wǎng)絡(luò)系統(tǒng)及通用組件模塊組成。

      RTOS 是嵌入式應(yīng)用軟件的基礎(chǔ)和開發(fā)平臺。

      (4)應(yīng)用軟件:由基于實時系統(tǒng)開發(fā)的應(yīng)用程序組成。2.嵌入式系統(tǒng)的定義

      (1)定義:以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計算機系統(tǒng)。

      (2)嵌入式系統(tǒng)發(fā)展的4 個階段:無操作系統(tǒng)階段、簡單操作系統(tǒng)階段、實時操作系統(tǒng)階段、面向Internet 階段。

      (3)知識產(chǎn)權(quán)核(IP 核):具有知識產(chǎn)權(quán)的、功能具體、接口規(guī)范、可在多個集成電路設(shè)計中重復(fù)使用的功能模塊,是實現(xiàn)系統(tǒng)芯片(SOC)的基本構(gòu)件。

      (4)IP 核模塊有行為、結(jié)構(gòu)和物理3 級不同程度的設(shè)計,對應(yīng)描述功能行為的不同可以分為三類:軟核、固核、硬核。3.實時系統(tǒng)的調(diào)度

      (1)調(diào)度:給定一組實時任務(wù)和系統(tǒng)資源,確定每個任務(wù)何時何地執(zhí)行的整個過程。

      (2)搶占式調(diào)度:通常是優(yōu)先級驅(qū)動的調(diào)度,如uCOS。優(yōu)點是實時性好、反應(yīng)快,調(diào)度算法相對簡單,可以保證高優(yōu)先級任務(wù)的時間約束;缺點是上下文切換多。

      (3)非搶占式調(diào)度:通常是按時間片分配的調(diào)度,不允許任務(wù)在執(zhí)行期間被中斷,任務(wù)一旦占用處理器就必須執(zhí)行完畢或自愿放棄,如WinCE。優(yōu)點是上下文切換少;缺點是處理器有效資源利用率低,可調(diào)度性不好。

      (4)靜態(tài)表驅(qū)動策略:系統(tǒng)在運行前根據(jù)各任務(wù)的時間約束及關(guān)聯(lián)關(guān)系,采用某種搜索策略生成一張運行時刻表,指明各任務(wù)的起始運行時刻及運行時間。

      (5)優(yōu)先級驅(qū)動策略:按照任務(wù)優(yōu)先級的高低確定任務(wù)的執(zhí)行順序。

      (6)實時任務(wù)分類:周期任務(wù)、偶發(fā)任務(wù)、非周期任務(wù)。

      (7)實時系統(tǒng)的通用結(jié)構(gòu)模型:數(shù)據(jù)采集任務(wù)實現(xiàn)傳感器數(shù)據(jù)的采集,數(shù)據(jù)處理任務(wù)處理采集的數(shù)據(jù)、并將加工后的數(shù)據(jù)送到執(zhí)行機構(gòu)管理任務(wù)控制機構(gòu)執(zhí)行。4.實時系統(tǒng)

      (1)定義:能在指定或確定的時間內(nèi)完成系統(tǒng)功能和對外部或內(nèi)部、同步或異步時間做出響應(yīng)的系統(tǒng)。

      (2)區(qū)別:通用系統(tǒng)一般追求的是系統(tǒng)的平均響應(yīng)時間和用戶的使用方便;而實時系統(tǒng)主要考慮的是在最壞情況下的系統(tǒng)行為。

      (3)特點:時間約束性、可預(yù)測性、可靠性、與外部環(huán)境的交互性。

      (4)硬實時(強實時):指應(yīng)用的時間需求應(yīng)能夠得到完全滿足,否則就造成重大安全事故,甚至造成重大的生命財產(chǎn)損失和生態(tài)破壞,如:航天、軍事。

      (5)軟實時(弱實時):指某些應(yīng)用雖然提出了時間的要求,但實時任務(wù)偶爾違反這種需求對系統(tǒng)運行及環(huán)境不會造成嚴(yán)重影響,如:監(jiān)控系統(tǒng)、實時信息采集系統(tǒng)。

      (6)任務(wù)的約束包括:時間約束、資源約束、執(zhí)行順序約束和性能約束。5.嵌入式微處理器體系結(jié)構(gòu)

      (1)馮諾依曼結(jié)構(gòu):程序和數(shù)據(jù)共用一個存儲空間,程序指令存儲地址和數(shù)據(jù)存儲地址指向同一個存儲器的不同物理位置,采用單一的地址及數(shù)據(jù)總線,程序和數(shù)據(jù)的寬度相同。例如:8086、ARM7、MIPS?

      (2)哈佛結(jié)構(gòu):程序和數(shù)據(jù)是兩個相互獨立的存儲器,每個存儲器獨立編址、獨立訪問,是一種將程序存儲和數(shù)據(jù)存儲分開的存儲器結(jié)構(gòu)。例如:AVR、ARM9、ARM10?

      (3)CISC 與RISC 的特點比較(參照教程22 頁)。

      計算機執(zhí)行程序所需要的時間P 可以用下面公式計算:

      P=I×CPI×T

      I:高級語言程序編譯后在機器上運行的指令數(shù)。

      CPI:為執(zhí)行每條指令所需要的平均周期數(shù)。

      T:每個機器周期的時間。

      (4)流水線的思想:在CPU 中把一條指令的串行執(zhí)行過程變?yōu)槿舾芍噶畹淖舆^程在CPU 中重疊執(zhí)行。

      (5)流水線的指標(biāo):

      吞吐率:單位時間里流水線處理機流出的結(jié)果數(shù)。如果流水線的子過程所用時間不一樣長,則吞吐率應(yīng)為最長子過程的倒數(shù)。

      建立時間:流水線開始工作到達最大吞吐率的時間。若m 個子過程所用時間一樣,均為t,則建立時間T=mt。

      (6)信息存儲的字節(jié)順序

      A、存儲器單位:字節(jié)(8 位)

      B、字長決定了微處理器的尋址能力,即虛擬地址空間的大小。

      C、32 位微處理器的虛擬地址空間位2^32,即4GB。

      D、小端字節(jié)順序:低字節(jié)在內(nèi)存低地址處,高字節(jié)在內(nèi)存高地址處。

      E、大端字節(jié)順序:高字節(jié)在內(nèi)存低地址處,低字節(jié)在內(nèi)存高地址處。

      F、網(wǎng)絡(luò)設(shè)備的存儲順序問題取決于OSI 模型底層中的數(shù)據(jù)鏈路層。6.邏輯電路基礎(chǔ)

      (1)根據(jù)電路是否具有存儲功能,將邏輯電路劃分為:組合邏輯電路和時序邏輯電路。

      (2)組合邏輯電路:電路在任一時刻的輸出,僅取決于該時刻的輸入信號,而與輸入信號作用前電路的狀態(tài)無關(guān)。常用的邏輯電路有譯碼器和多路選擇器等。

      (3)時序邏輯電路:電路任一時刻的輸出不僅與該時刻的輸入有關(guān),而且還與該時刻電路的狀態(tài)有關(guān)。因此,時序電路中必須包含記憶元件。觸發(fā)器是構(gòu)成時序邏輯電路的基礎(chǔ)。常用的時序邏輯電路有寄存器計數(shù)器等。

      (4)真值表、布爾代數(shù)、摩根定律、門電路的概念。(教程28、29 頁)

      (5)NOR(或非)和NAND(與非)的門電路稱為全能門電路,可以實現(xiàn)任何一種邏輯函數(shù)。

      (6)譯碼器:多輸入多輸出的組合邏輯網(wǎng)絡(luò)。

      每輸入一個n 位的二進制代碼,在m 個輸出端中最多有一個有效。

      當(dāng)m=2n 是,為全譯碼;當(dāng)m<2n 時,為部分譯碼。

      (7)由于集成電路的高電平輸出電流小,而低電平輸出電流相對比較大,采用集成門電路直接驅(qū)動LED時,較多采用低電平驅(qū)動方式。液晶七段字符顯示器LCD 利用液晶有外加電場和無外加電場時不同的光學(xué)特性來顯示字符。

      (8)時鐘信號是時序邏輯的基礎(chǔ),它用于決定邏輯單元中的狀態(tài)合適更新。同步是時鐘控制系統(tǒng)中的主要制約條件。

      (9)在選用觸發(fā)器的時候,觸發(fā)方式是必須考慮的因素。觸發(fā)方式有兩種:

      電平觸發(fā)方式:具有結(jié)構(gòu)簡單的特點,常用來組成暫存器。

      邊沿觸發(fā)方式:具有很強的抗數(shù)據(jù)端干擾能力,常用來組成寄存器、計數(shù)器等。7.總線電路及信號驅(qū)動

      (1)總線是各種信號線的集合,是嵌入式系統(tǒng)中各部件之間傳送數(shù)據(jù)、地址和控制信息的公共通路。在同一時刻,每條通路線路上能夠傳輸一位二進制信號。按照總線所傳送的信息類型,可以分為:數(shù)據(jù)總線(DB)、地址總線(AB)和控制總線(CB)。

      (2)總線的主要參數(shù):

      總線帶寬:一定時間內(nèi)總線上可以傳送的數(shù)據(jù)量,一般用MByte/s 表示。

      總線寬度:總線能同時傳送的數(shù)據(jù)位數(shù)(bit),即人們常說的32 位、64 位等總線寬度的概念,也叫總線位寬??偩€的位寬越寬,總線每秒數(shù)據(jù)傳輸率越大,也就是總線帶寬越寬。

      總線頻率:工作時鐘頻率以MHz 為單位,工作頻率越高,則總線工作速度越快,也即總線帶寬越寬。

      總線帶寬= 總線位寬×總線頻率/8,單位是MBps。

      常用總線:ISA 總線、PCI 總線、IIC 總線、SPI 總線、PC104 總線和CAN 總線等。

      (3)只有具有三態(tài)輸出的設(shè)備才能夠連接到數(shù)據(jù)總線上,常用的三態(tài)門為輸出緩沖器。

      (4)當(dāng)總線上所接的負載超過總線的負載能力時,必須在總線和負載之間加接緩沖器或驅(qū)動器,最常用的是三態(tài)緩沖器,其作用是驅(qū)動和隔離。

      (5)采用總線復(fù)用技術(shù)可以實現(xiàn)數(shù)據(jù)總線和地址總線的共用。但會帶來兩個問題:

      A、需要增加外部電路對總線信號進行復(fù)用解耦,例如:地址鎖存器。

      B、總線速度相對非復(fù)用總線系統(tǒng)低。

      (6)兩類總線通信協(xié)議:同步方式、異步方式。

      (7)對總線仲裁問題的解決是以優(yōu)先級(優(yōu)先權(quán))的概念為基礎(chǔ)。8.電平轉(zhuǎn)換電路

      (1)數(shù)字集成電路可以分為兩大類:雙極型集成電路(TTL)、金屬氧化物半導(dǎo)體(MOS)。

      (2)CMOS 電路由于其靜態(tài)功耗極低,工作速度較高,抗干擾能力較強,被廣泛使用。

      (3)解決TTL 與CMOS 電路接口困難的辦法是在TTL 電路輸出端與電源之間接一上拉電阻R,上拉電阻R 的取值由TTL 的高電平輸出漏電流IOH 來決定,不同系列的TTL 應(yīng)選用不同的R 值。9.差錯控制編碼

      (1)根據(jù)碼組的功能,可以分為檢錯碼和糾錯碼兩類。檢錯碼是指能自動發(fā)現(xiàn)差錯的碼,例如奇偶檢驗碼;糾錯碼是指不僅能發(fā)現(xiàn)差錯而且能自動糾正差錯的碼,例如循環(huán)冗余校驗碼。

      (2)奇偶檢驗碼、海明碼、循環(huán)冗余校驗碼(CRC)。(教程70 到77 頁)10.嵌入式系統(tǒng)的度量項目

      (1)性能指標(biāo):分為部件性能指標(biāo)和綜合性能指標(biāo),主要包括:吞吐率、實時性和各種利用率。

      (2)可靠性與安全性

      可靠性是嵌入式系統(tǒng)最重要、最突出的基本要求,是一個嵌入式系統(tǒng)能正常工作的保證,一般用平均故障間隔時間MTBF 來度量。

      (3)可維護性:一般用平均修復(fù)時間MTTR 表示。

      (4)可用性

      (5)功耗

      (6)環(huán)境適應(yīng)性

      (7)通用性

      (8)安全性

      (9)保密性

      (10)可擴展性

      性價比中的價格,除了直接購買嵌入式系統(tǒng)的價格外,還應(yīng)包含安裝費用、若干年的運行維修費用和軟件租用費。

      11.嵌入式系統(tǒng)中信息表示與運算基礎(chǔ)

      (1)進位計數(shù)制與轉(zhuǎn)換:這樣比較簡單,也應(yīng)該掌握怎么樣進行換算,有出題的可能。

      (2)計算機中數(shù)的表示:源碼、反碼與補碼。

      正數(shù)的反碼與源碼相同,負數(shù)的反碼為該數(shù)的源碼除符號位外按位取反。

      正數(shù)的補碼與源碼相同,負數(shù)的補碼為該數(shù)的反碼加一。

      例如-98 的源碼:11100010B

      反碼:10011101B

      補碼:10011110B

      (3)定點表示法:數(shù)的小數(shù)點的位置人為約定固定不變。

      浮點表示法:數(shù)的小數(shù)點位置是浮動的,它由尾數(shù)部分和階數(shù)部分組成。

      任意一個二進制N 總可以寫成:N=2P×S。S 為尾數(shù),P 為階數(shù)。(4)漢字表示法(教程67、68 頁),搞清楚GB2318-80 中國標(biāo)碼和機內(nèi)碼的變換。

      (5)語音編碼中波形量化參數(shù)(可能會出簡單的計算題目哦)

      采樣頻率:一秒內(nèi)采樣的次數(shù),反映了采樣點之間的間隔大小。

      人耳的聽覺上限是20kHz,因此40kHz 以上的采樣頻率足以使人滿意。

      CD 唱片采用的采樣頻率是44.1kHz。

      測量精度:樣本的量化等級,目前標(biāo)準(zhǔn)采樣量級有8 位和16 位兩種。

      聲道數(shù):單聲道和立體聲雙道。立體聲需要兩倍的存儲空間。12.嵌入式系統(tǒng)的評價方法:測量法和模型法

      (1)測量法是最直接最基本的方法,需要解決兩個問題:

      A、根據(jù)研究的目的,確定要測量的系統(tǒng)參數(shù)。

      B、選擇測量的工具和方式。

      (2)測量的方式有兩種:采樣方式和事件跟蹤方式。

      (3)模型法分為分析模型法和模擬模型法。分析模型法是用一些數(shù)學(xué)方程去刻畫系統(tǒng)的模型,而模擬模型法是用模擬程序的運行去動態(tài)表達嵌入式系統(tǒng)的狀態(tài),而進行系統(tǒng)統(tǒng)計分析,得出性能指標(biāo)。

      (4)分析模型法中使用最多的是排隊模型,它包括三個部分:輸入流、排隊規(guī)則和服務(wù)機構(gòu)。

      (5)使用模型對系統(tǒng)進行評價需要解決3 個問題:設(shè)計模型、解模型、校準(zhǔn)和證實模型。13.1.嵌入式微處理器的基本結(jié)構(gòu)

      (1)嵌入式硬件系統(tǒng)一般由嵌入式微處理器、存儲器和輸入/輸出部分組成。

      (2)嵌入式微處理器是嵌入式硬件系統(tǒng)的核心,通常由控制單元、算術(shù)邏輯單元和寄存器3大部分組成:

      A、控制單元:主要負責(zé)取指、譯碼和取數(shù)等基本操作并發(fā)送主要的控制指令。

      B、算術(shù)邏輯單元:主要處理數(shù)值型數(shù)據(jù)和進行邏輯運算工作。

      C、寄存器:用于暫存臨時性的數(shù)據(jù)。

      2.嵌入式微處理器的分類(根據(jù)用途)

      (1)嵌入式微控制器(MCU):又稱為單片機,片上外設(shè)資源一般比較豐富,適合于控制。最大的特點是單片化,體積小,功耗和成本低,可靠性高。目前約占70%的市場份額。

      (2)嵌入式微處理器(EMPU):又稱為單板機,由通用計算機中的CPU 發(fā)展而來,它的特征是具有32位以上的處理器,具有較高的性能。通常嵌入式微處理器把CPU、ROM、RAM 及I/O 等模塊做到同一個芯片上。

      (3)嵌入式DSP 處理器(DSP):專門用于信號處理方面的處理器,其在系統(tǒng)結(jié)構(gòu)和指令算法方面進行了特殊設(shè)計,使其處理速度比最快的CPU 還快10~50倍,在數(shù)字濾波、FFT、頻譜分析等方面獲得了大量的應(yīng)用。

      (4)嵌入式片上系統(tǒng)(SOC):追求產(chǎn)品系統(tǒng)最大包容的集成器件,其最大的特點是成功實現(xiàn)了軟硬件的無縫結(jié)合,直接在微處理器片內(nèi)嵌入操作系統(tǒng)的代碼模塊。

      3.典型8位微處理器(具有8位數(shù)據(jù)總線)的結(jié)構(gòu)和特點

      該部分參考《教程》86~94頁,以8051為重點,徹底搞清楚8位單片機的工作原理,外設(shè)控制、存儲分布、尋址方式以及典型應(yīng)用。2007年11月下午的第一道題目就考查了8051的定時器使用、外部時鐘連接、實際應(yīng)用的流程設(shè)計以及典型的尋址方式。這些考點幾乎可以在《教程》上找到,例如外部時鐘連接那個問題的答案就是《教程》89頁上面的原圖。4.典型16位微處理器的結(jié)構(gòu)和特點

      該部分參考《教程》94~97頁。典型的微處理器可以參考MSP430,找一本這方面的書看看關(guān)于MSP430的結(jié)構(gòu)原理以及典型應(yīng)用。

      5.典型32位微處理器的結(jié)構(gòu)和特點

      該部分參考《教程》97~112頁。32位處理器采用32位的地址和數(shù)據(jù)總線,其地址空間達到了2^32=4GB。

      目前主流的32位嵌入式處理器系統(tǒng)主要有ARM 系列、MIPS 系列、PoewrPC 系列等。ARM 微處理器體系結(jié)構(gòu)目前被公認為是嵌入式應(yīng)用領(lǐng)域領(lǐng)先的32位嵌入式RISC 處理器結(jié)構(gòu)。按照目前的發(fā)展形式,ARM 幾乎成了嵌入式應(yīng)用的代名詞。按照我個人的意見,作為嵌入式系統(tǒng)設(shè)計師考試,逐漸增加考查ARM 體系結(jié)構(gòu)與編程方面的題目是大勢所趨。2006年沒有一道關(guān)于ARM 的題目,2007年出了少量題目,可能在2008年會繼續(xù)增加。在下午題方面,2006年考查了X86方面的應(yīng)用、2007年考查了8051方面的應(yīng)用,這個可能是一個過度過程,以目前ARM 在嵌入式領(lǐng)域的廣泛應(yīng)用和普及程度,下午題目考查ARM 應(yīng)用方面或者32位其他的微處理器方面的應(yīng)用題目可能在不就將來的考試中就會出現(xiàn)。14.單片機系統(tǒng)的基本概念

      (1)單片機組成:中央處理器、存儲器、I/O 設(shè)備。

      (2)存儲器:物理實質(zhì)是一組或多組具備數(shù)據(jù)輸入/輸出和數(shù)據(jù)存儲功能的集成電路,用于充當(dāng)設(shè)備緩存或保存固定的程序及數(shù)據(jù)。

      A、ROM(只讀存儲器):一般用于存放固定的程序或數(shù)據(jù)表格等,數(shù)據(jù)在掉電后仍然會保留下來。

      B、RAM(隨機存儲器):用于暫存程序和數(shù)據(jù)、中間計算結(jié)果,或用作堆棧用等,數(shù)據(jù)在掉電后就會丟失。

      (3)I/O端口:單片機與外界聯(lián)系的通道,它可以對各類外部信號(開關(guān)量、模擬量、頻率信號)進行檢測、判斷、處理,并可控制各類外部設(shè)備?,F(xiàn)在的單片機I/O 口已經(jīng)集成了更多的特性和功能,對I/O端口的功能進行了拓展和復(fù)用,例如外部中斷、ADC 檢測以及PWM 輸出等等。

      (4)輸出電平:高電平電壓(輸出“1”時)和低電平電壓(輸出“0”時)

      A、TTL 電平:正邏輯,5V 為邏輯正,0V 為邏輯負,例如單片機的輸出。

      B、RS232電平:負邏輯,-12V 為邏輯正,+12V 為邏輯負,例如PC 的輸出。

      注:因此在單片機和PC 進行通訊的時候需要一個MAX232芯片進行電平轉(zhuǎn)換。

      (5)堆棧:它是一種線性的數(shù)據(jù)結(jié)構(gòu),是一個只有一個進出口的一維空間。

      A、堆棧特性:后進先出(LIFO)

      B、堆棧指針:用于指示棧頂?shù)奈恢?地址),當(dāng)發(fā)生壓?;蛘叱鰲2僮鲿r,導(dǎo)致棧頂位置變化時,堆棧指針會隨之變化。

      C、堆棧操作:壓棧操作(PUSH)和出棧操作(POP)。

      D、堆棧類型:“向上生長”型堆棧,每次壓棧時堆棧指針加1;“向下生長”型堆棧,每次壓棧堆棧時指針減1。

      E、堆棧應(yīng)用:調(diào)用子程序、響應(yīng)中斷時,堆棧用于保護現(xiàn)場;還可以用作臨時數(shù)據(jù)緩沖區(qū)來使用。

      F、使用注意:堆棧溢出問題,壓棧和出棧的匹配問題。

      (6)定時/計數(shù)器:實質(zhì)都是計數(shù)器。用作定時器時是對單片機內(nèi)部的時鐘脈沖進行計數(shù),而在用作計數(shù)器時是對單片機外部的輸入脈沖進行計數(shù),其作用如下:

      A、計時、定時或延時控制;

      B、脈沖技術(shù);

      C、測量脈沖寬度或頻率(捕獲功能)

      (7)中斷:優(yōu)先級更高的事件發(fā)生,打斷優(yōu)先級低的時間進程。引起中斷的事件稱為中斷源。一個單片機可能支持多個中斷源,這些中斷源可以分為可屏蔽中斷和非可屏蔽中斷,而這些中斷源并不都是系統(tǒng)工作所需的,我們可以根據(jù)系統(tǒng)需求屏蔽那些不需要的中斷源。

      A、中斷嵌套:當(dāng)一個低級中斷尚未執(zhí)行完畢,又發(fā)生了一個高級優(yōu)先級的中斷,系統(tǒng)轉(zhuǎn)而執(zhí)行高級中斷服務(wù)程序,待處理完高級中斷后再回過頭來執(zhí)行低級中斷服務(wù)程序。

      B、中斷響應(yīng)時間是指從發(fā)出中斷請求到進入中斷處理所用的時間;中斷處理時間是指中斷處理開始到中斷處理結(jié)束的時間。

      C、中斷響應(yīng)過程:

      a、保護現(xiàn)場:將當(dāng)前地址、累加器ACC、狀態(tài)寄存器保存到堆棧中。

      b、切換PC 指針:根據(jù)不同的中斷源所產(chǎn)生的中斷,切換到相應(yīng)的入口地址。

      c、執(zhí)行中斷服務(wù)處理程序。

      d、恢復(fù)現(xiàn)場:將保存在堆棧中的主程序地址、累加器ACC、狀態(tài)寄存器恢復(fù)。

      e、中斷返回:從中斷處返回到主程序,繼續(xù)執(zhí)行。

      D、中斷入口地址:單片機為每個中斷源分配了不同的中斷入口地址,也稱為中斷向量。

      (8)復(fù)位:通過外部電路給單片機的復(fù)位引進一個復(fù)位信號,讓系統(tǒng)重新開始運行。

      A、復(fù)位發(fā)生時的動作:

      a、PC 指針從起始位置開始執(zhí)行(大多數(shù)單片機都時從0x0000處開始執(zhí)行)。

      b、I/O 端口設(shè)置成缺省狀態(tài)(高阻態(tài)、或者輸出低電平)。

      c、部分專用控制寄存器SFR 恢復(fù)到缺省狀態(tài)。

      d、普通RAM 不變(如果時上電復(fù)位,則是隨即數(shù))。

      B、兩種不同的復(fù)位啟動方式:

      a、冷啟動:也叫上電復(fù)位,指在斷電狀態(tài)下給系統(tǒng)加電,讓系統(tǒng)開始正常運行。

      b、熱啟動:在不斷電的狀態(tài)下,給單片機復(fù)位引進一個復(fù)位信號,讓系統(tǒng)重新開始。

      C、兩種類型的復(fù)位電路:高電平復(fù)位和低電平復(fù)位。

      D 注意事項:

      a、注意復(fù)位信號的電平狀態(tài)及持續(xù)時間必須滿足系統(tǒng)要求。

      b、注意避免復(fù)位信號抖動。

      (9)時鐘電路:單片機是一種時序電路,必須提供脈沖電路才能正常工作。時鐘電路相當(dāng)于單片機的心臟,它的每一次跳動(振動節(jié)拍)都控制著單片機的工作節(jié)奏。振蕩得慢時,系統(tǒng)工作速度就慢,振蕩得快時,系統(tǒng)工作速度就快(功耗也增大)。

      A、振蕩周期:振蕩源的振蕩節(jié)拍。

      B、機器周期:單片機完成一個基本操作需要的振蕩周期(節(jié)拍)。

      C、指令周期:執(zhí)行一條指令需要幾個機器周期。不同的指令需要的機器周期數(shù)不同。15.地址映射

      地址映射也叫地址重定位。

      邏輯地址和物理地址是完全不同的,不能用邏輯地址來直接訪問內(nèi)存單元。

      為了保證CPU 在執(zhí)行指令的時候,可以正確地訪問內(nèi)存單元,需要將用戶程序中的邏輯地址轉(zhuǎn)換為運行時由機器直接尋址的物理地址。這個過程稱為:地址映射。

      地址映射由存儲管理單元MMU 來完成。

      地址映射主要有兩種方式:靜態(tài)地址映射和動態(tài)地址映射。

      靜態(tài)地址映射:當(dāng)用戶程序被裝入內(nèi)存時,直接對指令代碼進行修改,一次性地實現(xiàn)邏輯地址到物理地址的轉(zhuǎn)換。

      動態(tài)地址映射:當(dāng)用戶程序被裝入內(nèi)存時,不對指令代碼做任何修改,而是在程序的運行過程中,當(dāng)它需要訪問內(nèi)存單元的時候,再來進行地址轉(zhuǎn)換。

      在具體實現(xiàn)時,這項轉(zhuǎn)換工作一般是由硬件的地址映射機制來完成的。通常設(shè)置一個基地址寄存器,或者叫重定位寄存器。當(dāng)一個任務(wù)被調(diào)度運行時,就把它所在分區(qū)的起始地址裝入到整個寄存器中。然后,在程序運行的過程中,當(dāng)需要訪問某個內(nèi)存單元時,硬件就會自動地將其中的邏輯地址加上基地址寄存器中的內(nèi)容,從而得到實際的物理地址,并且按照這個物理地址區(qū)執(zhí)行。

      這個基地址寄存器位于MMU 的內(nèi)部,整個地址映射過程是自動運行的。從理論上說,每訪問一次內(nèi)存都要進行一次地址映射。16.ARM體系結(jié)構(gòu)的基本概念

      (1)ARM:Advanced RISC Machine。

      (2)ARM體系結(jié)構(gòu)中支持兩種指令集:ARM 指令集和Thumb 指令集。

      (3)ARM內(nèi)核有T、D、M、I四個功能模塊:

      A、T 模塊:表示16位Thumb,可以在兼顧性能的同時減少代碼尺寸。

      B、D 模塊:表示Debug,內(nèi)核中放置了用于調(diào)試的結(jié)構(gòu),通常為一個邊界掃描鏈JTAG。

      C、M 模塊:表示8位乘法器。

      D、I 模塊:表示EmbeddedICE Logic,用于實時斷點觀測及變量觀測的邏輯電路部分。

      (4)ARM處理器有7種運行模式:

      A、用戶模式(User):正常程序執(zhí)行模式,用于應(yīng)用程序。

      D、快速中斷模式(FIQ):快速中斷處理,用于高速數(shù)據(jù)傳輸和通道處理。

      C、外部中斷模式(IRQ):用于通用的中斷處理。

      D、管理模式(SVE):供操作系統(tǒng)使用的一種保護模式。

      E、數(shù)據(jù)訪問中止模式(Abort):用于虛擬存儲及存儲保護。

      F、未定義指令中止模式(Undefined):當(dāng)未定義指令執(zhí)行時進入該模式。

      G、系統(tǒng)模式(System):用于運行特權(quán)級的操作系統(tǒng)任務(wù)。

      除了用戶模式之外的其他6種處理器模式稱為特權(quán)模式,在這些模式下,程序可以訪問所有的系統(tǒng)資源,也可以任意地進行處理器模式切換,其中,除了系統(tǒng)模式外,其他的5種特權(quán)模式又稱為異常模式。

      處理器模式可以通過軟件控制進行切換,也可以通過外部中斷或異常處理過程進行切換。大多數(shù)的用戶程序運行在用戶模式下,這時,應(yīng)用程序不能訪問一些受操作系統(tǒng)保護的系統(tǒng)資源,應(yīng)用程序也不能直接進行處理器模式切換。當(dāng)需要進行處理器模式切換時,應(yīng)用程序可以產(chǎn)生異常處理,在異常處理中進行處理器模式的切換。這種體系結(jié)構(gòu)可以使操作系統(tǒng)控制整個系統(tǒng)的資源。

      當(dāng)應(yīng)用程序發(fā)生異常中斷時,處理器進入相應(yīng)的異常模式。在每一種異常模式種都有一組寄存器,供相應(yīng)的異常處理程序使用,這樣就可以保證進入異常模式時,用戶模式下的寄存器不被破壞。系統(tǒng)模式并不是通過異常過程進入的,它和用戶模式具有完全一樣的寄存器,但是系統(tǒng)模式屬于特權(quán)模式,可以訪問所有的系統(tǒng)資源,也可以直接進行處理器模式切換,它主要供操作系統(tǒng)任務(wù)使用。17.嵌入式操作系統(tǒng)概述

      (1)內(nèi)核

      內(nèi)核是指操作系統(tǒng)中的一個組件,它包含了OS 的主要功能,即OS 的各種特性及其相

      互之間的依賴關(guān)系,這些功能主要包括:

      A、任務(wù)管理:對系統(tǒng)中運行的軟件進行描述和管理,并完成處理器資源分配和調(diào)度。

      B、存儲管理:提高內(nèi)存的利用率,方便用戶使用,提供足夠的存儲空間。

      C、設(shè)備管理:方便設(shè)備的使用,提高CPU 和I/O 設(shè)備的利用率。

      D、文件管理:解決文件資源存儲、共享、保密和保護等問題。

      注:不同嵌入式操作系統(tǒng)的內(nèi)核設(shè)計各不相同,取決于系統(tǒng)設(shè)計和實際需求。

      (2)嵌入式操作系統(tǒng)分類:

      A、按系統(tǒng)類型:商業(yè)系統(tǒng)、專用系統(tǒng)、開源系統(tǒng)。

      B、按響應(yīng)時間:硬實時系統(tǒng)、軟實時系統(tǒng)。

      C、按軟件結(jié)構(gòu):單體結(jié)構(gòu)(uCOS)、分層結(jié)構(gòu)(MS-DOS)、微內(nèi)核結(jié)構(gòu)(Vxworks)。18.嵌入式軟件基礎(chǔ)

      (1)嵌入式軟件的特點:

      A、規(guī)模較小。

      B、開發(fā)難度大。

      C、實時性和可靠性要求高。

      D、要求固化存儲。

      (2)嵌入式軟件分類:

      A、系統(tǒng)軟件:控制和管理嵌入式系統(tǒng)資源,如嵌入式操作系統(tǒng)、驅(qū)動程序、中間件等。

      B、應(yīng)用軟件:定義嵌入式設(shè)備的主要功能和用途,負載與用戶進行交互。

      C、支撐軟件:輔助軟件開發(fā)的工具軟件。

      (3)無操作系統(tǒng)的嵌入式軟件的兩種實現(xiàn)方式:

      A、循環(huán)輪轉(zhuǎn)

      優(yōu)點:簡單、直觀、開銷小、可預(yù)測。

      缺點:過于簡單,所有代碼順序執(zhí)行,無法處理異步事件,缺乏并行處理能力。

      B、前后臺系統(tǒng)(在循環(huán)輪轉(zhuǎn)的基礎(chǔ)上增加了中斷處理功能)

      前臺(事件處理級):中斷服務(wù)程序,負載處理異步事件。

      后臺(任務(wù)級):一個無限循環(huán),負載資源分配、任務(wù)管理和系統(tǒng)調(diào)度。

      (4)有操作系統(tǒng)的三大優(yōu)點:

      A、提高系統(tǒng)的可靠性。

      B、提高了系統(tǒng)的開發(fā)效率,降低了開發(fā)成本,縮短了開發(fā)周期。

      C、有利于系統(tǒng)的擴展與移植。

      (5)設(shè)備驅(qū)動層(也叫板級支持包BSP:包含了嵌入式系統(tǒng)中所有與硬件相關(guān)的代碼)

      大多數(shù)的嵌入式硬件設(shè)備都需要某種類型軟件的初始化和管理。這部分工作由設(shè)備驅(qū)動層來完成的,它負責(zé)直接與硬件大交道,對硬件進行管理和控制,為上層軟件提供所需的驅(qū)動支持,類似PC 系統(tǒng)中的BIOS 和驅(qū)動程序。19.設(shè)備管理

      (1)設(shè)備管理基礎(chǔ)

      一個I/O 單元通常由兩個部分組成:

      A、機械部分:I/O 設(shè)備本身。

      B、電子部分:設(shè)備控制器或設(shè)備適配器。

      硬件寄存器的編址方式有三種:

      A、I/O獨立編址:對于各種設(shè)備控制器中的每一個寄存器,分配一個唯一的I/O端口編號,也叫I/O 端口地址,然后用專門的I/O 指令對這些端口進行操作。這些端口地址構(gòu)成的地址空間是完全獨立的,與內(nèi)存地址空間沒有任何關(guān)系。

      B、內(nèi)存映象編址:把各種設(shè)備控制器當(dāng)中的每一個寄存器都映射為一個內(nèi)存單元,這內(nèi)存單元專門用于I/O 操作。端口地址空間與內(nèi)存地址空間是統(tǒng)一編址的,端口地址空間是內(nèi)存地址空間的一部分。

      C、混合編址:對于設(shè)備控制器當(dāng)中的寄存器采用獨立編址的方法,每個寄存器有一個獨立的I/O 端口地址;而對于設(shè)備的數(shù)據(jù)緩沖區(qū),則采用內(nèi)存映象編址的方法,把他們統(tǒng)一到內(nèi)存地址空間當(dāng)中。

      (2)I/O控制方式:

      A、程序循環(huán)檢測:要一直占用CPU,浪費CPU 的時間。

      B、中斷驅(qū)動方式:前后臺系統(tǒng)。

      C、直接內(nèi)存訪問:DMA 控制,減少了中斷的次數(shù)。20.任務(wù)管理

      (1)嵌入式操作系統(tǒng)的任務(wù)管理可以分為:

      A、單道程序技術(shù):操作系統(tǒng)中,任何時候只能有一個程序在運行。

      B、多道程序技術(shù):操作系統(tǒng)中,允許多個程序同時存在并運行。

      (2)進程

      進程,簡單的說,是一個正在運行的程序。

      進程與程序既有聯(lián)系又有區(qū)別,主要表現(xiàn)為下面結(jié)構(gòu)方面:

      A、程序由數(shù)據(jù)和代碼兩部分內(nèi)容組成,它是一個靜態(tài)的概念。而進程是正在執(zhí)行的程序,它也由兩部分組成:程序和該程序的運行上下文。它是一個動態(tài)的概念。

      B、程序和進程之間并不是一一對應(yīng)的。一個進程在運行的時候可以啟動一個或多個程序。反之,同一個程序也可能由多進程同時執(zhí)行。

      C、程序可以作為一種軟件資源長期保存,以文件的形式存放在光盤或硬盤上,而進程則是一次執(zhí)行的過程,它是暫時的,是動態(tài)的產(chǎn)生和終止。

      一個進程至少應(yīng)包括三個方面:相應(yīng)的程序、CPU上下文、一組系統(tǒng)資源。

      進程有三個特性:

      A、動態(tài)性:進程是正在運行的程序,而程序的運行狀態(tài)是不斷變化的。

      B、獨立性:進程是系統(tǒng)資源的使用單位,每個進行有自己的運行上下文和內(nèi)部狀態(tài)。

      C、并發(fā)性:宏觀來看,系統(tǒng)中同時有多個進程存在,它們相互獨立地運行。

      注:對于并發(fā)的理解。

      在單CPU 的情況下,所謂的并發(fā)性指的是宏觀上的并發(fā)運行,而微觀上還是順序進行,各個進程輪流去使用CPU 資源。在單核CPU 中,真正的、物理上的PC 寄存器只有一個,進程在輪流執(zhí)行的時候,物理PC 的取值也在不斷變化。而邏輯PC 其實就是一個內(nèi)存變量。每個進程都有一個邏輯PC,當(dāng)一個進程要運行的時候,就把它的邏輯PC 裝載到物理PC 中去;反之,當(dāng)一個進程暫不運行的時候,就把物理PC中的值保存在它的邏輯PC 當(dāng)中。

      (3)線程

      線程就是進程當(dāng)中的一條執(zhí)行流程。

      進程其實包含兩個部分:資源平臺和執(zhí)行流程(線程)。

      在一個進程當(dāng)中,或者說在一個資源平臺上,可以同時存在多個線程;可以用線程作為CPU 的基本調(diào)度單位,使得各個線程之間可以并發(fā)執(zhí)行;對于同一個進程當(dāng)中的各個線程來說,他們可以共享該進程的大部分資源。每個線程都有自己獨立的CPU運行上下文和棧,這是不能共享的。21.文件系統(tǒng)

      (1)嵌入式文件系統(tǒng)概述

      文件系統(tǒng)就是操作系統(tǒng)中用以組織、存儲、命名、使用和保護文件的一套管理機制。

      常見的嵌入式文件系統(tǒng)有:

      A、FAT:VxWorks、QNX、WindowsCE 等

      B、NFS:網(wǎng)絡(luò)文件系統(tǒng),基于遠程調(diào)用和擴展數(shù)據(jù)表示。

      C、FFS:用于Flash 存儲器的文件系統(tǒng)。

      (2)文件和目錄

      A、當(dāng)一個文件被創(chuàng)建時,必須給它指定一個名字,用戶就是通過文件名來訪問這個文件的。

      B、文件命是一個有限長度的字符串,由兩部分組成:文件名和擴展名。

      C、文件的邏輯結(jié)構(gòu)主要有三種:無結(jié)構(gòu)、簡單的記錄結(jié)構(gòu)和復(fù)雜結(jié)構(gòu)。現(xiàn)代文件系統(tǒng)通常采用的是無結(jié)構(gòu)的形式。

      D、除了文件名之外,操作系統(tǒng)會給每個文件附加一些其他信息,稱為文件的屬性。

      E、文件的存取方法有兩種:順序存取和隨機存取。

      F、目錄也稱為文件夾,它是一張表格,記錄了在該目錄下每個文件名和其他的一些管理信息。

      G、在多級目錄結(jié)構(gòu)中,訪問文件或目錄主要有兩種方法:絕對路徑名和相對路徑名。22.存儲器系統(tǒng)的層次架構(gòu)

      計算機系統(tǒng)的存儲器被組織城一個金字塔的層次結(jié)構(gòu)。

      自上而下為:CPU 內(nèi)部寄存器、芯片內(nèi)部高速緩存(cache)、芯片外部高速緩存(SRAM、SDRAM、DRAM)、主存儲器(FLASH、EEPROM)、外部存儲器(磁盤、光盤、CF 卡、SD 卡)和遠程二級存儲器(分布式文件系統(tǒng)、WEB 服務(wù)器),6個層次的結(jié)構(gòu)。

      上述設(shè)備從上而下,依次速度更慢、容量更大、訪問頻率更小,造價更便宜。22.高速緩存(cache)

      工作原理(參照教程126頁,博客畫不了圖):主要利用了程序的局部性特點。

      地址映象是指把主存地址空間映象到cache 的地址空間。

      地址變換是指當(dāng)程序或數(shù)據(jù)已經(jīng)裝入到cache 后,在實際運行過程中,把主存地址如何編程cache 空間的地址。

      常用的地址映象和地址變換的方式有:(教程127頁)

      直接映象和變換:速度快,造價低,但有局限性,不能充分利用cache 的好處。

      組相聯(lián)地址映象和變換:速度稍慢但是命中率高。

      全相聯(lián)地址映象和變換:可以任意映射。

      常用的cache 替換算法:輪轉(zhuǎn)法和隨機替換算法。

      高速緩存的分類:

      統(tǒng)一cache 和獨立的數(shù)據(jù)/指令cache

      寫通cache 和寫回cache

      讀操作分配cache 和寫操作分配cache 23.存儲管理單元(MMU)

      MMU 在CPU 和物理內(nèi)存之間進行地址轉(zhuǎn)換,將地址從邏輯空間映射到物理空間,這個過程稱為內(nèi)存映射。

      MMU 主要完成下面的工作:

      A.虛擬存儲空間到物理空間的映射。

      B.存儲器訪問權(quán)限的控制。

      C.設(shè)置虛擬存儲空間的緩沖特性。

      嵌入式系統(tǒng)中常常采用頁式存儲管理。為了管理這些頁引入了頁表的概念。

      頁表是位于內(nèi)存中的表,它的每一行對應(yīng)虛擬存儲空間的一個頁,該行包含了該虛擬內(nèi)存頁對應(yīng)的物理內(nèi)存頁的地址、該頁的訪問權(quán)限和該頁的緩沖特性等。

      從虛擬地址到物理地址的變換過程就是查詢頁表的過程。

      由于頁表存儲在內(nèi)存中的,整個查詢過程需要付出很大的代價。根據(jù)程序局部性的特點,增加了一個小容量、高速度的存儲部件來存放當(dāng)前訪問需要的地址變換條目,這個存儲部件稱為:地址轉(zhuǎn)換后備緩沖器(TLB)。

      當(dāng)CPU 訪問內(nèi)存時,首先在TLB 中查找需要的地址變換條目,如果該條目不存在,CPU 再從內(nèi)存中的頁表中查詢,并把相應(yīng)的結(jié)果添加到TLB 中,更新它的內(nèi)容。

      嵌入式系統(tǒng)中虛擬存儲空間到物理空間的映射以內(nèi)存塊為單位進行。即虛擬存儲空間中一塊連續(xù)的存儲空間被映射到物理存儲空間中同樣大小的一塊連續(xù)存儲空間。

      在頁表和TLB 中,每一個地址變換條目實際上記錄了一個虛擬存儲空間的內(nèi)存塊的基地址與物理存儲空間相對應(yīng)的一個內(nèi)存塊的基地址之間的對應(yīng)關(guān)系。

      在MMU 中實現(xiàn)虛擬地址到物理地址的映射是通過兩級頁表來實現(xiàn)的。

      禁止MMU 時,所有物理地址和虛擬地址相等,即使用平板存儲模式。24.內(nèi)存保護

      操作系統(tǒng)通常利用MMU 來實現(xiàn)操作系統(tǒng)內(nèi)核與應(yīng)用程序之間的隔離,以及應(yīng)用程序與應(yīng)用程序之間的隔離。

      內(nèi)存保護包含兩個方面的內(nèi)容:

      A.防止地址越界,每個應(yīng)用程序都有自己獨立的地址空間。

      B.防止越權(quán)操作,每個應(yīng)用程序都有自己的訪問權(quán)限。25.實模式與保護模式

      在嵌入式系統(tǒng)中,常見的存儲管理方案可以分為兩大類:實模式和保護模式。

      實模式:內(nèi)存的平面使用模式。特點有:

      A.不劃分“系統(tǒng)空間”與“用戶空間”,無須進行地址映射。

      B.操作系統(tǒng)與應(yīng)用程序之間不再有物理的邊界。

      C.系統(tǒng)中的“任務(wù)”或“進程”,實際上全是內(nèi)核線程。

      在實模式下,內(nèi)存布局可以分為5個段:

      A.代碼段:包含操作系統(tǒng)和應(yīng)用程序的所有代碼。

      B.數(shù)據(jù)段:所有帶有初始值的全局變量。

      C.BSS 段:所有未帶初始值的全局變量。

      D.堆空間:動態(tài)分配的內(nèi)存空間。

      E.棧空間:保存上下文以及函數(shù)調(diào)用時的局部變量和形參。

      在實模式存儲管理方案下,主要的工作在于堆空間的管理,即如何來管理空閑的堆空間、如何來分配內(nèi)存、如何來回收內(nèi)存等等。

      保護模式:處理器中必須有MMU 硬件并啟用。特點有:

      A.系統(tǒng)內(nèi)核和用戶程序都有各自獨立的地址空間。

      B.每個應(yīng)用程序只能訪問自己的地址空間,不能去破壞操作系統(tǒng)和其他應(yīng)用程序的代碼和數(shù)據(jù)。26.分區(qū)存儲管理

      為了實現(xiàn)多道程序系統(tǒng)而采用的最簡單的內(nèi)存管理。

      基本思路:把整個內(nèi)存劃分為兩大區(qū)域,即系統(tǒng)區(qū)和用戶區(qū),然后再把用戶區(qū)劃分為若干個分區(qū),每個任務(wù)占有其中的一個分區(qū)。這樣,在內(nèi)存當(dāng)中就同時保留多個任務(wù),讓他們共享整個用戶區(qū),從而實現(xiàn)多個任務(wù)的并發(fā)運行。

      分區(qū)存儲管理又可以分為兩類:固定分區(qū)和可變分區(qū)。

      固定分區(qū):各個用戶分區(qū)的個數(shù)、位置和大小一旦確定后,就固定不變,不能再修改。

      優(yōu)點:易于實現(xiàn),系統(tǒng)開銷較小。

      缺點:內(nèi)存利用率不高,分區(qū)總數(shù)固定。

      可變分區(qū):動態(tài)創(chuàng)建,在裝入一個程序時,系統(tǒng)將根據(jù)它的需求和內(nèi)存空間的使用情況來決定是否分配。

      優(yōu)點:動態(tài)變化,非常靈活。

      缺點:可能存在外碎片。

      在實現(xiàn)可變存儲管理技術(shù)的時候,需要考慮三個方面的問題:

      A.內(nèi)存管理的數(shù)據(jù)結(jié)構(gòu)

      B.內(nèi)存的分配算法

      C.內(nèi)存的回收算法

      27.嵌入式系統(tǒng)的特點、分類、發(fā)展與應(yīng)用,熟悉嵌入式系統(tǒng)的邏輯組成。

      (1)特點:

      專用性

      隱蔽性(嵌入式系統(tǒng)是被包裝在內(nèi)部)

      資源受限(要求小型化、輕型化、低功耗及低成本,因此軟硬件資源受到限制)

      高可靠性(任何誤動作都可能會產(chǎn)生致命的后果)

      軟件固化(軟件都固化在只讀存儲器ROM中,用戶不能隨意更改其程序功能)

      實時性

      (2)邏輯組成

      硬件:1)處理器(運算器、控制器、存儲器)

      目前所有的處理器都是微處理器 中央處理器(CPU)和協(xié)助處理器(數(shù)字信號處理器DSP、圖像處理器、通信處理器)

      2)存儲器(隨機存儲器RAM和只讀存儲器ROM)

      RAM分為動態(tài)DRAM和靜態(tài)SRAM兩種。DRAM電路簡單、集成度高、功耗小、成本低,但速度稍慢慢;SRAM電路較復(fù)雜、集成度低、功耗較大、成本高,但工作速度很快,適合用作指令和數(shù)據(jù)的高速緩沖存儲器

      RAM當(dāng)關(guān)機或斷電時,其中的信息都會消失,屬于易失性存儲器

      ROM屬于不易失性存儲器。分為電可擦可編程只讀存儲器(存放

      固件)和閃速存儲器(Flash ROM簡稱內(nèi)存)。內(nèi)存的工作原理:在低

      壓下,存儲的信息可讀但不可寫,這類似于ROM;在較高的電壓下,所存儲的信息可以更改和刪除,這有類似于RAM。

      3)I/O設(shè)備與I/O接口

      4)數(shù)據(jù)總線

      軟件

      (3)分類

      按嵌入式系統(tǒng)的軟硬件技術(shù)復(fù)雜程度進行分類:

      1)低端系統(tǒng) 采用4位或8位單片機,在工控領(lǐng)域和白色家電領(lǐng)域占主導(dǎo)地位,如計算器、遙控器、充電器、空調(diào)、傳真機、BP機等。

      2)中端系統(tǒng) 采用8位/16位/32位單片機,主要用于普通手機、攝像機、錄像機、電子游戲機等。

      3)高端系統(tǒng)采用32位/64位單片機,主要用于智能手機、調(diào)制解調(diào)器、掌上計算機、路由器、數(shù)碼相機等。

      (4)發(fā)展

      20世紀(jì)60年代初,第一個工人的現(xiàn)代嵌入式系統(tǒng)(阿波羅導(dǎo)航計算機)

      20世紀(jì)60年代中期,嵌入式計算機批量生產(chǎn)

      20世紀(jì)70年代,微處理器出現(xiàn)

      20世紀(jì)80年代中期,外圍電路的元器件被集成到處理器芯片中,昂貴的模擬電路元件能被數(shù)字電路替代

      20世紀(jì)90年代中期SOC出現(xiàn),集成電路進入超深亞微米乃至納米加工時代。28.嵌入式系統(tǒng)的組成與微電子技術(shù)(集成電路、EDA、SoC、IP核等技術(shù)的作用和發(fā)展)

      (1)集成電路IC 集成電路的制造大約需要幾百道工序,工藝復(fù)雜。集成電路是在硅襯底上制作而成的。硅襯底是將單晶硅錠經(jīng)切割、研磨和拋光后制成的像鏡面一樣光滑的圓形薄片,它的厚度不足1mm,其直徑可以是6、8、12英寸甚至更大這種硅片稱為硅拋光片,用于集成電路的制造。制造集成電路的工藝技術(shù)稱為硅平面工藝,包括氧化、光刻、摻雜等多項工序。把這些工序反復(fù)交叉使用,最終在硅片上制成包含多層電路及電子元件的集成電路。集成電路的特點:體積小、重量輕、可靠性高。其工作速度主要取決于邏輯門電路的晶體管的尺寸。尺寸越小,工作頻率就越高,門電路的開關(guān)速度就越快。(2)EDA(電子信號自動化)(3)SoC芯片(片上系統(tǒng))

      既包含數(shù)字電路,也可以包含模擬電路,還可以包含數(shù)模混合電路和射頻電路。SoC芯片可以是一個CPU,單核SoC,也可以由多個CPU和/或DSP,即多核SoC。開發(fā)流程:

      (1)總體設(shè)計

      可以采用系統(tǒng)設(shè)計語言System C(或稱IEEE 1666,它是C++的擴充)或System Vetilog語言對SoC芯片的軟硬件作統(tǒng)一的描述,按照系統(tǒng)需求說明書確定SoC的性能能參數(shù),并據(jù)此進行系統(tǒng)全局的設(shè)計。

      (2)邏輯設(shè)計

      將總體設(shè)計的結(jié)果用RTL(寄存器傳輸級描述語言)語言進行描述(源文件)后,在使用邏輯綜合將源文件進行綜合生成,生成最簡的布爾表達式核心好的連接關(guān)系(以類型為EDF的EDA工業(yè)標(biāo)準(zhǔn)文件表示)(3)綜合和仿真

      (4)芯片制造

      借助EDA中的布局布線工具(4)IP核

      IC設(shè)計文件:邏輯門級,包括各種基本的門電路;寄存器傳輸級,如寄存器、譯碼器、數(shù)據(jù)轉(zhuǎn)換器;行為級,如CPU、DSP、存儲器、總線與接口電路等。核庫中的設(shè)計文件均屬于知識產(chǎn)權(quán)IP保護的范疇,所以稱為“知識產(chǎn)權(quán)核”或“IP核”。IP核是開發(fā)SoC的重要保證。按IC設(shè)計文件的類型,IP通常分為:軟核、固核、硬核。IP核的復(fù)用可以減少研發(fā)成本,縮短研發(fā)時間,是實現(xiàn)SoC的快速設(shè)計,盡早投放市場的有效途徑。

      目前主要的CPU內(nèi)核有ARM、MIPS、PowerPC、Coldfile、x86、8051等。ARM內(nèi)核占所有32位嵌入式RISC處理器的90%以上。

      29.嵌入式系統(tǒng)與數(shù)字媒體(文本、圖像和音頻/視頻等數(shù)字媒體的表示與處理)(1)文本

      含義:在計算機中的文字信息,最常用的一種數(shù)字媒體。字符集及其編碼

      1)西方字符的編碼

      ASCII字符集和ASCII編碼,基本的ASCII字符集共128個字符,每個字符使用7個二進位(最高位為奇偶校驗位,預(yù)留位)制進行編碼。2)漢字的編碼

      漢子國家編碼標(biāo)準(zhǔn)有GB2312和GB18030。每個漢字用2個字節(jié)表示。GB2312只有6763個漢字,經(jīng)常不夠用。GB18030字符集與UCS/Unicode字符集基本兼容,采用不等長的編碼方法,單字節(jié)編碼表示ASCII字符,與ASCII碼兼容;雙字節(jié)表示漢字,與GB2312保持向下兼容(即GB2312中有的GB18030字符集都有)3)UCS/Unicode編碼 文本類型 1)簡單文本

      只能順序閱讀。2)豐富格式文本

      有插圖、對文字顏色等定義,調(diào)整頁面,文本布局,插入聲音視頻等。3)超文本

      通過超鏈接實現(xiàn)跳轉(zhuǎn)、導(dǎo)航、回溯等操作(2)圖像

      圖像獲取過程的核心是模擬信號的數(shù)字化,處理步驟為:

      1)掃描

      將畫面網(wǎng)格化,每個網(wǎng)格為一個取樣點 2)分色

      將每個取樣點的顏色分解成三原色

      3)取樣

      測量每個取樣點的每個分量(基色)亮度值

      4)量化

      把模擬量使用數(shù)字量來表示,A/D轉(zhuǎn)換

      數(shù)字圖像的主要參數(shù):圖像大小(水平分辨率*豎直分辨率)、位平面數(shù)目、像素深 度、顏色模型

      一幅圖像的數(shù)據(jù)量計算公式:

      圖像數(shù)據(jù)量=圖像大小*像素深度/8(3)音頻/視頻

      音頻/視頻信息的數(shù)字化,處理步驟為: 1)取樣

      2)量化

      3)編碼

      數(shù)字音頻的主要參數(shù):取樣頻率、量化位數(shù)、聲道數(shù)目、使用的壓縮編碼方法、比特率(每秒鐘的數(shù)據(jù)量)

      壓縮前

      波形聲音的碼率(比特率)= 取樣頻率 * 量化為數(shù) * 聲道數(shù)(單位b/s)壓縮后

      碼率 = 壓縮前碼率 / 壓縮倍數(shù)(壓縮比)

      30.嵌入式系統(tǒng)與網(wǎng)絡(luò)通信技術(shù)(數(shù)字通信與計算機網(wǎng)絡(luò),TCP/IP協(xié)議,互聯(lián)網(wǎng)接入技術(shù)等)(1)數(shù)字通信(2)計算機網(wǎng)絡(luò)(3)音頻/ TCP/IP協(xié)議(4)互聯(lián)網(wǎng)接入技術(shù)

      31.ARM處理器內(nèi)核的體系結(jié)構(gòu)(工作狀態(tài),工作模式,寄存器組織,異常,數(shù)據(jù)類型與存儲格式等)(1)工作狀態(tài)

      一是ARM狀態(tài),二是Thumb指令狀態(tài)及Thumb-2狀態(tài),三是調(diào)試狀態(tài)。ARM處理器復(fù)位后開始執(zhí)行代碼時總是只處于ARM狀態(tài),如果需要,可通過下面的方法切換到Thumb狀態(tài)或Thumb-2狀態(tài)

      ARM狀態(tài)切換到Thumb指令狀態(tài):通過BX指令,將操作數(shù)寄存器的最低位設(shè)置為1即可。如果R0[0]=1,則執(zhí)行BX R0指令將進入Thumb狀態(tài)

      Thumb狀態(tài)切換到ARM狀態(tài):通過BX指令,將操作數(shù)寄存器的最低位設(shè)置為0即可。如果R0[0]=0,則執(zhí)行BX R0指令將進入ARM狀態(tài)。(2)七種工作模式

      (3)寄存器組織

      ARM處理器共有37種寄存器,包括31個通用寄存器(含PC)和6個狀態(tài)寄存器。無論何種模式,R15均作為PC使用;CPSR為當(dāng)前程序狀態(tài)寄存器;R7-R0為公用的通用寄存器。所有通用寄存器均為32位結(jié)構(gòu)。程序狀態(tài)寄存器的格式: 31 30 29 28 27

      26??8

      0

      條件碼標(biāo)志含義如下:

      N為符號標(biāo)志位,N=1為負數(shù),N=0為正數(shù)。Z為全0標(biāo)志位,運算結(jié)果為0,則Z=1,否則Z=0; C為進借位標(biāo)志,有進/借位時C=1,否則C=0.V為溢出標(biāo)志,加減法運算結(jié)果溢出時V=1,否則V=0.Q為增強的DSP運算指令溢出標(biāo)志,溢出時Q=1,否則Q=0.控制位含義如下:

      I為中斷禁止控制位,I=1禁止IRQ中斷,I=0,允許中斷。

      F為禁止快速中斷FIQ的控制位,F(xiàn)=1禁止FIQ中斷,F(xiàn)=0允許。

      T為ARM和Thumb指令切換,T=1時執(zhí)行Thumb指令,否則執(zhí)行ARM指令。

      M4-M0為模式選擇位(4)存儲格式

      大端模式:32位數(shù)據(jù)字的高字節(jié)存儲在低地址,而數(shù)據(jù)字的低字節(jié)則存放在高地址中。

      小端模式:32位數(shù)據(jù)字的高字節(jié)存儲在高地址,而數(shù)據(jù)字的低字節(jié)則存放在低地址中。系統(tǒng)復(fù)位時,自動默認為小端模式。

      例如:一個32位數(shù)據(jù)字0x12345678,存放在起始地址為0x30001000,則大端模式下0x30001000單元存放0x12,0x30001001單元存放0x34,0x30001002單元存放0x56,0x30001003單元存放0x78;而小端模式下0x30001000單元存放0x78,0x30001001單元存放0x56,0x30001002單元存放0x34,0x30001003單元存放0x12。(5)數(shù)據(jù)類型

      8位、16位、32位三種數(shù)據(jù)類型(6)ARM處理器中MMU和MPU

      MMU存儲器管理單元(memory management unit)功能:

      1)虛擬地址到物理地址映射

      2)存儲器訪問權(quán)限受限

      3)虛擬存儲空間的緩沖特性設(shè)置

      MPU存儲器保護單元(memory protect unit)(7)異常(7種)

      32.嵌入式處理器的結(jié)構(gòu)、特點與分類(不同類型的典型嵌入式處理器及其特點,嵌入式處理器分類等)

      (1)不同內(nèi)核嵌入式微控制器性能比較

      (2)馮–諾依曼結(jié)構(gòu)和哈佛結(jié)構(gòu)的區(qū)別

      兩者連接CPU程序存儲器和數(shù)據(jù)存儲器的方式不同 馮–諾依曼結(jié)構(gòu)

      CPU 程序/數(shù)據(jù)存儲器

      哈佛結(jié)構(gòu)

      程序存儲器 CPU 數(shù)據(jù)存儲器程序總線

      數(shù)據(jù)總線(3)分類

      按指令集分為:復(fù)雜指令集結(jié)構(gòu)CISC和精簡指令集結(jié)構(gòu)RISC 按存儲機制分為:馮–諾依曼結(jié)構(gòu)和哈佛結(jié)構(gòu) 按字長分為:8位、16位、32位、64位結(jié)構(gòu)

      按不同內(nèi)核系列可以分為:

      51、AVR、PIC、MSP430、PowerPC、Coldfile、ARM(4)不同典型內(nèi)核簡介

      32.ARM處理器指令系統(tǒng)及匯編語言程序設(shè)計(指令格式,尋址方式,指令集,偽指令,語句格式與程序結(jié)構(gòu),ARM匯編語言與C的混合編程等)(1)指令格式

      指令一般格:

      {}{S} ,{,}

      其中<>不可省

      指令格式說明:

      關(guān)于#imm8m的說明:#表示立即數(shù),其后可以是十進制或十六進制數(shù)。

      對于ARM指令集,#imm8m表示一個由8位立即數(shù)經(jīng)循環(huán)右移任意偶數(shù)位次形成的32位操作數(shù)。

      對于Thumb指令集,#imm8m表示一個由8位立即數(shù)經(jīng)左移任意位次形成的32位操作數(shù)。尋址方式:

      33.典型ARM處理器內(nèi)核(ARM9,Cortex-A,Cortex-M,Cortex-R等的技術(shù)特點與應(yīng)用領(lǐng)域)(1)Cortex-A系列是面向高端嵌入式應(yīng)用的處理器核:具有MMU、Cache、最快頻率、最高性能、合理功耗。

      (2)Cortex-R系列是面向?qū)崟r控制的處理器:具有MPU、Cache、實時響應(yīng)、合理性能、較低功耗。(3)Cortex-M系列是面向低端微控制器的處理器,沒有MMU但有MPU,極高性價比、最低成本,極低功耗。

      34.嵌入式硬件組成與嵌入式處理芯片(組成,特點,類型,ARM的AMBA總線,嵌入式處理芯片的選型)

      基于ARM內(nèi)核的典型嵌入式應(yīng)用系統(tǒng)硬件組成

      典型嵌入式系統(tǒng)硬件由嵌入式最小硬件系統(tǒng)(電源電路、時鐘(晶振)電路、復(fù)位電路、JTAG測試接口)、前向通道(輸入接口)、后向通道(輸出接口)、人機交互通道(鍵盤,觸摸屏以及LED或LCD顯示輸出接口)以及相互互聯(lián)通信通道(CAN通信接口、以太網(wǎng)通信接口、USB通信接口)等組成。

      電源電路為整個嵌入式系統(tǒng)提供能量,是整個系統(tǒng)工作的基礎(chǔ),具有極其重要的位置。一般來說,如果電源電路處理得好,整個系統(tǒng)的故障往往能顯著減少。選擇設(shè)計電源電路是主要考慮以下因素:輸出電壓電流、輸入電壓電流(交流還是直流)、安全因素、體積限制、功耗限制、成本限制。

      常用的電源模塊是交流變直流(AC-DC)模塊、直流變直流模塊(DC-DC)、低壓穩(wěn)壓器(LDO)。穩(wěn)壓器包括普通穩(wěn)壓器和低壓差穩(wěn)壓器LDO。78XX系列屬于普通穩(wěn)壓器,LM2576/2596為開關(guān)穩(wěn)壓芯片,CAT6219/AS2815/1117/2908等屬于低壓穩(wěn)壓器。穩(wěn)壓器的最大特點就是低噪聲、低成本、紋波小、精度高、電路簡單。35.基于ARM內(nèi)核的典型嵌入式芯片的硬件組成1)存儲器及控制器

      片內(nèi)程序存儲器通常是用Flash ROM,一般配有幾KB到幾MB不等。片內(nèi)數(shù)據(jù)存儲器通常使用SRAM,一般幾KB到幾百KB。2)中斷控制器

      一般采用向量中斷(VIC)或嵌套向量中斷(NVIC)。Cortex-M支持嵌套的向量中斷。3)DMA控制器(直接存儲器訪問控制器)

      使用DMA控制器,可將數(shù)據(jù)塊從外設(shè)傳輸至內(nèi)存、從內(nèi)存?zhèn)鬏斨镣庠O(shè)或從內(nèi)存?zhèn)鬏斨羶?nèi)存。

      4)電源管理與時鐘控制器

      5)GPIO接端口(General Purpose Input Output通用輸入/輸出端口)

      作為輸入時具有緩沖功能,而作為輸出是具有鎖存功能,GPIO也可以作為雙向I/O使用。在ARM處理芯片中,GPIO引腳通常是多功能的,以減少引腳數(shù),減少功耗。6)定時計數(shù)組件

      主要包括看門狗定時器(WDT)監(jiān)視著程序的運行狀態(tài) Timer通用定時器

      用于一般的定時

      RTC可直接提供年月日時分秒,使應(yīng)用系統(tǒng)具有獨立的日期和時間

      脈沖寬度調(diào)制解調(diào)器(PWM)用于脈沖寬度的調(diào)制,比如電機控制、用于變頻調(diào)整等。7)模擬通道組件

      8)互聯(lián)通信組件

      36.嵌入式處理芯片的選型 1)性價比原則

      性能高,價格低 2)參數(shù)選擇原則

      ARM內(nèi)核(指令流水線、支持Thumb/Thumb-2指令集、最高時鐘頻率的限制、最低功耗要求以及低成本要求)系統(tǒng)時鐘頻率(頻率越高,處理速度越快;通常ARM芯片的速度主要取決于ARM內(nèi)核)芯片內(nèi)部存儲器的容量

      片內(nèi)外圍電路(GPIO外部引腳條數(shù)、定時計數(shù)器、LCD液晶顯示控制器、多核處理器、ADC、通信接口)

      37.常用ARM嵌入式處理芯片

      1)NXP的典型ARM芯片

      2)TI的典型ARM芯片

      3)Samsung的典型ARM芯片

      4)Atmel的典型ARM芯片

      5)ST的典型ARM芯片

      6)Freescale的典型ARM芯片

      7)Nuvoton的典型ARM芯片

      8)Intel的典型ARM芯片

      9)其他ARM芯片廠家 38.頁式存儲管理(重點)

      基本思路:把物理內(nèi)存劃分為許多固定大小的內(nèi)存塊,稱為物理頁面;把邏輯地址空間也劃分為大小相同的塊,稱為邏輯頁面。當(dāng)一個用戶程序被裝入內(nèi)存時,不是以整個程序為單位,把它存放在一整塊連續(xù)的區(qū)域,而是以頁面為單位來進行分配的。對于一個大小為N 的頁面程序,需要有N 個空閑的物理頁面來把它裝載。這些物理頁面不一定是要連續(xù)的。

      在頁式存儲管理中需要解決三個問題:數(shù)據(jù)結(jié)構(gòu)、內(nèi)存分配與回收、地址映射。

      數(shù)據(jù)結(jié)構(gòu)有兩個:頁表和物理頁面表。

      A.頁表:給出了任務(wù)邏輯頁面號和內(nèi)存中物理頁面號之間的對應(yīng)關(guān)系。

      B.物理頁面表:描述內(nèi)存空間中,各個物理頁面的使用情況。

      具體的例子請參考《教程》317頁(博客中畫不了圖,有興趣自己看)。

      內(nèi)存的分配過程:

      A.對于一個新來的任務(wù),計算它所需要的頁面數(shù)N,然后查看位示圖,看是否還有N 個空閑的物理頁面。

      B.如果有足夠的空閑物理頁面,就去申請一個頁表,其長度為N,并把頁表的起始地址填入到該任務(wù)的控制塊中。

      C.分配N 個空閑的物理頁面,把他們的變換填到頁表中,建立邏輯頁面與物理頁面直接的對應(yīng)關(guān)系。

      D.修改位示圖,對剛剛被占用的那些物理頁面進行標(biāo)記。地址映射的基本思路:

      A.邏輯地址分析:對邏輯地址,找到它所在的邏輯頁面,以及它在頁面內(nèi)的偏移地址。

      B.頁表查找:根據(jù)邏輯頁面號,從頁表中找出它對應(yīng)的物理頁面號。

      C.物理地址合成:根據(jù)物理頁面號和頁內(nèi)偏移地址,最終確定物理地址。

      邏輯地址分析:

      頁面的大小都是2的整數(shù)次冪。對于給定的一個邏輯地址,可以直接把它的高位部分作為邏輯頁面號,把它的低位部分作為頁內(nèi)偏移地址。例如,假設(shè)頁面的大小是4KB,即2的12次冪,邏輯地址為32為,那么在一個邏輯地址當(dāng)中,最低12位為頁內(nèi)偏移地址,而剩下的20位就是邏輯頁面號。

      計算方法:

      邏輯頁面號=邏輯地址/頁面大小

      頁內(nèi)偏移量=邏輯地址%頁面大小

      頁表查找:

      頁表作為操作系統(tǒng)的一個數(shù)據(jù)結(jié)構(gòu),通常保存在內(nèi)核的地址空間中。

      頁表基地址寄存器用來指向頁表的起始地址;頁表長度寄存器用來指示頁表的大小,即對于當(dāng)前任務(wù),它總共包含有多少個頁面。

      物理地址合成:

      假設(shè)物理頁面號為f,頁內(nèi)偏移地址為offset,每個頁面大小為2n,那么相應(yīng)的物理地址為:f×2n+offset。39.虛擬存儲管理

      程序局部性原理:時間局限性和空間局限性。

      虛擬頁式存儲管理:在頁式管理的基礎(chǔ)上,增加了請求調(diào)頁和頁面置換的功能。

      基本思路:當(dāng)一個用戶程序需要調(diào)入內(nèi)存去運行時,不是將這個程序的所有頁面都裝入內(nèi)存,而是只裝載部分的頁面,就可以啟動這個程序運行。在運行過程中,如果發(fā)現(xiàn)要執(zhí)行的指令或者訪問的數(shù)據(jù)不在內(nèi)存當(dāng)中,就向系統(tǒng)發(fā)出缺頁中斷請求,然后系統(tǒng)在處理這個中斷請求時,就會將保存在外存中的相應(yīng)頁面調(diào)入內(nèi)存,從而使該程序能繼續(xù)運行。

      在虛擬頁式存儲管理中,頁表包含:邏輯頁面號、物理頁面號、駐留位、保護位、修改位和訪問位。

      常用的頁面置換算法:

      A.最優(yōu)頁面置換算法:理想化算法。

      B.最近最久未使用算法:鏈表法和棧方法。尋找長時間沒有被訪問的頁面。

      C.最不常用算法:每個頁面設(shè)置一個訪問計數(shù)器。

      D.先進先出算法:性能比較差。

      E.時鐘頁面置換算法:把頁面組成環(huán)形鏈表,類似時鐘面。

      一般來說,當(dāng)一個任務(wù)剛剛啟動的時候,它會不斷去訪問一些新的頁面,然后逐步建立一個比較穩(wěn)定的工作集。工作集是指當(dāng)前任務(wù)正在使用的邏輯頁面的集合。如果分配給一個任務(wù)的物理頁面數(shù)太少,不能包含整個的工作集,任務(wù)將會造成很多缺頁中斷,需要頻繁地進行頁面置換,這種現(xiàn)象稱為“抖動”。40.Flash存儲器

      (1)Flash 存儲器是一種非易失性存儲器,根據(jù)結(jié)構(gòu)的不同可以將其分為NOR Flash 和NAND Flash 兩種。

      (2)Flash存儲器的特點:

      A、區(qū)塊結(jié)構(gòu):在物理上分成若干個區(qū)塊,區(qū)塊之間相互獨立。

      B、先擦后寫:Flash 的寫操作只能將數(shù)據(jù)位從1寫成0,不能從0寫成1,所以在對存儲器進行寫入之前必須先執(zhí)行擦除操作,將預(yù)寫入的數(shù)據(jù)位初始化為1。擦除操作的最小單位是一個區(qū)塊,而不是單個字節(jié)。

      C、操作指令:執(zhí)行寫操作,它必須輸入一串特殊指令(NOR Flash)或者完成一段時序(NAND Flash)才能將數(shù)據(jù)寫入。

      D、位反轉(zhuǎn):由于Flash 的固有特性,在讀寫過程中偶爾會產(chǎn)生一位或幾位的數(shù)據(jù)錯誤。位反轉(zhuǎn)無法避免,只能通過其他手段對結(jié)果進行事后處理。

      E、壞塊:區(qū)塊一旦損壞,將無法進行修復(fù)。對已損壞的區(qū)塊操作其結(jié)果不可預(yù)測。

      (3)NOR Flash的特點:

      應(yīng)用程序可以直接在閃存內(nèi)運行,不需要再把代碼讀到系統(tǒng)RAM 中運行。NOR Flash 的傳輸效率很高,在1MB~4MB 的小容量時具有很高的成本效益,但是很低的寫入和擦除速度大大影響了它的性能。

      (4)NAND Flash的特點

      能夠提高極高的密度單元,可以達到高存儲密度,并且寫入和擦除的速度也很快,這也是為何所有的U盤都使用NAND Flash 作為存儲介質(zhì)的原因。應(yīng)用NAND Flash 的困難在于閃存需要特殊的系統(tǒng)接口。41.RAM存儲器

      (1)SRAM 的特點:

      SRAM 表示靜態(tài)隨機存取存儲器,只要供電它就會保持一個值,它沒有刷新周期,由觸發(fā)器構(gòu)成基本單元,集成度低,每個SRAM 存儲單元由6個晶體管組成,因此其成本較高。它具有較高速率,常用于高速緩沖存儲器。

      通常SRAM 有4種引腳:

      CE:片選信號,低電平有效。

      R/W:讀寫控制信號。

      ADDRESS:一組地址線。

      DATA:用于數(shù)據(jù)傳輸?shù)囊唤M雙向信號線。

      (2)DRAM 的特點:

      DRAM 表示動態(tài)隨機存取存儲器。這是一種以電荷形式進行存儲的半導(dǎo)體存儲器。它的每個存儲單元由一個晶體管和一個電容器組成,數(shù)據(jù)存儲在電容器中。電容器會由于漏電而導(dǎo)致電荷丟失,因而DRAM器件是不穩(wěn)定的。它必須有規(guī)律地進行刷新,從而將數(shù)據(jù)保存在存儲器中。

      DRAM 的接口比較復(fù)雜,通常有一下引腳:

      CE:片選信號,低電平有效。

      R/W:讀寫控制信號。

      RAS:行地址選通信號,通常接地址的高位部分。

      CAS:列地址選通信號,通常接地址的低位部分。

      ADDRESS:一組地址線。

      DATA:用于數(shù)據(jù)傳輸?shù)囊唤M雙向信號線。

      (3)SDRAM 的特點:

      SDRAM 表示同步動態(tài)隨機存取存儲器。同步是指內(nèi)存工作需要同步時鐘,內(nèi)部的命令發(fā)送與數(shù)據(jù)的傳輸都以它為基準(zhǔn);動態(tài)是指存儲器陣列需要不斷的刷新來保證數(shù)據(jù)不丟失。它通常只能工作在133MHz的主頻。

      (4)DDRAM 的特點

      DDRAM 表示雙倍速率同步動態(tài)隨機存取存儲器,也稱DDR。DDRAM 是基于SDRAM 技術(shù)的,SDRAM 在一個時鐘周期內(nèi)只傳輸一次數(shù)據(jù),它是在時鐘的上升期進行數(shù)據(jù)傳輸;而DDR 內(nèi)存則是一個時鐘周期內(nèi)傳輸兩次次數(shù)據(jù),它能夠在時鐘的上升期和下降期各傳輸一次數(shù)據(jù)。在133MHz 的主頻下,DDR內(nèi)存帶寬可以達到133×64b/8×2=2.1GB/s。42.存儲器系統(tǒng)的層次架構(gòu)

      計算機系統(tǒng)的存儲器被組織成一個金字塔的層次結(jié)構(gòu)。

      自上而下為:CPU內(nèi)部寄存器、芯片內(nèi)部高速緩存(cache)、芯片外部高速緩存(SRAM、SDRAM、DRAM)、主存儲器(FLASH、EEPROM)、外部存儲器(磁盤、光盤、CF卡、SD卡)和遠程二級存儲器(分布式文件系統(tǒng)、WEB服務(wù)器),6個層次的結(jié)構(gòu)。

      上述設(shè)備從上而下,依次速度更慢、容量更大、訪問頻率更小,造價更便宜。

      2、高速緩存(cache)

      工作原理(參照教程126頁,博客畫不了圖):主要利用了程序的局部性特點。

      地址映象是指把主存地址空間映象到cache的地址空間。

      地址變換是指當(dāng)程序或數(shù)據(jù)已經(jīng)裝入到cache后,在實際運行過程中,把主存地址如何編程cache空間的地址。

      常用的地址映象和地址變換的方式有:(教程127頁)

      直接映象和變換:速度快,造價低,但有局限性,不能充分利用cache的好處。

      組相聯(lián)地址映象和變換:速度稍慢但是命中率高。

      全相聯(lián)地址映象和變換:可以任意映射。

      常用的cache替換算法:輪轉(zhuǎn)法和隨機替換算法。

      高速緩存的分類:

      統(tǒng)一cache和獨立的數(shù)據(jù)/指令cache

      寫通cache和寫回cache

      讀操作分配cache和寫操作分配cache 43.I/O接口、I/O設(shè)備以及外部通信接口(GPIO、IC、SPI、UART、USB、HDMI等;鍵盤、LED、LCD、觸摸屏、傳感器等;RS-232/RS-485、CAN、以太網(wǎng)和常用無線通信接口)(1)GPIO(通用輸入輸出接口)

      在嵌入式處理器內(nèi)部,輸入具備緩沖功能,輸出具有鎖存功能。GPIO一般有三態(tài):0態(tài)、1態(tài)、高阻狀態(tài)。

      (2)集成電路互連總線接口IIC 集成電路互連總線用于連接嵌入式處理器及外圍器件,采用串行半雙工傳輸?shù)目偩€標(biāo)準(zhǔn)。IIC總線具有的接口線少,控制方式簡單,器件封裝緊湊,通信速率較高(100kb/s,400kb/s,高速模式可達3.4Mb/s)等優(yōu)點。IIC總線的操作時序

      IIC總線只有兩條信號線,一條是數(shù)據(jù)線SDA,另一條是時鐘線SCL,所有的操作均通過這兩條信號線完成。數(shù)據(jù)線SDA上的數(shù)據(jù)必須在時鐘的高電平周期保持穩(wěn)定,它的高/低電平狀態(tài)只有在SCL時鐘信號線是低電平時才能改變。1)啟動和停止條件

      總線上的所有器件都不使用總線時,SCL線和SDA線各自的上拉電阻把電平拉高,使它們均處于高電平。主控制器啟動總線操作的條件是當(dāng)SCL線保持高電平時SDA線有高電平轉(zhuǎn)為低電平,此時主控制器在SCL產(chǎn)生時鐘信號,SDA線開始傳輸數(shù)據(jù)。若SCL線為高電平時SDA由低轉(zhuǎn)為高,則總線工作停止,恢復(fù)空閑狀態(tài) 2)數(shù)據(jù)傳送格式 3)應(yīng)答(ACK)信號傳送 4)讀/寫操作 5)總線仲裁 6)異常中斷條件(3)串行外設(shè)接口SPI

      (4)串行異步通信接口UART(5)高清多媒體接口HDMI

      (6)常用簡單輸入設(shè)備(鍵盤、觸摸屏、傳感器)(7)常用簡單輸出設(shè)備(LED、數(shù)碼管、LCD、)

      (8)基于UART的RS—232/RS—485 CAN總線接口

      以太網(wǎng)通信接口常用無線通信接口(GPS模塊、GPRS模塊、WiFi模塊、藍牙模塊、射頻無線收發(fā)模塊)43.存儲管理單元(MMU)memory management unit MMU在CPU和物理內(nèi)存之間進行地址轉(zhuǎn)換,將地址從邏輯空間映射到物理空間,這個過程稱為內(nèi)存映射。

      MMU主要完成下面的工作:

      A.虛擬存儲空間到物理空間的映射。

      B.存儲器訪問權(quán)限的控制。

      C.設(shè)置虛擬存儲空間的緩沖特性。

      嵌入式系統(tǒng)中常常采用頁式存儲管理。為了管理這些頁引入了頁表的概念。

      頁表是位于內(nèi)存中的表,它的每一行對應(yīng)虛擬存儲空間的一個頁,該行包含了該虛擬內(nèi)存頁對應(yīng)的物理內(nèi)存頁的地址、該頁的訪問權(quán)限和該頁的緩沖特性等。

      從虛擬地址到物理地址的變換過程就是查詢頁表的過程。

      由于頁表存儲在內(nèi)存中的,整個查詢過程需要付出很大的代價。根據(jù)程序局部性的特點,增加了一個小容量、高速度的存儲部件來存放當(dāng)前訪問需要的地址變換條目,這個存儲部件稱為:地址轉(zhuǎn)換后備緩沖器(TLB)。

      當(dāng)CPU訪問內(nèi)存時,首先在TLB中查找需要的地址變換條目,如果該條目不存在,CPU再從內(nèi)存中的頁表中查詢,并把相應(yīng)的結(jié)果添加到TLB中,更新它的內(nèi)容。

      嵌入式系統(tǒng)中虛擬存儲空間到物理空間的映射以內(nèi)存塊為單位進行。即虛擬存儲空間中一塊連續(xù)的存儲空間被映射到物理存儲空間中同樣大小的一塊連續(xù)存儲空間。

      在頁表和TLB中,每一個地址變換條目實際上記錄了一個虛擬存儲空間的內(nèi)存塊的基地址與物理存儲空間相對應(yīng)的一個內(nèi)存塊的基地址之間的對應(yīng)關(guān)系。

      在MMU中實現(xiàn)虛擬地址到物理地址的映射是通過兩級頁表來實現(xiàn)的。

      禁止MMU時,所有物理地址和虛擬地址相等,即使用平板存儲模式。內(nèi)存保護

      操作系統(tǒng)通常利用MMU來實現(xiàn)操作系統(tǒng)內(nèi)核與應(yīng)用程序之間的隔離,以及應(yīng)用程序與應(yīng)用程序之間的隔離。

      內(nèi)存保護包含兩個方面的內(nèi)容:

      A.防止地址越界,每個應(yīng)用程序都有自己獨立的地址空間。

      B.防止越權(quán)操作,每個應(yīng)用程序都有自己的訪問權(quán)限。44.實模式與保護模式

      在嵌入式系統(tǒng)中,常見的存儲管理方案可以分為兩大類:實模式和保護模式。

      實模式:內(nèi)存的平面使用模式。特點有:

      A.不劃分“系統(tǒng)空間”與“用戶空間”,無須進行地址映射。

      B.操作系統(tǒng)與應(yīng)用程序之間不再有物理的邊界。

      C.系統(tǒng)中的“任務(wù)”或“進程”,實際上全是內(nèi)核線程。

      在實模式下,內(nèi)存布局可以分為5個段:

      A.代碼段:包含操作系統(tǒng)和應(yīng)用程序的所有代碼。

      B.數(shù)據(jù)段:所有帶有初始值的全局變量。

      C.BSS段:所有未帶初始值的全局變量。

      D.堆空間:動態(tài)分配的內(nèi)存空間。

      E.??臻g:保存上下文以及函數(shù)調(diào)用時的局部變量和形參。

      在實模式存儲管理方案下,主要的工作在于堆空間的管理,即如何來管理空閑的堆空間、如何來分配內(nèi)存、如何來回收內(nèi)存等等。

      保護模式:處理器中必須有MMU硬件并啟用。特點有:

      A.系統(tǒng)內(nèi)核和用戶程序都有各自獨立的地址空間。

      B.每個應(yīng)用程序只能訪問自己的地址空間,不能去破壞操作系統(tǒng)和其他應(yīng)用程序的代碼和數(shù)據(jù)。45.分區(qū)存儲管理

      為了實現(xiàn)多道程序系統(tǒng)而采用的內(nèi)存管理。

      基本思路:把整個內(nèi)存劃分為兩大區(qū)域,即系統(tǒng)區(qū)和用戶區(qū),然后再把用戶區(qū)劃分為若干個分區(qū),每個任務(wù)占有其中的一個分區(qū)。這樣,在內(nèi)存當(dāng)中就同時保留多個任務(wù),讓他們共享整個用戶區(qū),從而實現(xiàn)多個任務(wù)的并發(fā)運行。

      分區(qū)存儲管理又可以分為兩類:固定分區(qū)和可變分區(qū)。

      固定分區(qū):各個用戶分區(qū)的個數(shù)、位置和大小一旦確定后,就固定不變,不能再修改。

      優(yōu)點:易于實現(xiàn),系統(tǒng)開銷較小。

      缺點:內(nèi)存利用率不高,分區(qū)總數(shù)固定。

      可變分區(qū):動態(tài)創(chuàng)建,在裝入一個程序時,系統(tǒng)將根據(jù)它的需求和內(nèi)存空間的使用情況來決定是否分配。

      優(yōu)點:動態(tài)變化,非常靈活。

      缺點:可能存在外碎片。

      在實現(xiàn)可變存儲管理技術(shù)的時候,需要考慮三個方面的問題:

      A.內(nèi)存管理的數(shù)據(jù)結(jié)構(gòu)

      B.內(nèi)存的分配算法

      C.內(nèi)存的回收算法 46.地址映射

      地址映射也叫地址重定位。

      邏輯地址和物理地址是完全不同的,不能用邏輯地址來直接訪問內(nèi)存單元。

      為了保證CPU在執(zhí)行指令的時候,可以正確地訪問內(nèi)存單元,需要將用戶程序中的邏輯地址轉(zhuǎn)換為運行時由機器直接尋址的物理地址。這個過程稱為:地址映射。

      地址映射由存儲管理單元MMU來完成。

      地址映射主要有兩種方式:靜態(tài)地址映射和動態(tài)地址映射。

      靜態(tài)地址映射:當(dāng)用戶程序被裝入內(nèi)存時,直接對指令代碼進行修改,一次性地實現(xiàn)邏輯地址到物理地址的轉(zhuǎn)換。

      動態(tài)地址映射:當(dāng)用戶程序被裝入內(nèi)存時,不對指令代碼做任何修改,而是在程序的運行過程中,當(dāng)它需要訪問內(nèi)存單元的時候,再來進行地址轉(zhuǎn)換。

      在具體實現(xiàn)時,這項轉(zhuǎn)換工作一般是由硬件的地址映射機制來完成的。通常設(shè)置一個基地址寄存器,或者叫重定位寄存器。當(dāng)一個任務(wù)被調(diào)度運行時,就把它所在分區(qū)的起始地址裝入到整個寄存器中。然后,在程序運行的過程中,當(dāng)需要訪問某個內(nèi)存單元時,硬件就會自動地將其中的邏輯地址加上基地址寄存器中的內(nèi)容,從而得到實際的物理地址,并且按照這個物理地址區(qū)執(zhí)行。

      這個基地址寄存器位于MMU的內(nèi)部,整個地址映射過程是自動運行的。從理論上說,每訪問一次內(nèi)存都要進行一次地址映射。47.頁式存儲管理(重點)

      基本思路:把物理內(nèi)存劃分為許多固定大小的內(nèi)存塊,稱為物理頁面;把邏輯地址空間也劃分為大小相同的塊,稱為邏輯頁面。當(dāng)一個用戶程序被裝入內(nèi)存時,不是以整個程序為單位,把它存放在一整塊連續(xù)的區(qū)域,而是以頁面為單位來進行分配的。對于一個大小為N的頁面程序,需要有N個空閑的物理頁面來把它裝載。這些物理頁面不一定是要連續(xù)的。

      在頁式存儲管理中需要解決三個問題:數(shù)據(jù)結(jié)構(gòu)、內(nèi)存分配與回收、地址映射。

      數(shù)據(jù)結(jié)構(gòu)有兩個:頁表和物理頁面表。

      A.頁表:給出了任務(wù)邏輯頁面號和內(nèi)存中物理頁面號之間的對應(yīng)關(guān)系。

      B.物理頁面表:描述內(nèi)存空間中,各個物理頁面的使用情況。

      具體的例子請參考《教程》317頁(博客中畫不了圖,有興趣自己看)。

      內(nèi)存的分配過程:

      A.對于一個新來的任務(wù),計算它所需要的頁面數(shù)N,然后查看位示圖,看是否還有N個空閑的物理頁面。

      B.如果有足夠的空閑物理頁面,就去申請一個頁表,其長度為N,并把頁表的起始地址填入到該任務(wù)的控制塊中。

      C.分配N個空閑的物理頁面,把他們的變換填到頁表中,建立邏輯頁面與物理頁面直接的對應(yīng)關(guān)系。

      D.修改位示圖,對剛剛被占用的那些物理頁面進行標(biāo)記。

      地址映射的基本思路:

      A.邏輯地址分析:對邏輯地址,找到它所在的邏輯頁面,以及它在頁面內(nèi)的偏移地址。

      B.頁表查找:根據(jù)邏輯頁面號,從頁表中找出它對應(yīng)的物理頁面號。

      C.物理地址合成:根據(jù)物理頁面號和頁內(nèi)偏移地址,最終確定物理地址。

      邏輯地址分析:

      頁面的大小都是2的整數(shù)次冪。對于給定的一個邏輯地址,可以直接把它的高位部分作為邏輯頁面號,把它的低位部分作為頁內(nèi)偏移地址。例如,假設(shè)頁面的大小是4KB,即2的12次冪,邏輯地址為32為,那么在一個邏輯地址當(dāng)中,最低12位為頁內(nèi)偏移地址,而剩下的20位就是邏輯頁面號。

      計算方法:

      邏輯頁面號=邏輯地址/頁面大小

      頁內(nèi)偏移量=邏輯地址%頁面大小

      頁表查找:

      頁表作為操作系統(tǒng)的一個數(shù)據(jù)結(jié)構(gòu),通常保存在內(nèi)核的地址空間中。

      頁表基地址寄存器用來指向頁表的起始地址;頁表長度寄存器用來指示頁表的大小,即對于當(dāng)前任務(wù),它總共包含有多少個頁面。

      物理地址合成:

      假設(shè)物理頁面號為f,頁內(nèi)偏移地址為offset,每個頁面大小為2n,那么相應(yīng)的物理地址為:f×2n+offset。48.虛擬存儲管理

      程序局部性原理:時間局限性和空間局限性。

      虛擬頁式存儲管理:在頁式管理的基礎(chǔ)上,增加了請求調(diào)頁和頁面置換的功能。

      基本思路:當(dāng)一個用戶程序需要調(diào)入內(nèi)存去運行時,不是將這個程序的所有頁面都裝入內(nèi)存,而是只裝載部分的頁面,就可以啟動這個程序運行。在運行過程中,如果發(fā)現(xiàn)要執(zhí)行的指令或者訪問的數(shù)據(jù)不在內(nèi)存當(dāng)中,就向系統(tǒng)發(fā)出缺頁中斷請求,然后系統(tǒng)在處理這個中斷請求時,就會將保存在外存中的相應(yīng)頁面調(diào)入內(nèi)存,從而使該程序能繼續(xù)運行。

      在虛擬頁式存儲管理中,頁表包含:邏輯頁面號、物理頁面號、駐留位、保護位、修改位和訪問位。

      常用的頁面置換算法:

      A.最優(yōu)頁面置換算法:理想化算法。

      B.最近最久未使用算法:鏈表法和棧方法。尋找長時間沒有被訪問的頁面。

      C.最不常用算法:每個頁面設(shè)置一個訪問計數(shù)器。

      D.先進先出算法:性能比較差。

      E.時鐘頁面置換算法:把頁面組成環(huán)形鏈表,類似時鐘面。

      一般來說,當(dāng)一個任務(wù)剛剛啟動的時候,它會不斷去訪問一些新的頁面,然后逐步建立一個比較穩(wěn)定的工作集。工作集是指當(dāng)前任務(wù)正在使用的邏輯頁面的集合。如果分配給一個任務(wù)的物理頁面數(shù)太少,不能包含整個的工作集,任務(wù)將會造成很多缺頁中斷,需要頻繁地進行頁面置換,這種現(xiàn)象稱為“抖動”。49.嵌入式系統(tǒng)軟件 .嵌入式系統(tǒng)的軟件組成與實時操作系統(tǒng)(嵌入式系統(tǒng)軟件組成,嵌入式操作系統(tǒng)的發(fā)展,實時系統(tǒng)與實時操作系統(tǒng),微內(nèi)核與宏內(nèi)核,嵌入式操作系統(tǒng)的仿真平臺等).板級支持軟件包(BSP)和引導(dǎo)加載程序Bootloader(硬件抽象層HAL,BSP 的功能和移植,Bootloader 的執(zhí)行過程,U-boot 及其移植等).嵌入式Linux 操作系統(tǒng)(嵌入式Linux 的發(fā)展和自由軟件,嵌入式Linux 內(nèi)核的結(jié)構(gòu)、系統(tǒng)調(diào)用接口,常見嵌入式Linux 等).嵌入式操作系統(tǒng)μC/OS-II(基本特點、代碼結(jié)構(gòu)、任務(wù)管理與調(diào)度、任務(wù)通信、中斷處理、移植等)50.嵌入式系統(tǒng)的開發(fā)

      1.嵌入式系統(tǒng)的開發(fā)過程和工具(開發(fā)步驟,交叉開發(fā)平臺和工具,系統(tǒng)的調(diào)試工具等)

      2.系統(tǒng)開發(fā)工具軟件(ADS、RVDS的特點與使用,GCC的常用命令與參數(shù))

      3.以S3C2410/S3C2440為背景的應(yīng)用系統(tǒng)開發(fā)(硬件接口及部件的綜合使用;無操作系統(tǒng)環(huán)境下的系統(tǒng)開發(fā);μC/OS-II環(huán)境下的系統(tǒng)開發(fā))51.嵌入式系統(tǒng)的定義

      (1)定義:以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計算機系統(tǒng)。

      (2)嵌入式系統(tǒng)發(fā)展的4 個階段:無操作系統(tǒng)階段、簡單操作系統(tǒng)階段、實時操作系統(tǒng)階段、面向Internet 階段。

      (3)知識產(chǎn)權(quán)核(IP 核):具有知識產(chǎn)權(quán)的、功能具體、接口規(guī)范、可在多個集成電路設(shè)計中重復(fù)使用的功能模塊,是實現(xiàn)系統(tǒng)芯片(SOC)的基本構(gòu)件。

      (4)IP 核模塊有行為、結(jié)構(gòu)和物理3 級不同程度的設(shè)計,對應(yīng)描述功能行為的不同可以分為三類:軟核、固核、硬核。

      52.嵌入式系統(tǒng)的組成:硬件層、中間層、系統(tǒng)軟件層和應(yīng)用軟件層

      (1)硬件層:嵌入式微處理器、存儲器、通用設(shè)備接口和I/O 接口。

      嵌入式核心模塊=微處理器+電源電路+時鐘電路+存儲器

      Cache:位于主存和嵌入式微處理器內(nèi)核之間,存放的是最近一段時間微處理器使用最多的程序代碼和數(shù)據(jù)。它的主要目標(biāo)是減小存儲器給微處理器內(nèi)核造成的存儲器訪問瓶頸,使處理速度更快。

      (2)中間層(也稱為硬件抽象層HAL 或者板級支持包BSP):它將系統(tǒng)上層軟件和底層硬件分離開來,使系統(tǒng)上層軟件開發(fā)人員無需關(guān)系底層硬件的具體情況,根據(jù)BSP 層提供的接口開發(fā)即可。

      BSP 有兩個特點:硬件相關(guān)性和操作系統(tǒng)相關(guān)性。

      設(shè)計一個完整的BSP 需要完成兩部分工作:

      A、嵌入式系統(tǒng)的硬件初始化和BSP 功能。

      片級初始化:純硬件的初始化過程,把嵌入式微處理器從上電的默認狀態(tài)逐步設(shè)置成系統(tǒng)所要求的工作狀態(tài)。

      板級初始化:包含軟硬件兩部分在內(nèi)的初始化過程,為隨后的系統(tǒng)初始化和應(yīng)用程序建立硬件和軟件的運行環(huán)境。

      系統(tǒng)級初始化:以軟件為主的初始化過程,進行操作系統(tǒng)的初始化。

      B、設(shè)計硬件相關(guān)的設(shè)備驅(qū)動。

      (3)系統(tǒng)軟件層:由RTOS、文件系統(tǒng)、GUI、網(wǎng)絡(luò)系統(tǒng)及通用組件模塊組成。

      RTOS 是嵌入式應(yīng)用軟件的基礎(chǔ)和開發(fā)平臺。

      (4)應(yīng)用軟件:由基于實時系統(tǒng)開發(fā)的應(yīng)用程序組成。53.實時系統(tǒng)

      (1)定義:能在指定或確定的時間內(nèi)完成系統(tǒng)功能和對外部或內(nèi)部、同步或異步時間做出響應(yīng)的系統(tǒng)。

      (2)區(qū)別:通用系統(tǒng)一般追求的是系統(tǒng)的平均響應(yīng)時間和用戶的使用方便;而實時系統(tǒng)主要考慮的是在最壞情況下的系統(tǒng)行為。

      (3)特點:時間約束性、可預(yù)測性、可靠性、與外部環(huán)境的交互性。

      (4)硬實時(強實時):指應(yīng)用的時間需求應(yīng)能夠得到完全滿足,否則就造成重大安全事故,甚至造成重大的生命財產(chǎn)損失和生態(tài)破壞,如:航天、軍事。

      (5)軟實時(弱實時):指某些應(yīng)用雖然提出了時間的要求,但實時任務(wù)偶爾違反這種需求對系統(tǒng)運行及環(huán)境不會造成嚴(yán)重影響,如:監(jiān)控系統(tǒng)、實時信息采集系統(tǒng)。

      下載學(xué)習(xí)嵌入式Linux系統(tǒng)的筆記和體會[5篇模版]word格式文檔
      下載學(xué)習(xí)嵌入式Linux系統(tǒng)的筆記和體會[5篇模版].doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        嵌入式系統(tǒng)學(xué)習(xí)規(guī)劃5篇

        課程體系 1.linux應(yīng)用 5天 linux 基本命令 服務(wù)器配置《linux管理員》 2.linux下C語言 編譯環(huán)境和windows不同 makemakefilegcc編譯器 3.linux環(huán)境高級編程 進程進程間通信......

        嵌入式系統(tǒng)實驗報告

        嵌入式系統(tǒng)實驗報告 學(xué)號: 姓 名: 班 級:13電子信息工程指導(dǎo)老師: 蘇州大學(xué) 電子信息學(xué)院 2016年12月 實驗一:一個燈的閃爍 1、實驗要求 實現(xiàn)PF6-10端口所連接的任意一個LED燈......

        嵌入式系統(tǒng)調(diào)查報告

        “嵌入式系統(tǒng)在企業(yè)中的應(yīng)用”調(diào)查報告 工學(xué)院范裕婷內(nèi)容提要:現(xiàn)今,全過程自動化產(chǎn)品制造、大范圍電子商務(wù)活動、高度協(xié)同科學(xué)實驗以及現(xiàn)代化家庭起居,是嵌入式系統(tǒng)在企業(yè)中應(yīng)......

        嵌入式系統(tǒng)發(fā)展趨勢

        未來嵌入式系統(tǒng)的發(fā)展趨勢 在網(wǎng)絡(luò)、通信、微電子發(fā)展的基礎(chǔ)上,以及勢不可擋的數(shù)字化信息產(chǎn)品的強大需求推動下,嵌入式技術(shù)具有廣闊的發(fā)展創(chuàng)新空間。 (1)低功耗、高性能、高可......

        嵌入式系統(tǒng)學(xué)習(xí)心得(精選合集)

        首先我聲明,我是基于嵌入式系統(tǒng)平臺級設(shè)計的,硬件這個方向我相對來講比較有發(fā)言權(quán),如果是其它方面所要具備的基本技能還要和我們培訓(xùn)中心其它專業(yè)級講師溝通。他們的方面上我只......

        嵌入式系統(tǒng)實驗

        南京信息工程大學(xué) 實驗(實習(xí))報告 實驗(實習(xí))名稱電機轉(zhuǎn)動控制及中斷實驗 實驗(實習(xí))日期2016.5 得分 指導(dǎo)教師 謝勝東學(xué)院 計算機與軟件 專業(yè) 計算機科學(xué)與技術(shù) 年級2013......

        嵌入式系統(tǒng)實驗報告

        嵌入式系統(tǒng)設(shè)計實驗報告 班 級: 學(xué) 號: 姓 名: 成 績: 指導(dǎo)教師: 1. 實驗一 1.1 實驗名稱 博創(chuàng)UP-3000實驗臺基本結(jié)構(gòu)及使用方法 1.2 實驗?zāi)康?1.學(xué)習(xí)嵌入式系統(tǒng)開發(fā)流程。 2.熟悉U......

        嵌入式系統(tǒng)實驗報告

        廣西工學(xué)院鹿山學(xué)院 實 驗 報 告 課程名稱: 嵌入式系統(tǒng) 指導(dǎo)教師: 劉瑞琪 班 級: 自動化101 姓 名: 楊杰 學(xué) 號: 20102787 成績評定: 指導(dǎo)教師簽字: 2013年5月25日 實驗一簡單的......