<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è) > 嵌入式系統 > 設計應用 > 移植標準Linux到S3C2410

移植標準Linux到S3C2410

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

1 引言

本文引用地址:http://dyxdggzs.com/article/171432.htm

目前 , 在嵌入式系統里基于A(yíng)RM核的嵌入式處理器已經(jīng)成為市場(chǎng)主流。隨著(zhù)ARM技術(shù)的廣泛應用 , 建立面向ARM構架的嵌入式操作系統也就成為當前研究的熱點(diǎn)。是SAMSUNG公司基于A(yíng)RM920T處理器內核開(kāi)發(fā)的一款16/32位嵌入式處理器,運行頻率高達200多M,具有MMU和高速緩存等豐富片上資源,是目前基于A(yíng)RM920T內核的出貨量最大的一款芯片。目前嵌入式操作系統也較多,如 Tor2nado 的VxWork、微軟的 Windows CE等等。大量開(kāi)發(fā)人員選擇的卻都是,這是因為它源代碼開(kāi)放,可以輕松修改到自己的目標平臺系統里使用。并且事實(shí)證明,效果令人滿(mǎn)意。兩者的結合必將在嵌入式系統的世界里打出一片天地。

2 操作系統的

2.1的含義

要使得能在A(yíng)RM嵌入式處理器上運作,勢必要經(jīng)過(guò)移植 (porting) 的過(guò)程。所謂移植,就是讓一套軟件可以在一套選定硬件平臺上正常運作,也就是要將平臺相依 (platform dependent) 的部分做適當的修改。內核源碼arch子目錄包括了所有和平臺體系結構相關(guān)的核心代碼,它的每一個(gè)子目錄都代表所支持的一種體系結構,arm就是關(guān)于我們所選處理器體系結構的子目錄。我們的移植工作主要集中于此目錄下。

2.2移植的具體實(shí)現

如果我們已經(jīng)搭建起完整的交叉編譯平臺,移植工作便可開(kāi)始了(以當前使用最廣的linux-2.4為例,放于/usr/src/ linux-2.4.18之下)。

/ Makefile文件

一個(gè)工程往往包含很多的文件,按照一定的規則放在多個(gè)目錄中。Makefile文件用來(lái)指定編譯規則,例如哪些需要編譯,哪些要先編譯。在此處要做的是:

指定目標平臺ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)

設置為ARCH :=arm

指定交叉編譯器CROSS_COMPILE =

設置為CROSS_COMPILE =arm-linux-

/arch/arm/Makefile

啟動(dòng)代碼的產(chǎn)生要通過(guò)此一文件,由于2.4內核還沒(méi)有對的支持,自行加入如下代碼

ifeq ((CONFIG_ARCH_ ),y)

TEXTADDR = xxx

MACHINE = s3c2410

Endif

TEXTADDR是內核的虛擬起始地址[6],也是內核最終運行地址,通常設為PAGE_OFFSET +0x8000,須根據實(shí)際情況相結合[2]。

/arch/arm/config.in

config.in是配置文件,決定了我們在配置菜單中看到的內容。自行加入$CONFIG_ARCH_S3C2410子選項[5]。

if [ $CONFIG_ARCH_S3C2410 = y ]; then

comment'Archimedes/A5000 Implementations'

dep_bool 'SMDK (MERI TECH BOARD) '

CONFIG _S3C2410_SMDK//

$CONFIG_ARCH_S3C2410

//其他

fi

在if [ $CONFIG_FOOTBRIDGE_HOST = y -o

……

$CONFIG_ARCH_SA1100 = y ]; then

define_bool CONFIG_ISA y

else

define_bool CONFIG_ISA n

fi

中依樣加入$CONFIG_ARCH_s3c2410 = y-o。

/arch/arm/boot/Makefile

ZTEXTADDR 是解壓前image.rom的位置,ZRELADDR是內核解壓并最終執行的位置。ZRELADDR與TEXTADDR之間符合如下映射關(guān)系:__virt_to_phys(TEXTADDR) == ZRELADDR[6]。

ifeq ((CONFIG_ARCH_s3c2410),y)

ZTEXTADDR = xxx

ZRELADDR = xxx

Endif

/arch/arm/boot/compressed/ Makefile

依樣加入 ifeq ($(CONFIG_ARCH_S3C2410),y)

OBJS +=head-s3c2410.o

endif

/arch/arm/boot/compressed/head-s3c2410.s

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: S3C2410 Linux 標準 移植

評論


相關(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>