国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

Linux的移植與Linux驅(qū)動(dòng)交叉編譯環(huán)境搭建

發(fā)布者:SereneWanderer最新更新時(shí)間:2025-01-15 來源: cnblogs關(guān)鍵字:Linux  移植  驅(qū)動(dòng)  交叉編譯環(huán)境 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

需要工具:

1.Linux內(nèi)核源碼包,可在http://www.kernel.org/pub/linux/kernel/中去下載自己需要的版本,我們這里我們使用的內(nèi)核為 linux-3.0.8.tar。


2.需要掛載的芯片源碼,這里使用三星的S5PV210為例,代碼包為rootfs_fs210.tgz的一個(gè)壓縮包


3.交叉工具鏈,toolchain-4.5.1-farsight.tar.bz2。


1.我們要移植配置Linux-3.0.8系統(tǒng),這里我是直接在用戶目錄下使用Samba直接建立個(gè)共享文件夾的,在Windows中直接把想要需要的文件放在其中,然后在linux中操作文件。正如下圖所示,將.bz2文件放在s5PV210文件下,并解壓為一個(gè)linux-3.0.8的一個(gè)文件。解壓:tar -xvf linux-3.0.8.tar.bz2,等待解壓完成。

2.解壓完成后我們進(jìn)入到linux-3.0.8文件中,找到我們的Makefile文件,sudo vim makefile打開該文件,將我們要掛載的芯片進(jìn)行填寫ARCH ?= arm,CROSS_COMPILE ?= arm-none-linux-gnueabi-,修改完成后,保存退出即可。


3.為了實(shí)現(xiàn)我們能夠掛載s5PV210芯片,我們需要對(duì)系統(tǒng)進(jìn)行配置。執(zhí)行語句 make s5pv210_defconfig 系統(tǒng)會(huì)默認(rèn)給我們配置一些相應(yīng)的設(shè)置。如下圖所示即可。


4.對(duì)linux內(nèi)核的裁剪,選擇我們需要的功能,這樣有利于我們進(jìn)行驅(qū)動(dòng)開發(fā),也減少不必要的麻煩。


在Linux源碼的根目錄下,執(zhí)行make menuconfig配置,界面如下圖所示。

注意:

1.如果提示缺少ncurse 實(shí)行sudo apt-get install libncurses5-dev命令進(jìn)行安裝即可。


2.如果終端必修能夠容下這個(gè)面板,要不然也會(huì)報(bào)錯(cuò)。


接下來就是我們對(duì)linux系統(tǒng)進(jìn)行裁剪了,先說明,按空格鍵進(jìn)行選中,[*]表示選中,上下左右鍵進(jìn)行上下左右操作。

General setup --->
    [*] Configure standard kernel features (expert users) --->

System Type --->
    (0) S3C UART to use for low-level messages //這里面將01改為00,表示使用串口1進(jìn)行信息輸出

Kernel Features --->
    Memory split (3G/1G user/kernel split) --->   //選中常用的4G大小分配,3G的用戶內(nèi)存,1G的系統(tǒng)內(nèi)存。

[*] Networking support --->
Networking options --->
    <*> Packet socket
    <*> Unix domain sockets
    [*] TCP/IP networking
        [*] IP: multicasting
        [*] IP: kernel level autoconfiguration
            [*] IP: BOOTP support

Device Drivers --->
    [*] Network device support --->
        [*] Ethernet (10 or 100Mbit) --->
            <*> DM9000 support

File systems --->
    [*] Network File Systems (NEW) --->
        <*> NFS client support
            [*] NFS client support for NFS version 3
                [*] NFS client support for the NFSv3 ACL protocol extension
        [*] Root file system on NFS

到此我們就將需要的linux剪輯完畢,退出保存即可。

 

5.移植網(wǎng)卡驅(qū)動(dòng)

打開我們的文件 vi arch/arm/mach-s5pv210/mach-smdkv210.c
修改網(wǎng)卡的mac地址:
static struct dm9000_plat_data smdkv210_dm9000_platdata = {
  .flags = DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM,
  .dev_addr = { 0x00, 0x09, 0xc0, 0xff, 0xec, 0x99 }, // 設(shè)置為座位號(hào)碼
};

修改結(jié)構(gòu)體數(shù)組smdkv210_dm9000_resources為:
static struct resource smdkv210_dm9000_resources[] = {
[0] = {
  .start = 0x88000000, //地址端口
  .end = 0x88000000 + 0x3,
  .flags = IORESOURCE_MEM,
},
[1] = {
  .start = 0x88000000 + 0x4, //數(shù)據(jù)端口
  .end = 0x88000000 + 0x4 + 0x3,
  .flags = IORESOURCE_MEM,
},
[2] = {
  .start = IRQ_EINT(10), //中斷號(hào)
  .end = IRQ_EINT(10),
  .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
},
};

修改該函數(shù)

static void __init smdkv210_dm9000_init(void)
{
  /*時(shí)序配置:需要技術(shù)支持*/
  unsigned int tmp;
  gpio_request(S5PV210_MP01(1), 'nCS1');
  s3c_gpio_cfgpin(S5PV210_MP01(1), S3C_GPIO_SFN(2));
  gpio_free(S5PV210_MP01(1));
  tmp = (5 << S5P_SROM_BCX__TACC__SHIFT);
  __raw_writel(tmp, S5P_SROM_BC1);
  tmp = __raw_readl(S5P_SROM_BW);
  tmp &= (S5P_SROM_BW__CS_MASK << S5P_SROM_BW__NCS1__SHIFT);
  tmp |= (1 << S5P_SROM_BW__NCS1__SHIFT);
  __raw_writel(tmp, S5P_SROM_BW);
}

6.編譯內(nèi)核

進(jìn)入linux內(nèi)核的源碼根目錄,執(zhí)行如下命令:make -j2 zImage
farsight@ubuntu:~/s5pv210/linux-3.0.8$ cp -raf arch/arm/boot/zImage /tftpboot/

等待內(nèi)核編譯完成即可。(該編譯有點(diǎn)久)


編譯完成后執(zhí)行 cp -raf arch/arm/boot/zImage /tftpboot/ ,將zImage cp到tftpboot中。

7.接下來是對(duì)我們需要交叉編譯的工具包進(jìn)行配置,該文件我放在系統(tǒng)目錄下的opt文件下如下:

 經(jīng)過解壓之后,得到toolchain-4.5.1-farsight文件,在當(dāng)前目錄下執(zhí)行sudo vi ~/.bashrc語句,對(duì)文件進(jìn)行添加配置信息export PATH=/opt/toolchain-4.5.1-farsight/bin:$PATH ,添加完成后,保存退出即可。

8.從上我們也可知道,我也把需要掛載的文件也放在了/opt目錄下,此時(shí)我們也對(duì)該文件進(jìn)行解壓 sudo tar -xvf rootfs_fs210.tgz ,解壓得到rootfs文件。加壓之后我們就對(duì)NFS進(jìn)行配置。


配置NFS文件系統(tǒng)
/opt$ sudo vi /etc/exports //打開NFS配置文件
/opt/rootfs *(subtree_check,rw,no_root_squash,async)  //將該信息添加到其中即可。
sudo exportfs -a //最后將其掛載

關(guān)鍵字:Linux  移植  驅(qū)動(dòng)  交叉編譯環(huán)境 引用地址:Linux的移植與Linux驅(qū)動(dòng)交叉編譯環(huán)境搭建

上一篇:【Linux-設(shè)備樹】.dtb文件的反匯編
下一篇:DDR 2/3/4 和LPDDR

推薦閱讀最新更新時(shí)間:2025-06-26 21:49

