日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

今天是:2025年07月26日(星期六)

2021年07月26日 | 基于TQ2440的linux-2.6.30.4內(nèi)核移植

發(fā)布者:RadiantGlow 來(lái)源: eefocus關(guān)鍵字:TQ2440  linux-2  6  內(nèi)核移植 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

移植環(huán)境

CPU:S3C2440

交叉編譯器:arm-linux-gcc-4.3.3

虛擬機(jī)系統(tǒng):Ubuntu12.04

參考資料:《天嵌科技linux移植手冊(cè)》


移植步驟

1、獲取內(nèi)核源碼

網(wǎng)址:http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/

找到linux-2.6.30.4壓縮包下載即可,然后拷貝到虛擬機(jī)中解壓


2、在系統(tǒng)中添加對(duì)ARM的支持

進(jìn)入內(nèi)核源碼根目錄 Makefile中,修改

ARCH = arm

CROSS_COMPILE = arm-linux-


3、修改平臺(tái)輸入時(shí)鐘

修改內(nèi)核源碼

arch/arm/mach-s3c2440/mach-smdk2440.c” 文件的大概162行或163行,把16.9344MHz改為12MHz

然后make menuconfig ,進(jìn)入默認(rèn)菜單保存一下


4、嘗試編譯內(nèi)核,給內(nèi)核打補(bǔ)丁

make uImage,出現(xiàn)某某未定義,其實(shí)是內(nèi)核需要打補(bǔ)丁

可以參考以下文章 https://blog.csdn.net/pillarpeng/article/details/38282193

打完補(bǔ)丁后,編譯生成uImage,下載到開(kāi)發(fā)板,現(xiàn)象如下

在這里插入圖片描述

5、制作自己的配置清單

先調(diào)用自帶的一個(gè)默認(rèn)配置單,該配置單在內(nèi)核源碼的arch/arm/configs/目錄下面,名為:s3c2410_defconfig,該配置文件里面選擇了幾乎所有的和 S3C24XX 系列 CPU 相關(guān)的配置選項(xiàng),在該配置單的基礎(chǔ)上進(jìn)行配置。


載入這個(gè)配置單,選擇和S3C2440相關(guān)的設(shè)置項(xiàng)。


選擇支持EABI


6、修改機(jī)器碼,編譯鏡像

機(jī)器碼保存在內(nèi)核源碼的“arch/arm/tools/mach-types”文件中,在大概 379 行,把原來(lái)的 362 改為 168 保存即可。這個(gè)機(jī)器碼是和U-boot相匹配的。

編譯uImage成功如下所示:

在這里插入圖片描述

下載uImage到開(kāi)發(fā)板中:

在這里插入圖片描述

7、Nandflash驅(qū)動(dòng)移植

到這里僅僅是可以引導(dǎo)了,還需要配置Nandflash。

修改內(nèi)核源碼“arch/arm/plat-s3c24xx/common-smdk.c”文件,在 109 行左右,有一個(gè)結(jié)構(gòu)體名為:

smdk_default_nand_part[],將其修改為如下列表所示:

static struct mtd_partition smdk_default_nand_part[] = {

[0] = {

.name = “l(fā)e2440_Board_uboot”,

.offset = 0x00000000,

.size = 0x00040000,

},

[1] = {

.name = “l(fā)e2440_Board_kernel”,

.offset = 0x00200000,

.size = 0x00300000,

},

[2] = {

.name = “l(fā)e2440_Board_yaffs2”,

.offset = 0x00500000,

.size = MTDPART_SIZ_FULL

}

};


然后修改“drivers/mtd/nand/s3c2410.c”文件的 752 行

將原來(lái)的內(nèi)容改為如下所示

chip->ecc.mode = NAND_ECC_NONE;

在內(nèi)核配置單中添加上對(duì)Nandflash的支持

Device Drivers —>

<> NAND Device Support -->

<> NAND Flash support for S3C2410/S3C2440 SoC

