<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > uClinux在嵌入式系統中的移植研究

uClinux在嵌入式系統中的移植研究

作者: 時(shí)間:2012-05-21 來(lái)源:網(wǎng)絡(luò ) 收藏

3.3 內核的修改

目前已被成功到S3C44B0及其他多款ARM芯片上,但由于嵌入式操作系統的運行是與的硬件密切相關(guān)的,而硬件的設計則會(huì )因為使用場(chǎng)合的不同而千差萬(wàn)別,因此,內核源代碼中和硬件緊密相關(guān)的部分就應該針對特定的硬件作出適當的修改。

首先,從網(wǎng)站(www.uClinx.org)下載源碼uClinux-dist-20040408,但這個(gè)發(fā)行包中的內核對S3C44B0X處理器的支持是不完整的,必須為內核打上補丁uClinux-2.4.24.patch(可以從http://www.hzlitai.com.cn下載),然后在終端下執行:patch –p0uClinux

-2.4.24.patch就可以安裝該補丁。該補丁完善了對S3C44B0的支持,但是它針對特定的硬件及Bootloader,對內核做了相應的修改,因此我們在做時(shí)應該根據自己的BootLoader及硬件來(lái)修改內核。修改部分如下:

(1)壓縮內核代碼起始地址修改

修改目錄linux-2.4.x/arch/armnommu/boot/下的文件Makefile里的如下代碼:

ifeq ($(CONFIG_BOARD_MBA44),y)

ZTEXTADDR = 0x0c300000

ZRELADDR = 0x0c008000

Endif

ZTEXTADDR代表映像文件image.rom自解壓的起始地址,它的值是由BootLoader的功能2決定的。執行功能2,將image.rom從Flash轉移到 SDRAM的地址0x0c300000,內核自解壓,所以ZTEXTADDR必須和這個(gè)值相同。ZRELADDR代表內核解壓后代碼輸出起始地址。

(2)處理器配置選項的修改

修改目錄linux-2.4.x/arch/armnommu/下的文件config.in里的如下代碼:

define_int CONFIG_ARM_CLK 64000000

if [ "$CONFIG_SET_MEM_PARAM" = "n" ]; then

define_hex DRAM_BASE 0x0C000000

define_hex DRAM_SIZE 0x00800000

define_hex FLASH_MEM_BASE 0x00000000

define_hex FLASH_SIZE 0x00200000

DRAM_BASE代表SDRAM的起始地址,DRAM_SIZE代表SDRAM的大小,FLASH_MEM_BASE代表Flash的起始地址, FLASH_SIZE代表Flash的大小。要根據自己的Flash和SDRAM來(lái)設定這些值

(3)內核起始地址的修改

修改目錄linux-2.4.x/arch/armnommu/下的文件Makefile里的如下代碼:

ifeq ($(CONFIG_BOARD_MBA44),y)

TEXTADDR = 0x0c008000

MACHINE = S3C44B0X

INCDIR = $(MACHINE)

CORE_FILES := $(CORE_FILES) #romfs.o

Endif

TEXTADDR代表內核起始地址,與image.rom自解壓后代碼輸出起始地址(ZRELADDR)相同。

(4)ROM文件系統的定位修改

修改目錄linux-2.4.x/drivers/block下的文件blkmem.c里的如下代碼:

#ifdef CONFIG_BOARD_MBA44

{0, 0x00100000, -1},

#endif

0x00100000是文件系統的定位地址。本文中采用uClinux的文件系統ROM file system,它的映象文件romfs.img要燒寫(xiě)到flash的某一地址。一旦該定位地址確定,在執行BootLoader的功能1時(shí)就要將 romfs.img燒寫(xiě)到flash的這個(gè)地址。定位地址不是固定不變的,可以根據flash和image.rom的大小來(lái)更改。

矢量控制相關(guān)文章:矢量控制原理


關(guān)鍵詞: 嵌入式系統 uClinux 移植

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>