浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » 嵌入式系統(tǒng)

uClinux在Nios II嵌入式平臺(tái)上的移植研究

發(fā)布時(shí)間:2009/2/18 0:00:00 訪問次數(shù):748

  1. nios ii嵌入式處理器

  nios ii是運(yùn)行在fpga上的五級(jí)流水線、單指令的risc處理器,它專門針對(duì)altera的可編程邏輯器件及片上可編程的設(shè)計(jì)思想做了相應(yīng)的優(yōu)化。作為一種可配置的精減的risc處理器,它可以與用戶自定義邏輯結(jié)合構(gòu)成sopc系統(tǒng),并下載到altera的可編程器件中。32位的nios ii軟核,結(jié)合外部閃存以及大容量存儲(chǔ)器,可以構(gòu)成一個(gè)功能強(qiáng)大的32位嵌入式處理器系統(tǒng)。此外,利用altera提供的ide(integrated development environment)開發(fā)工具 可以方便的在調(diào)試模式下調(diào)試處理器,提高開發(fā)的速度。

  作者使用cyclone ii版nios ii應(yīng)用開發(fā)板nios-devkit-2c35 作為移植實(shí)現(xiàn)的平臺(tái),開發(fā)板主要包括cyclone ii ep2c35器件、epm7128ae cpld配置控制邏輯、存儲(chǔ)器、串行配置連接器、fpga和cpld的jtag接口等。

  2. 移植

  2.1. uclinux嵌入式操作系統(tǒng)

  uclinux是linux的一個(gè)嵌入式版本,它經(jīng)過小型化改造,形成了一個(gè)高度優(yōu)化、代碼緊湊的嵌入式linux,并保留了linux的大多數(shù)優(yōu)點(diǎn)。最新的2.6版本在內(nèi)核主體中加入了提高中斷性能和調(diào)度響應(yīng)時(shí)間的改進(jìn),其中有三個(gè)最顯著的改進(jìn):采用可搶占內(nèi)核、更加有效的調(diào)度算法以及同步性的提高 。

  2.1.1. uclinux操作系統(tǒng)的移植

  uclinux源代碼絕大部分都是使用的c語言,只有那些直接與處理其硬件相關(guān)的代碼如開關(guān)cpu中斷等操作才采用匯編語言編寫,因此uclinux具有很好的移植性。一般來說,uclinux的移植大致分為三類:

  1) 結(jié)構(gòu)層次的移植。如果待移植的處理器結(jié)構(gòu)不同于任何已經(jīng)支持的處理器結(jié)構(gòu),則需要修改linux/arch目錄下的相關(guān)處理器結(jié)構(gòu)的文件。uclinux內(nèi)核代碼的大部分是獨(dú)立于處理器和其體系結(jié)構(gòu)的,但是其最底層的代碼也是特定于各個(gè)系統(tǒng)的。他們的中斷處理上下文、內(nèi)存維護(hù)、任務(wù)上下文和初始化過程都是獨(dú)特的。對(duì)一個(gè)新型的體系,其下層程序可以模仿與其相似的體系程序編寫。

  2) 平臺(tái)層次的移植。待移植處理器是某種uclinux已支持體系的分支處理器,即如果待移植的處理器是基于nios ii內(nèi)核的,而nios ii內(nèi)核已經(jīng)被uclinux支持,則需要在相關(guān)體系結(jié)構(gòu)目錄platform下建立相應(yīng)目錄并編寫相應(yīng)代碼,這些代碼主要是跟蹤程序(實(shí)現(xiàn)用戶程序到內(nèi)核函數(shù)的接口等功能)、中斷控制調(diào)度程序和內(nèi)存初始化程序等。

  3) 板級(jí)移植。如果所用處理器(如cyclone ii版本系列)已經(jīng)被uclinux支持的話,就只需要板級(jí)移植了。板級(jí)移植需要修改或添加linux/arch/nios2nommu/scripts目錄中的文件,該目錄中主要是與具體硬件平臺(tái)相關(guān)的配置,可以利用nios ii自帶的sopc builder軟件生成具體平臺(tái)對(duì)應(yīng)的配置文件。

  對(duì)于uclinux已經(jīng)支持的硬件架構(gòu),移植的過程相對(duì)較為簡(jiǎn)單,主要考慮修改與硬件開發(fā)平臺(tái)相關(guān)的具體因素,如內(nèi)存大小、外圍設(shè)備的配置等。一般現(xiàn)在做的大部分移植都是平臺(tái)層次移植和板級(jí)移植。

  2.1.2. initramfs文件系統(tǒng)

  作者使用的uclinux 2.6操作系統(tǒng)中,用initramfs文件系統(tǒng)取代了以前的romfs文件系統(tǒng)。

  1. romfs文件系統(tǒng)。romfs文件系統(tǒng)是在uclinux 2.4以及之前版本廣泛用到的文件系統(tǒng),這種文件系統(tǒng)相對(duì)于一般的ext2/ext3文件系統(tǒng)要求更少的空間。romfs文件系統(tǒng)不支持動(dòng)態(tài)擦寫保存,對(duì)于系統(tǒng)需要?jiǎng)討B(tài)保存的數(shù)據(jù)采用虛擬ram盤的方法進(jìn)行處理(ram盤采用ext2/ext3文件系統(tǒng))。

  2. initramfs文件系統(tǒng)[2]。initramfs是在2.5版本內(nèi)核中引入的技術(shù),它的基本思想是:在內(nèi)核鏡像中附加一個(gè)cpio包,cpio包中包含了一個(gè)小型的文件系統(tǒng),當(dāng)內(nèi)核啟動(dòng)時(shí),內(nèi)核將cpio包解開,并且將其中包含的文件系統(tǒng)作為初始的根文件系統(tǒng),內(nèi)核中的一部分初始化代碼會(huì)放到這個(gè)文件系統(tǒng)中作為用戶層進(jìn)程來執(zhí)行。這樣帶來的明顯的好處是精簡(jiǎn)了內(nèi)核的初始化代碼,例如尋找真正的啟動(dòng)盤、啟動(dòng)時(shí)的網(wǎng)絡(luò)安裝、acpi的安裝等,這些代碼都可以從內(nèi)核中移出,把它們都轉(zhuǎn)移到用戶空間完成,這樣使得開發(fā)者在用戶層就可以定制自己的啟動(dòng)過程,而不需要去修改內(nèi)核代碼,使定制啟動(dòng)過程變得更加容易。

  2.2. 開發(fā)環(huán)境的建立

  1. 建立交叉編譯環(huán)境。可以在uclinux官方網(wǎng)站下載支持nios ii的交叉編譯開發(fā)工具包,包括nios2-linux-uclibc-gcc、nios2-linux-uclibc-ld、nios2-linux-uclibc-objdump等。

  安裝好交叉編譯工具包后,要在宿主pc上的linux系統(tǒng)的環(huán)境變量中(一般修改~/.bash_profile文件),添加對(duì)nios ii交叉編譯環(huán)境的支持,這樣在以后的開發(fā)中,就可以正常編譯在nios ii嵌入式平臺(tái)下運(yùn)行的程序了。

  2. 內(nèi)核的下載和燒寫。在最初的調(diào)試中,是通過jtag把內(nèi)核下載到開發(fā)板,nios ii平臺(tái)的硬件邏輯也是通過jtag燒進(jìn)開發(fā)板,等到最后硬件邏輯測(cè)試沒有問題,以及uclinux操作系統(tǒng)調(diào)試運(yùn)行正常后,就可以制作帶bootloader的內(nèi)核,燒入flash中。

  2

  1. nios ii嵌入式處理器

  nios ii是運(yùn)行在fpga上的五級(jí)流水線、單指令的risc處理器,它專門針對(duì)altera的可編程邏輯器件及片上可編程的設(shè)計(jì)思想做了相應(yīng)的優(yōu)化。作為一種可配置的精減的risc處理器,它可以與用戶自定義邏輯結(jié)合構(gòu)成sopc系統(tǒng),并下載到altera的可編程器件中。32位的nios ii軟核,結(jié)合外部閃存以及大容量存儲(chǔ)器,可以構(gòu)成一個(gè)功能強(qiáng)大的32位嵌入式處理器系統(tǒng)。此外,利用altera提供的ide(integrated development environment)開發(fā)工具 可以方便的在調(diào)試模式下調(diào)試處理器,提高開發(fā)的速度。

  作者使用cyclone ii版nios ii應(yīng)用開發(fā)板nios-devkit-2c35 作為移植實(shí)現(xiàn)的平臺(tái),開發(fā)板主要包括cyclone ii ep2c35器件、epm7128ae cpld配置控制邏輯、存儲(chǔ)器、串行配置連接器、fpga和cpld的jtag接口等。

  2. 移植

  2.1. uclinux嵌入式操作系統(tǒng)

  uclinux是linux的一個(gè)嵌入式版本,它經(jīng)過小型化改造,形成了一個(gè)高度優(yōu)化、代碼緊湊的嵌入式linux,并保留了linux的大多數(shù)優(yōu)點(diǎn)。最新的2.6版本在內(nèi)核主體中加入了提高中斷性能和調(diào)度響應(yīng)時(shí)間的改進(jìn),其中有三個(gè)最顯著的改進(jìn):采用可搶占內(nèi)核、更加有效的調(diào)度算法以及同步性的提高 。

  2.1.1. uclinux操作系統(tǒng)的移植

  uclinux源代碼絕大部分都是使用的c語言,只有那些直接與處理其硬件相關(guān)的代碼如開關(guān)cpu中斷等操作才采用匯編語言編寫,因此uclinux具有很好的移植性。一般來說,uclinux的移植大致分為三類:

  1) 結(jié)構(gòu)層次的移植。如果待移植的處理器結(jié)構(gòu)不同于任何已經(jīng)支持的處理器結(jié)構(gòu),則需要修改linux/arch目錄下的相關(guān)處理器結(jié)構(gòu)的文件。uclinux內(nèi)核代碼的大部分是獨(dú)立于處理器和其體系結(jié)構(gòu)的,但是其最底層的代碼也是特定于各個(gè)系統(tǒng)的。他們的中斷處理上下文、內(nèi)存維護(hù)、任務(wù)上下文和初始化過程都是獨(dú)特的。對(duì)一個(gè)新型的體系,其下層程序可以模仿與其相似的體系程序編寫。

  2) 平臺(tái)層次的移植。待移植處理器是某種uclinux已支持體系的分支處理器,即如果待移植的處理器是基于nios ii內(nèi)核的,而nios ii內(nèi)核已經(jīng)被uclinux支持,則需要在相關(guān)體系結(jié)構(gòu)目錄platform下建立相應(yīng)目錄并編寫相應(yīng)代碼,這些代碼主要是跟蹤程序(實(shí)現(xiàn)用戶程序到內(nèi)核函數(shù)的接口等功能)、中斷控制調(diào)度程序和內(nèi)存初始化程序等。

  3) 板級(jí)移植。如果所用處理器(如cyclone ii版本系列)已經(jīng)被uclinux支持的話,就只需要板級(jí)移植了。板級(jí)移植需要修改或添加linux/arch/nios2nommu/scripts目錄中的文件,該目錄中主要是與具體硬件平臺(tái)相關(guān)的配置,可以利用nios ii自帶的sopc builder軟件生成具體平臺(tái)對(duì)應(yīng)的配置文件。

  對(duì)于uclinux已經(jīng)支持的硬件架構(gòu),移植的過程相對(duì)較為簡(jiǎn)單,主要考慮修改與硬件開發(fā)平臺(tái)相關(guān)的具體因素,如內(nèi)存大小、外圍設(shè)備的配置等。一般現(xiàn)在做的大部分移植都是平臺(tái)層次移植和板級(jí)移植。

  2.1.2. initramfs文件系統(tǒng)

  作者使用的uclinux 2.6操作系統(tǒng)中,用initramfs文件系統(tǒng)取代了以前的romfs文件系統(tǒng)。

  1. romfs文件系統(tǒng)。romfs文件系統(tǒng)是在uclinux 2.4以及之前版本廣泛用到的文件系統(tǒng),這種文件系統(tǒng)相對(duì)于一般的ext2/ext3文件系統(tǒng)要求更少的空間。romfs文件系統(tǒng)不支持動(dòng)態(tài)擦寫保存,對(duì)于系統(tǒng)需要?jiǎng)討B(tài)保存的數(shù)據(jù)采用虛擬ram盤的方法進(jìn)行處理(ram盤采用ext2/ext3文件系統(tǒng))。

  2. initramfs文件系統(tǒng)[2]。initramfs是在2.5版本內(nèi)核中引入的技術(shù),它的基本思想是:在內(nèi)核鏡像中附加一個(gè)cpio包,cpio包中包含了一個(gè)小型的文件系統(tǒng),當(dāng)內(nèi)核啟動(dòng)時(shí),內(nèi)核將cpio包解開,并且將其中包含的文件系統(tǒng)作為初始的根文件系統(tǒng),內(nèi)核中的一部分初始化代碼會(huì)放到這個(gè)文件系統(tǒng)中作為用戶層進(jìn)程來執(zhí)行。這樣帶來的明顯的好處是精簡(jiǎn)了內(nèi)核的初始化代碼,例如尋找真正的啟動(dòng)盤、啟動(dòng)時(shí)的網(wǎng)絡(luò)安裝、acpi的安裝等,這些代碼都可以從內(nèi)核中移出,把它們都轉(zhuǎn)移到用戶空間完成,這樣使得開發(fā)者在用戶層就可以定制自己的啟動(dòng)過程,而不需要去修改內(nèi)核代碼,使定制啟動(dòng)過程變得更加容易。

  2.2. 開發(fā)環(huán)境的建立

  1. 建立交叉編譯環(huán)境?梢栽趗clinux官方網(wǎng)站下載支持nios ii的交叉編譯開發(fā)工具包,包括nios2-linux-uclibc-gcc、nios2-linux-uclibc-ld、nios2-linux-uclibc-objdump等。

  安裝好交叉編譯工具包后,要在宿主pc上的linux系統(tǒng)的環(huán)境變量中(一般修改~/.bash_profile文件),添加對(duì)nios ii交叉編譯環(huán)境的支持,這樣在以后的開發(fā)中,就可以正常編譯在nios ii嵌入式平臺(tái)下運(yùn)行的程序了。

  2. 內(nèi)核的下載和燒寫。在最初的調(diào)試中,是通過jtag把內(nèi)核下載到開發(fā)板,nios ii平臺(tái)的硬件邏輯也是通過jtag燒進(jìn)開發(fā)板,等到最后硬件邏輯測(cè)試沒有問題,以及uclinux操作系統(tǒng)調(diào)試運(yùn)行正常后,就可以制作帶bootloader的內(nèi)核,燒入flash中。

  2

相關(guān)IC型號(hào)

熱門點(diǎn)擊

 

推薦技術(shù)資料

DFRobot—玩的就是
    如果說新車間的特點(diǎn)是“靈動(dòng)”,F(xiàn)QPF12N60C那么... [詳細(xì)]
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線:13751165337  13692101218
粵ICP備09112631號(hào)-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式


 復(fù)制成功!