然后編譯出鏡像,燒到開(kāi)發(fā)版中,現(xiàn)象如下所示:

在這里插入圖片描述

8、網(wǎng)卡驅(qū)動(dòng)移植

因?yàn)槲掖蛩闶褂肗FS網(wǎng)絡(luò)文件系統(tǒng)來(lái)掛載根文件系統(tǒng),所以只需要配置一下網(wǎng)卡和NFS即可。


修改 Linux-2.6.30.4 內(nèi)核源碼的“arch/arm/mach-s3c2440/mach-smdk2440.c”文件,添加頭文件如下:

#include

在 154 行添加如下內(nèi)容所示:

/* DM9000 */

static struct resource s3c_dm9k_resource[] = {

[0] = {

.start= S3C2410_CS4,

.end = S3C2410_CS4 + 3,

.flags = IORESOURCE_MEM,

},

[1] = {

.start= S3C2410_CS4 + 4,

.end = S3C2410_CS4 + 4 + 3,

.flags = IORESOURCE_MEM,

},

[2] = {

.start= IRQ_EINT7,

.end = IRQ_EINT7,

.flags = IORESOURCE_IRQ | IRQF_TRIGGER_RISING,

}

};

static struct dm9000_plat_data s3c_dm9k_platdata = {

.flags = DM9000_PLATF_16BITONLY,

};

struct platform_device s3c_device_dm9000 = {

.name = “dm9000”,

.id = 0,

.num_resources = ARRAY_SIZE(s3c_dm9k_resource),

.resource = s3c_dm9k_resource,

.dev = {

.platform_data = &s3c_dm9k_platdata,

}

};

在 194 行添加如下內(nèi)容所示:

static struct platform_device *smdk2440_devices[] __initdata = {

&s3c_device_usb,

&s3c_device_lcd,

&s3c_device_wdt,

&s3c_device_i2c0,

&s3c_device_iis,

&s3c_device_dm9000, //添加的

};

在 Linux-2.6.30.4 中“drivers/net/dm9000.c”文件中修改如下:

在 41 行添加的頭文件內(nèi)容如下:

#if defined(CONFIG_ARCH_S3C2410)

#include

#endif

在 1194 行添加內(nèi)容如下所示:

#if defined(CONFIG_ARCH_S3C2410)

unsigned int oldval_bwscon = *(volatile unsigned int *)S3C2410_BWSCON;

unsigned int oldval_bankcon4 = *(volatile unsigned int *)S3C2410_BANKCON4;

#endif

在 1209 行添加如下內(nèi)容:

#if defined(CONFIG_ARCH_S3C2410)

*((volatile unsigned int *)S3C2410_BWSCON) = (oldval_bwscon & ~(3<<16)) |

S3C2410_BWSCON_DW4_16 | S3C2410_BWSCON_WS4 | S3C2410_BWSCON_ST4;

*((volatile unsigned int )S3C2410_BANKCON4) = 0x1f7c;

#endif

修改 1278 行開(kāi)始的內(nèi)容如下所示:(紅色部分為修改內(nèi)容,主要是添加 mac 值)

#if defined(CONFIG_ARCH_S3C2410)

printk(“Now use the default MAC address: 10:23:45:67:89:abn”);

mac_src = “EmbedSky”;

ndev->dev_addr[0] = 0x10;

ndev->dev_addr[1] = 0x23;

ndev->dev_addr[2] = 0x45;

ndev->dev_addr[3] = 0x67;

ndev->dev_addr[4] = 0x89;

ndev->dev_addr[5] = 0xab;

#else

mac_src = “eeprom”;

/ try reading the node address from the attached EEPROM /

for (i = 0; i < 6; i += 2)

dm9000_read_eeprom(db, i / 2, ndev->dev_addr+i);

if (!is_valid_ether_addr(ndev->dev_addr) && pdata != NULL) {

mac_src = “platform data”;

memcpy(ndev->dev_addr, pdata->dev_addr, 6);

}

