在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      新聞中心

      EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于AT91SAM9G20構(gòu)建嵌入式Linux系統(tǒng)

      基于AT91SAM9G20構(gòu)建嵌入式Linux系統(tǒng)

      作者: 時(shí)間:2013-10-23 來源:網(wǎng)絡(luò) 收藏
      本文中使用的目標(biāo)平臺(tái)是Atmel公司使用ARM926EJ-S處理器內(nèi)核開發(fā)的一塊SoC嵌入式微處理器,主頻達(dá)到400MHz,具有Atmel 先進(jìn)的外設(shè)DMA 和分布式存儲(chǔ)器架構(gòu),連同6層總線矩陣,可實(shí)現(xiàn)存儲(chǔ)器、外設(shè)和外部接口之間的多重?cái)?shù)據(jù)同時(shí)傳送,而無需耗費(fèi)CPU的時(shí)鐘周期。與引腳兼容的200 MHz AT91SAM9260相比,提供多達(dá)4倍的高速緩存和片上 SRAM 內(nèi)存,并具有增強(qiáng)的外接 NAND 閃存錯(cuò)誤校正功能,以及更大的以太網(wǎng) FIFO,能夠減少傳輸延遲。其外部總線接口(EBI)的時(shí)鐘頻率為133 MHz,用于片外存儲(chǔ)器的高速數(shù)據(jù)傳送。這些特性使得開發(fā)人員可以將WindowsCE和Linux等移植到基于這塊微處理器的目標(biāo)系統(tǒng)中。

      也是嵌入式系統(tǒng)的重要組成部分。當(dāng)今的嵌入式各種各樣,有VxWorks、QNX、Palm OS,Windows CE、Linux, uClinux,ucos ii等,每種操作系統(tǒng)都有其與眾不同之處,本文移植的嵌入式操作系統(tǒng)為L(zhǎng)inux。廣泛開放源代碼的Linux應(yīng)用已經(jīng)被移植到嵌入式的運(yùn)行環(huán)境中,可以任意剪裁和修改后將其移植入自己的硬件平臺(tái)上,因此使用Linux開發(fā)嵌入式操作系統(tǒng),可以加快嵌入式系統(tǒng)的開發(fā)速度,縮短產(chǎn)品進(jìn)入市場(chǎng)的時(shí)間。

      本文的工作主要包括Boot loader實(shí)現(xiàn),Linux內(nèi)核移植、文件系統(tǒng)的實(shí)現(xiàn)三個(gè)部分。

      搭建交叉開發(fā)環(huán)境

      在移植操作系統(tǒng)之前,首先要在一臺(tái)裝有Linux的PC機(jī)上搭建好開發(fā)環(huán)境,例如我們的宿主機(jī)為Ubuntu10.04,為獲得所有操作權(quán)限,以root身份登錄宿主機(jī)。在 usr/local/目錄下建立arm路徑,下載交叉編譯工具arm-linux-gcc-4.3.2.tgz,將之復(fù)制到文件夾/usr/local/arm/下,并將其解壓;最后需要修改環(huán)境變量,設(shè)置默認(rèn)交叉編譯工具為arm-linux-gcc-4.3.2。利用Linux下編輯工具(如vim)打開/root/.bashrc文件,在文件末尾添加如下代碼:

      if

      [ -d /usr/local/arm ] ;

      then PATH=/usr/local/arm/4.3.2/bin:"${PATH}"

      fi

      到此交叉編譯工具搭建完畢,為驗(yàn)證交叉編譯工具是否搭建成功,可以在終端下輸入命令 arm-linux-gcc -v,搭建成功后會(huì)在終端下顯示arm-linux-gcc的版本。注意此處必須注銷用戶,重新登錄系統(tǒng)后設(shè)置才會(huì)生效。

      引導(dǎo)程序

      系統(tǒng)上電之后,需要一段程序來進(jìn)行初始化:關(guān)閉看門狗、改變系統(tǒng)時(shí)鐘、初始化存儲(chǔ)控制器、將更多的代碼復(fù)制到內(nèi)存中等,這段程序被稱為Boot loader。簡(jiǎn)言之Boot loader就是在系統(tǒng)上電后開始執(zhí)行,初始化硬件設(shè)備、準(zhǔn)備好軟件環(huán)境、最后調(diào)用操作系統(tǒng)內(nèi)核。Boot loader的實(shí)現(xiàn)非常依賴與具體的硬件,在嵌入式系統(tǒng)中硬件配置千差萬別,即使是相同的CPU,外設(shè)資源也不盡相同,因此需要根據(jù)特定的硬件進(jìn)行移植。

      Boot Loader包含兩種不同的操作模式:?jiǎn)?dòng)加載模式和下載模式。上電后,Boot loader從板子上的某個(gè)固態(tài)存儲(chǔ)設(shè)備上將操作系統(tǒng)加載到RAM中運(yùn)行,整個(gè)過程沒有用戶的介入,一般用于最終產(chǎn)品。下載模式下則在開發(fā)過程中使用,開發(fā)人員可以使用各種命令,通過串口或網(wǎng)絡(luò)等通信手段從宿主機(jī)下載文件(比如內(nèi)核映像,文件系統(tǒng)映像),將它們直接放入內(nèi)存或是燒入flash類固態(tài)存儲(chǔ)設(shè)備中。

      為了在上實(shí)現(xiàn)嵌入式操作系統(tǒng)運(yùn)行,AT91SAM9G20采用了三.級(jí)引導(dǎo)方式,其Boot Loader程序由三部分組成,即RomBoot、Bootstrap和U-Boot,三.級(jí)引導(dǎo)程序的流程如圖1所示。

      基于AT91SAM9G20構(gòu)建嵌入式Linux系統(tǒng)
      圖1:三.級(jí)引導(dǎo)程序的流程圖

      第一級(jí)引導(dǎo)程序Romboot固化在AT9lSAM9G20內(nèi)部,上電或復(fù)位后先運(yùn)行這段引導(dǎo)代碼,其作用是將存儲(chǔ)于外部FLASH第二級(jí)引導(dǎo)程序Bootstrap加載到CPU內(nèi)部的SRAM中執(zhí)行。Bootstrap存儲(chǔ)在外部FLASH的前4KB空間,其功能包括初始化時(shí)鐘、SDRAM控制器以及DEBUG串口等硬件資源,并將第三 級(jí)引導(dǎo)程序U-Boot從FLASH加載到SDRAM執(zhí)行。U-Boot將嵌入式Linux操作系統(tǒng)從FLASH引導(dǎo)和加載到SDRAM中,并將CPU的控制權(quán)交給Linux。

      本次移植使用的U-boot的版本為1.3.4,限于篇幅,本文不做詳細(xì)的介紹。

      內(nèi)核的裁剪編譯

      1.準(zhǔn)備工作

      從Linux官網(wǎng)下載linux內(nèi)核源碼linux-2.6.30.tar.bz2,并從Atmel官網(wǎng)下載at91sam9g20的補(bǔ)丁文件(2.6.30-at91.patch.gz 和2.6.30-at91-exp.3.tar.gz)。在宿主機(jī)Linux開發(fā)環(huán)境下,建立自己的工作目錄,例如工作目錄為home/work/,將上述三個(gè)文件拷貝至工作目錄下,解壓Linux2.6.30,并將2.6.30-at91.patch.gz和2.6.30-at91-exp.3.tar.gz拷貝至Linux2.6.30根目錄下,同時(shí)解壓2.6.30-at91-exp.3.tar.gz。完成此部分工作如下圖2所示。

      基于AT91SAM9G20構(gòu)建嵌入式Linux系統(tǒng)
      圖2:準(zhǔn)備工作完成

      linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

      linux相關(guān)文章:linux教程




      評(píng)論


      相關(guān)推薦

      技術(shù)專區(qū)

      關(guān)閉