亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Linux操作系統(tǒng)在S3C2410上的移植研究

        2021-09-22 07:44:12李殿濤
        電子技術(shù)與軟件工程 2021年13期
        關(guān)鍵詞:源碼編譯器源代碼

        李殿濤

        (濱州醫(yī)學(xué)院附屬醫(yī)院 山東省濱州市 256603)

        1 引言

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

        2 硬件平臺的介紹

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

        3 Linux內(nèi)核源碼的介紹

        3.1 內(nèi)核源碼的架構(gòu)

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

        Linux的內(nèi)核文件的目錄如下:

        /arch 關(guān)于體系架構(gòu)的目錄,在本文中主要就是針對這部分目錄下的文件進行的修改

        / driver 目錄這是主要的驅(qū)動程序的目錄

        /fs 文件系統(tǒng)目錄

        /kernel 等等其他的目錄。

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

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

        4 移植的基本問題

        4.1 移植的概念

        所謂的移植,指的是將某個操作系統(tǒng)的源代碼能夠在另外的體系架構(gòu)的處理器上運行,以便在這個處理器上實現(xiàn)操作系統(tǒng)的功能。

        4.2 Linux操作系統(tǒng)移植所面臨的問題

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

        圖1:Linux內(nèi)核的配置

        圖2:編譯階段圖

        4.3 移植所需要的工具以及內(nèi)核的要求

        4.3.1 編譯器的選擇

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

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

        4.3.2 編譯器的版本

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

        4.3.3 對內(nèi)核的要求

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

        圖3:Linux在S3C2410上的解壓

        圖4:Linux內(nèi)核在S3C2410上的執(zhí)行

        5 移植的過程

        5.1 頂層Makefile的必要的修改

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

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

        5.2 設(shè)置必要的NAND FLASH分區(qū)

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

        我們只要增加如下的結(jié)構(gòu)體變量即可

        上述代碼的作用是建立一個64M的分區(qū)表,其中四個分區(qū)為啟動程序,內(nèi)核,根文件系統(tǒng)還有用戶空間。

        5.3 內(nèi)核的配置

        我們?nèi)羰瓜到y(tǒng)穩(wěn)定并快速的運行,配置是非常關(guān)鍵的,我們之選擇與本系統(tǒng)硬件相關(guān)的進行配置。具體配置圖形如圖1所示。

        5.4 內(nèi)核的編譯及安裝

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

        命令如下:make zImage[4]

        圖2是編譯階段的截圖。

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

        make module_installed.

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

        6 總結(jié)

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

        猜你喜歡
        源碼編譯器源代碼
        人工智能下復(fù)雜軟件源代碼缺陷精準校正
        計算機仿真(2023年8期)2023-09-20 11:23:42
        基于網(wǎng)頁源碼結(jié)構(gòu)理解的自適應(yīng)爬蟲代碼生成方法
        基于圖神經(jīng)網(wǎng)絡(luò)的軟件源碼漏洞檢測方法
        計算機時代(2023年6期)2023-06-15 17:49:09
        基于TXL的源代碼插樁技術(shù)研究
        企業(yè)如何保護源碼
        基于相異編譯器的安全計算機平臺交叉編譯環(huán)境設(shè)計
        軟件源代碼非公知性司法鑒定方法探析
        基于數(shù)據(jù)結(jié)構(gòu)教輔系統(tǒng)的實驗課程改革
        計算機教育(2016年4期)2016-05-20 02:36:05
        揭秘龍湖產(chǎn)品“源代碼”
        通用NC代碼編譯器的設(shè)計與實現(xiàn)
        日本精品无码一区二区三区久久久| 欧美日韩不卡中文字幕在线| 国产美女自拍国语对白| 日韩AV无码乱伦丝袜一区| 国产三级在线看完整版| 在线观看播放免费视频| 国产日产韩国级片网站| 日本黑人乱偷人妻在线播放| 友田真希中文字幕亚洲| 国产成人精品久久亚洲高清不卡| 影音先锋色小姐| 小宝极品内射国产在线| 国产在线无码一区二区三区| 国产亚洲日韩欧美久久一区二区 | 一本大道在线一久道一区二区| 中文字幕亚洲综合久久| 丰满少妇又爽又紧又丰满动态视频| 麻豆成人久久精品二区三区免费| 一二三区亚洲av偷拍| 日本精品无码一区二区三区久久久| 中国一级毛片在线观看| 亚洲av有码精品天堂| 日本女优久久精品观看| 伊人久久精品亚洲午夜| 国产精品区一区二区三在线播放| a级毛片无码久久精品免费| 国产精品成人99一区无码| a观看v视频网站入口免费| 国产福利美女小视频| 国产大屁股白浆一区二区三区| 久久久精品久久久久久96| 男女做爰高清免费视频网站| 国产成人无码免费视频在线 | 熟女俱乐部五十路二区av| 亚洲欧洲日产国产AV无码| 色婷婷一区二区三区四区| 隔壁的日本人妻bd高清中字| 强开少妇嫩苞又嫩又紧九色| 人妻少妇久久中文字幕一区二区| 亚洲视频毛片| 狠狠色欧美亚洲综合色黑a|