if (!is_valid_ether_addr(ndev->dev_addr)) {

/ try reading from mac */

mac_src = “chip”;

for (i = 0; i < 6; i++)

ndev->dev_addr[i] = ior(db, i+DM9000_PAR);

}

if (!is_valid_ether_addr(ndev->dev_addr))

dev_warn(db->dev, "%s: Invalid ethernet MAC address. Please "

“set using ifconfign”, ndev->name);

#endif


在 1423 行添加如下內(nèi)容:

#if defined(CONFIG_ARCH_S3C2410)

*(volatile unsigned int *)S3C2410_BWSCON = oldval_bwscon;

*(volatile unsigned int *)S3C2410_BANKCON4 = oldval_bankcon4;

#endif


修改完以上的內(nèi)容之后,輸入:#make menuconfig,進(jìn)入配置單,然后添加上對(duì) DM9000 網(wǎng)卡和NFS的配置,之前載入的s3c2410_defconfig的配置單已經(jīng)做好了這些配置,此處不再展示。


最后make uImage編譯成鏡像文件下載到開(kāi)發(fā)板如下:

在這里插入圖片描述

至此,linux-2.6.30.4內(nèi)核基本移植完成,剩下的根文件系統(tǒng)構(gòu)建和常用驅(qū)動(dòng)移植下次在寫(xiě)。

關(guān)鍵字:TQ2440  linux-2  6  內(nèi)核移植 引用地址:基于TQ2440的linux-2.6.30.4內(nèi)核移植

上一篇:移植Linux-2.6.30.4內(nèi)核之根文件系統(tǒng)構(gòu)建
下一篇:嵌入式系統(tǒng)啟動(dòng)流程(學(xué)習(xí)筆記)

推薦閱讀

人機(jī)混合體或?qū)?lái)臨,因?yàn)槿毡究茖W(xué)家已成功地將肌肉與機(jī)器人骨骼融合。 以前的這種嘗試都曇花一現(xiàn)且往往以失敗告終。報(bào)道稱(chēng),新的研究采用了不同的方法,從零開(kāi)始培育肌肉、而不是摘取在動(dòng)物體內(nèi)長(zhǎng)出的肌肉。 這一發(fā)現(xiàn)可能會(huì)為制造類(lèi)似超人的生化人鋪平道路,但科學(xué)家表示,大規(guī)模應(yīng)用至少要再過(guò)十年。 報(bào)道稱(chēng),這個(gè)交叉項(xiàng)目是生物機(jī)器人領(lǐng)域的一個(gè)突...
如今物聯(lián)網(wǎng)設(shè)備深度滲透入社會(huì),無(wú)處不在。然而,電網(wǎng)的電力供應(yīng)并不是無(wú)處不在,很多物聯(lián)網(wǎng)設(shè)備不得不依賴(lài)電池供電。這帶來(lái)一個(gè)無(wú)法解決的問(wèn)題:電池總有沒(méi)電的時(shí)候,沒(méi)電了設(shè)備就不能工作了。例如家里的智能門(mén)鎖,雖然平時(shí)方便好用,但是沒(méi)電的時(shí)候開(kāi)不了鎖就很讓人頭痛。如果有一種不用電池也不用插電就能工作的物聯(lián)網(wǎng)技術(shù),是不是很厲害? 您一定以為...
在工業(yè)生產(chǎn)過(guò)程中,單一或設(shè)備的故障可能會(huì)引起非常嚴(yán)重的后果,如2010年的“震網(wǎng)”病毒。根據(jù)目前智能工廠的發(fā)展方向和安全態(tài)勢(shì),攻擊者可能觸發(fā)的攻擊將會(huì)對(duì)企業(yè)、社會(huì)乃至一個(gè)國(guó)家造成巨大的損失。工業(yè)機(jī)器人作為智能工廠的核心組成部分之一,其存在軟件和協(xié)議的缺陷漏洞已經(jīng)廣為人知,但是到目前為止還沒(méi)有深入的研究,以證明機(jī)器人究竟在多大程度上...
首先先發(fā)一個(gè)自己封裝的MC9S12XEP100的SCI模塊(也就是UART模塊)的驅(qū)動(dòng)。這些代碼參考了 Li Yuan http://blog.csdn.net/liyuanbhu/article/details/7764851 的代碼,整個(gè)代碼風(fēng)格是按照uCOS-II操作系統(tǒng)源碼的風(fēng)格來(lái)寫(xiě)的,在此表示感謝。目前還不是特別完整完善,但基本使用是沒(méi)有問(wèn)題了。在上一章中已經(jīng)發(fā)了硬件驅(qū)動(dòng)部分,這里發(fā)下基于uCOS-II嵌入式操...

