999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Linux操作系統在S3C2410上的移植研究

2021-09-22 07:44:12李殿濤
電子技術與軟件工程 2021年13期

李殿濤

(濱州醫學院附屬醫院 山東省濱州市 256603)

1 引言

近來,隨著技術的發展,越來越多的處理器速度越來越快,功耗也越來越低,總之性能也越來越好,因此整個系統能夠處理的事物也越來越復雜,因此能否在一個處理器上實現主流操作系統的移植便呈現在我們的面前,當前Linux操作系統由于開放源代碼,功能強大,更新快變進入了我們的視線,而三星公司的產品S3C2410便是移植的平臺。

2 硬件平臺的介紹

本篇文章給予的硬件平臺S3C2410 是三星公司的基于ARM9處理的嵌入式系統板,它的應用領域就是在消費電子領域,并且在系統板上集成了許多的設備,像存儲設備如128M的SDRAM,64M的NAND flash。還用進行網絡通信的網卡DM9000等,還有一系列的USB接口,音頻接口。有如此豐富的外設為我們的應用提供了很多的便利。

3 Linux內核源碼的介紹

3.1 內核源碼的架構

Linux的內核源碼組織的很是有序,不同功能的文件通過不同的目錄組織在一塊,這樣的組織形式使得開發出的內核容易調試,層次性非常清楚[1],封裝性做的很好,這樣的軟件可以為我們進行移植帶來了很多的方便。

Linux的內核文件的目錄如下:

/arch 關于體系架構的目錄,在本文中主要就是針對這部分目錄下的文件進行的修改

/ driver 目錄這是主要的驅動程序的目錄

/fs 文件系統目錄

/kernel 等等其他的目錄。

3.2 本文主要修改的目錄下的文件

進行移植時要修改必要的文件已適合我們的目標系統,在本文中,我們主要修改的是/arch目錄下的相關文件[2],由于內核的版本較高,/driver目錄下都有我們所需要的驅動,并且驅動程序的版本也較高,不需要我們的修改。

4 移植的基本問題

4.1 移植的概念

所謂的移植,指的是將某個操作系統的源代碼能夠在另外的體系架構的處理器上運行,以便在這個處理器上實現操作系統的功能。

4.2 Linux操作系統移植所面臨的問題

雖然說Linux是一個開放源代碼的操作系統,并且其內核源碼樹維護的極為工整,像驅動程序的源代碼放在單獨的目錄中,這樣的目錄架構也確實非常便于操作系統的移植,但是對于嵌入式操作系統的移植確實還有許多的問題,如在存儲器方面的設計,這都是我們需要考慮的問題。

圖1:Linux內核的配置

圖2:編譯階段圖

4.3 移植所需要的工具以及內核的要求

4.3.1 編譯器的選擇

因為我們要做的生成后的真個內核要能在ARM體系架構的處理器中運行,因此我們不能使用僅僅做本地編譯的GCC,(僅僅能在我們的PC中編譯源代碼并且編譯后的程序在本地PC上運行的編譯器)。

我們選擇的編譯器是交叉編譯器arm-linux-gcc,他能夠編譯生成基于目標平臺是arm的可執行程序,這樣我們的編譯器也選擇好了。

4.3.2 編譯器的版本

在Linux下進行軟件開發是一個比較辛苦的工作,因為要面臨如版本的問題,我們最好選用高一些的版本來編譯Linux的內核。因為很多高版本的內核主要是作了一部分的優化而這些優化是必須要有高版本編譯器支持的。我們最終選取的是arm-linux-gcc 4.2.2

4.3.3 對內核的要求

一般來說內核的版本越高,它所提供的功能就越強大,但是新的問題就是產生,那就是高版本的產生的BUG也較多,為此我們應折中一下,最終我們選擇的內核的版本是2.6.24,這個版本不是太高,功能也較多,恰好就是我們所要求的版本。

圖3:Linux在S3C2410上的解壓

圖4:Linux內核在S3C2410上的執行

5 移植的過程

5.1 頂層Makefile的必要的修改

首先,我們要對內核源碼的頂層的Makefile做一些修改,具體如下

特別是第二個選項,一定要標注上絕對路徑,以防系統不能將其識別。

5.2 設置必要的NAND FLASH分區

由于目標板使用的是64M的NAND Flash作為系統的存儲器,所以我們應該建立一個分區表,來定義64M的空間的劃分,以及各區的啟示地址及大小。相應的修改文件是arch/arm/mach-s3c2410/devs.c[3]

我們只要增加如下的結構體變量即可

上述代碼的作用是建立一個64M的分區表,其中四個分區為啟動程序,內核,根文件系統還有用戶空間。

5.3 內核的配置

我們若使系統穩定并快速的運行,配置是非常關鍵的,我們之選擇與本系統硬件相關的進行配置。具體配置圖形如圖1所示。

5.4 內核的編譯及安裝

配置完了我們便可以編譯,在Linux下安裝軟件的朋友都知道Linux的軟件包都是基于源碼的,必須要經過編譯才能安裝,然而內核也是如此,不過我們可以做更多的事情,可以在編譯完了接著進行內核的壓縮,壓縮為bzImage格式的。

命令如下:make zImage[4]

圖2是編譯階段的截圖。

這僅僅是其中一步,因為我們在配置內核的時候很多的驅動程序部分以模塊的形式編譯進內核,因此我們必須要把模塊編譯進內核,其具體的命令是

make module_installed.

然后我們采用U-boot將操作系統由nand flash 加載到內存中,由于我們的S3C2410的sdram的地址空間是0x30008000-3ああああf,這個地址范圍由linux源代碼中的/arch/arm/mach-S3C2410下的文件提供,所以我們會看到如圖3和圖4所示的界面。

6 總結

經過以上的步驟,我們看到了移植后的內核能夠在S3C2410上進行穩定的運行,本文提出了一種針對移植的簡單便易的方法,對于嵌入式系統開發具有實際的應用價值,由于本人采取的方法簡單,省時,可靠,可以縮短嵌入式產品的研發時間,能夠使產品更加快速的上市,對于整個產業的發展也是很有好處的。

主站蜘蛛池模板: 国产成人精品免费av| 99久久精品久久久久久婷婷| 国产电话自拍伊人| 老司机午夜精品网站在线观看| 亚洲精品无码人妻无码| 国产成a人片在线播放| 精品少妇人妻无码久久| 999精品色在线观看| 欧美精品H在线播放| 亚洲中文字幕av无码区| 国产美女91视频| 激情综合婷婷丁香五月尤物| 国产精品一区二区久久精品无码| 久久黄色毛片| a级毛片免费看| 成人午夜天| 亚洲国产清纯| 久久久久久国产精品mv| 99re热精品视频中文字幕不卡| 找国产毛片看| 国产噜噜噜| 亚洲一区二区三区在线视频| 久青草网站| 国产欧美日韩免费| 婷婷五月在线| 亚洲AV无码久久精品色欲| 成人免费一级片| 国产主播在线一区| 538国产在线| 91啦中文字幕| 亚洲一区二区视频在线观看| 福利小视频在线播放| 国产精品原创不卡在线| 亚洲国产精品美女| 国产精品视频公开费视频| 亚洲天堂免费在线视频| 国产一级毛片网站| 亚洲Aⅴ无码专区在线观看q| 国产精品白浆无码流出在线看| 日韩精品高清自在线| 第一页亚洲| 日韩在线影院| 亚洲黄色激情网站| 亚洲成A人V欧美综合| 久视频免费精品6| 99精品视频播放| 国产激情国语对白普通话| 毛片基地视频| 人妻丰满熟妇av五码区| 97视频在线精品国自产拍| 一级毛片基地| 三级视频中文字幕| 亚洲无码高清免费视频亚洲| 久久久久中文字幕精品视频| 青青草91视频| 欧美午夜在线视频| 成人一级免费视频| 亚洲欧美日韩动漫| 99视频精品在线观看| 国产精品对白刺激| 欧美日韩精品一区二区视频| 国产日韩欧美视频| 亚洲bt欧美bt精品| 国产91av在线| 国产欧美另类| 无码中文字幕精品推荐| 国产夜色视频| 91精品在线视频观看| 亚洲国产91人成在线| 国产精品免费露脸视频| 国产日本一区二区三区| 四虎永久在线| 国产精品成人免费视频99| 香蕉久久国产超碰青草| 97在线观看视频免费| 久久久精品无码一二三区| 日本不卡在线视频| 日韩国产黄色网站| 人人妻人人澡人人爽欧美一区| 久久免费成人| 色婷婷视频在线| 99热精品久久|