tiny4412學(xué)習(xí)(三)之移植linux-4.x驅(qū)動(dòng)(1)支持網(wǎng)卡驅(qū)動(dòng)
一、思路 上一節(jié)我們通過DNW將內(nèi)核、文件系統(tǒng)、設(shè)備樹文件燒入到內(nèi)存中,并使用bootm啟動(dòng)內(nèi)核:bootm0x40600000 0x41000000 0x42000000。因?yàn)榇藭r(shí)內(nèi)核并沒有SD卡驅(qū)動(dòng),和EMMC驅(qū)動(dòng),我們只能直接將系統(tǒng)拷貝至內(nèi)存中然后啟動(dòng)。當(dāng)時(shí)我們進(jìn)入文件系統(tǒng)后,并無法掛載外面的網(wǎng)絡(luò)文件系統(tǒng),對(duì)開發(fā)帶來很多不便,所以這一節(jié),我們移植網(wǎng)卡,讓系統(tǒng)啟動(dòng)后可以掛接虛擬機(jī)中的網(wǎng)絡(luò)文件系統(tǒng),或者直接掛載虛擬機(jī)中的網(wǎng)絡(luò)文件系統(tǒng)。 實(shí)驗(yàn)參考摩斯電碼的博客:http://www.cnblogs.com/pengdonglin137/p/5153794.html tiny4412網(wǎng)卡跟DM9000差別很大,DM9000是
[單片機(jī)]
tiny4412學(xué)習(xí)(三)之<font color='red'>移植</font><font color='red'>linux</font>-4.x<font color='red'>驅(qū)動(dòng)</font>(1)支持網(wǎng)卡<font color='red'>驅(qū)動(dòng)</font>
STM32開發(fā)筆記32:STM32F4定時(shí)器驅(qū)動(dòng)程序的移植
單片機(jī)型號(hào):STM32F401 本文講述移植STM32CubeMX生成的驅(qū)動(dòng)程序到自己的項(xiàng)目中,以定時(shí)器為例。為什么要寫這篇文章呢?是因?yàn)槎〞r(shí)器移植這件事情耗費(fèi)了我整整2天的時(shí)間,只因?yàn)橐粋€(gè)特殊的地方?jīng)]有注意到。把整個(gè)移植過程用文字記錄下來,以利于自身其它程序的移植,并對(duì)本文的讀者提供一些技術(shù)上的參考。 1、如果僅完成計(jì)時(shí)功能,在STM32CubeMX中設(shè)置比較簡(jiǎn)單,如下圖所示,只需指定其時(shí)鐘源即可。 2、對(duì)時(shí)鐘進(jìn)行進(jìn)一步設(shè)置,這個(gè)在先前的日志中已經(jīng)描述過,將分頻系數(shù)與MCU的主頻系數(shù)設(shè)置成一致,例如我現(xiàn)在MCU的主頻是72M,則進(jìn)行72分頻即可,這樣單位計(jì)數(shù)周期是1us,按照下圖所示,我在Count
[單片機(jī)]
STM32開發(fā)筆記32:STM32F4定時(shí)器<font color='red'>驅(qū)動(dòng)</font>程序的<font color='red'>移植</font>
ARMLinux驅(qū)動(dòng)移植Watch Dog Timer(看門狗)驅(qū)動(dòng)移植
硬件平臺(tái):FL2440 (S3C2440) 內(nèi)核版本:2.6.28 軟件平臺(tái):Ubuntu 11.04 內(nèi)核版本:2.6.39 交叉編譯器:arm-linux-gcc 3.4.1 原創(chuàng)作品,轉(zhuǎn)載請(qǐng)標(biāo)明出處 1、加載看門狗驅(qū)動(dòng) insmod wdt.ko wdt.ko為驅(qū)動(dòng)文件名,不加任何參數(shù)如果不喂狗,則計(jì)數(shù)器到0時(shí)執(zhí)行中斷函數(shù)(設(shè)置LED的狀態(tài),然后喂狗,重新設(shè)置WTCNT的值) 可選的參數(shù) module_param(tmr_margin, int, 0); module_param(tmr_atboot, int, 0); module_param(nowayout, int, 0); module_para
[單片機(jī)]
ARMLinux<font color='red'>驅(qū)動(dòng)</font><font color='red'>移植</font>Watch Dog Timer(看門狗)<font color='red'>驅(qū)動(dòng)</font><font color='red'>移植</font>
Linux設(shè)備驅(qū)動(dòng)開發(fā) - 平臺(tái)設(shè)備驅(qū)動(dòng)
Linux2.6的內(nèi)核中引入了一種新的設(shè)備驅(qū)動(dòng)模型-平臺(tái)(platform)設(shè)備驅(qū)動(dòng),平臺(tái)設(shè)備驅(qū)動(dòng)分為平臺(tái)設(shè)備(platform_device)和平臺(tái)驅(qū)動(dòng)(platform_driver),平臺(tái)設(shè)備的引入使得Linux設(shè)備驅(qū)動(dòng)更加便于移植。 一、平臺(tái)設(shè)備 平臺(tái)設(shè)備結(jié)構(gòu)體: 1 struct platform_device { 2 const char * name; /* 設(shè)備名 */ 3 int id; 4 struct device dev; /* 設(shè)備結(jié)構(gòu)體 */ 5 u32 num_resources; /* 設(shè)備資源
[單片機(jī)]
ok6410的mplayer移植
安裝包:MPlayer-1.0rc2.tar.bz2 交叉編譯器:arm-linux-gcc-4.5.1 解壓MPlayer-1.0rc2.tar.bz2 : tar –xjvf MPlayer-1.0rc2.tar.bz2 進(jìn)入解壓文件 MPlayer-1.0rc2 進(jìn)行configure 配置 ./configure --host-cc=gcc --cc=arm-linux-gcc --target=arm-linux --enable-static--disable-win32dll --disable-dvdread--disable-dvdread-internal--disable-dvdnav --disable
[單片機(jī)]
u-boot2010.03 移植篇(一) 建立編譯目標(biāo)
移植篇(一)-----修改Makefile,生成編譯目標(biāo)---S3C6410 ---------------------------------------------------------- 使用環(huán)境 PC: Centos5.4 kernel: 3.0.1 corss: arm-linux-gcc 4.4.1 arm: s3c6410 uboot: uboot-2010-03 ---------------------------------------------------------- 開始教程之前.你需要下載源碼,解壓....此處略過千萬行~~源碼為uboot2010.03這個(gè)..別整錯(cuò)了.錯(cuò)了
[單片機(jī)]
u-boot-2014.10移植(3)識(shí)別NOR Flash
主要是將我們使用的nor flash 型號(hào)添加到j(luò)edec_table中 File : drivers/mtd/jedec_flash.c jz2440 :MX29LV160DB 2M id= 0x2249, MX29LV160B 宏需要自己添加 #define MX29LV160B 0x2249 mini2440 :SST29LV1601 (AM29LV160DB) 35sectors id = 0x2249 // for jz2440 { .mfr_id = MT_MANUFACT, .dev_id = MX29LV160B,
[單片機(jī)]
基于S3C2410處理器對(duì)Windows CE 5.0操作系統(tǒng)實(shí)現(xiàn)BSP移植
1、引言 在當(dāng)今后PC時(shí)代,嵌入式系統(tǒng)應(yīng)用得越來越廣泛,嵌入式產(chǎn)品充斥著許多領(lǐng)域,日常生活的手機(jī),MP4,PDA等都屬于典型的嵌入式系統(tǒng)。在嵌入式系統(tǒng)中,微處理器和操作系統(tǒng)是進(jìn)行應(yīng)用開發(fā)的基礎(chǔ)。在微處理器方面,S3C2410是Samsung公司推出的一款基于ARM920T內(nèi)核的16/32位 RISC嵌入式CPU,主要面向手持設(shè)備以及高性價(jià)比、低功耗的應(yīng)用。在操作系統(tǒng)方面,Windows CE 5.0是由微軟提供的一款嵌入式操作系統(tǒng),在Windows CE 4.2基礎(chǔ)上,它又加入了一些新特性以滿足市場(chǎng)需求。板級(jí)支持包 (Board Support Package,BSP)是操作系統(tǒng)的一個(gè)組成部分,提供對(duì)硬件的支持。BSP的開發(fā)在整個(gè)
[單片機(jī)]
基于S3C2410處理器對(duì)Windows CE 5.0操作系統(tǒng)實(shí)現(xiàn)BSP<font color='red'>移植</font>
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

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

 
汽車開發(fā)圈

 
機(jī)器人開發(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