史海拾趣

問(wèn)答坊 | AI 解惑

中國(guó)的rfid頻段規(guī)定

中國(guó)的RFID的頻段范圍規(guī)定已經(jīng)有了臨時(shí)的頻段了: 見(jiàn)附件…

查看全部問(wèn)答∨

各類(lèi)開(kāi)發(fā)實(shí)用電路圖

各類(lèi)開(kāi)發(fā)實(shí)用電路圖…

查看全部問(wèn)答∨

示波器應(yīng)用基礎(chǔ)知識(shí)

示波器應(yīng)用基礎(chǔ)知識(shí)…

查看全部問(wèn)答∨

秒表計(jì)程序

請(qǐng)問(wèn)存儲(chǔ)的數(shù)據(jù)怎樣讓它循環(huán)調(diào)出呢?…

查看全部問(wèn)答∨

【藏書(shū)閣】模-數(shù)與數(shù)-模轉(zhuǎn)換技術(shù)基礎(chǔ)

目錄: 第一章 概論 第二章 采樣和量化 第三章 模擬開(kāi)關(guān)和多路切換器 第四章 放大器、采樣/保持器和比較器 第五章 數(shù)-模轉(zhuǎn)換器 第六章 模-數(shù)轉(zhuǎn)換器 第七章 數(shù)據(jù)采集系統(tǒng)與數(shù)據(jù)分配系統(tǒng) 第八章 轉(zhuǎn)角/直線位移-數(shù)字轉(zhuǎn)換器 第九章 噪聲干擾 ...…

查看全部問(wèn)答∨

絕好機(jī)會(huì)!! 推薦進(jìn)華為

西安華為研究所開(kāi)始了新一輪招聘,     專(zhuān)業(yè):計(jì)算機(jī),通信,電子,物理等工科專(zhuān)業(yè)(這次專(zhuān)業(yè)要求不很?chē)?yán))     工作經(jīng)驗(yàn):至少工作一年            如有意者:請(qǐng)將自己的建立發(fā)到郵箱& ...…

查看全部問(wèn)答∨

基礎(chǔ)問(wèn)題/串口通信

請(qǐng)問(wèn),串口通信接收到的數(shù)據(jù)是怎么樣的呢?我的是9600,8.0.1. 我的理解是:接收的應(yīng)該是:0-256的字符。但是我接收的到的數(shù)據(jù)竟然大小有;超過(guò)256的。 標(biāo)準(zhǔn)的應(yīng)該是:  01 04 04 01 08 02 15 BB 15 但是我收到的是:1025 250 460 78 ...…

查看全部問(wèn)答∨

AD 芯片進(jìn)行高速采集時(shí) 數(shù)據(jù)采集程序該怎么編寫(xiě)

我編了個(gè)數(shù)據(jù)采集程序 我是將數(shù)據(jù)直接存到一個(gè)TXT文本中的。 但是在40KHZ采集時(shí) 點(diǎn)數(shù)不對(duì)。 請(qǐng)教高手該如何實(shí)現(xiàn)高速數(shù)據(jù)采集…

查看全部問(wèn)答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車(chē)開(kāi)發(fā)圈

 
機(jī)器人開(kāi)發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved