移植Linux-3.4.2内核到S3C2440

发布者:HeavenlyWonder最新更新时间:2024-06-17 关键字:移植  2内核  S3C2440 手机看文章 扫描二维码
随时随地手机看文章

    init_post();
    return 0;
}

kernel_init先调用了prepare_namespace();然后调用了init_post函数

在prepare_namespace()函数里 调用mount_root()函数,挂载根文件系统;

三、移植linux3.4.2到JZ2440

1、解压tar xjf linux-3.4.2.tar.bz2

2、进入解压后的文件目录,修改顶层Makefile


vim Makefile

修改架构为 ARM 以及编译器

     ARCH=arm
     CROSS_COMPILE=arm-linux-

3、选择默认配置

find -name'*defconfig'

4、在解压后文件目录下,配置,生成.config文件

make s3c2410_defconfig

5、查看支持的单板

vim .config

6、编译

make uImage

7、u-boot2012里默认的是193机器ID,设置机器ID为362使用SMDK2440,在uboot中设置机器ID

set machid 16a
save

8、在uboot中设置启动行参数并修改smdk2440单板的晶振信息12M

bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.112:/opt/filesystem ip=192.168.1.130:192.168.1.112:192.168.1.1:255,255,255,0::eth0:off init=/linuxrc console=ttySAC0,115200

修改文件mach-smdk2440.c的晶振信息12M

static void __init smdk2440_map_io(void)
{
    s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));
    s3c24xx_init_clocks(12000000);
    s3c24xx_init_uarts(smdk2440_uartcfgs, ARRAY_SIZE(smdk2440_uartcfgs));
}

四、修改分区

我们经常用的内核打印分区信息如下


Creating 4 MTD partitions on 'NAND':
0x000000000000-0x000000040000 : 'bootloader'
0x000000040000-0x000000060000 : 'params'
0x000000060000-0x000000460000 : 'kernel'
0x000000460000-0x000010000000 : 'rootfs'

这些分区是通过在文件linux-2.6.22.6archarmplat-s3c24xx/Common-smdk.c设置的

/* NAND parititon from 2.4.18-swl5 */

static struct mtd_partition smdk_default_nand_part[] = {
    [0] = {
        .name    = 'bootloader',
        .size    = SZ_256K,
        .offset    = 0,
    },
    [1] = {
        .name    = 'params',
        .offset = MTDPART_OFS_APPEND,
        .size    = SZ_128K,
    },
    [2] = {
        .name    = 'kernel',
        .offset = MTDPART_OFS_APPEND,
        .size    = SZ_4M,
    },
    [3] = {
        .name    = 'rootfs',
        .offset    = MTDPART_OFS_APPEND,
        .size    = MTDPART_SIZ_FULL,
    },
};

 

五、添加网卡驱动

修改arch/arm/mach-s3c24xx/mach-smdk2440.c

    1 添加头文件#include

    2 网卡基地址


#define MACH_SMDK2440_DM9K_BASE (S3C2410_CS4 + 0x300)

 3 添加资源和设备

/* DM9000AEP 10/100 ethernet controller */

static struct resource smdk2440_dm9k_resource[] = {
    [0] = {
        .start = MACH_SMDK2440_DM9K_BASE,
        .end  = MACH_SMDK2440_DM9K_BASE + 3,
        .flags = IORESOURCE_MEM
    },
    [1] = {
        .start = MACH_SMDK2440_DM9K_BASE + 4,
        .end  = MACH_SMDK2440_DM9K_BASE + 7,
        .flags = IORESOURCE_MEM
    },
    [2] = {
        .start = IRQ_EINT7,
        .end  = IRQ_EINT7,
        .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
    }
};


/*
 * The DM9000 has no eeprom, and it's MAC address is set by
 * the bootloader before starting the kernel.
 */
static struct dm9000_plat_data smdk2440_dm9k_pdata = {
    .flags        = (DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM),
};

static struct platform_device smdk2440_device_eth = {
    .name        = 'dm9000',
    .id        = -1,
    .num_resources    = ARRAY_SIZE(smdk2440_dm9k_resource),
    .resource    = smdk2440_dm9k_resource,
    .dev        = {
        .platform_data    = &smdk2440_dm9k_pdata,
    },
};


static struct platform_device *smdk2440_devices[] __initdata = {
    &s3c_device_ohci,
    &s3c_device_lcd,
    &s3c_device_wdt,
    &s3c_device_i2c0,
    &s3c_device_iis,
    &smdk2440_device_eth,
};

综上,make uImage 完成Linux3.4.2的移植,并添加了网卡驱动。


[1] [2]
关键字:移植  2内核  S3C2440 引用地址:移植Linux-3.4.2内核到S3C2440

上一篇:移植u-boot-2010.12.tar.bz2版本到s3c2440过程
下一篇:移植u-boot-2012.04.01到JZ2440

推荐阅读最新更新时间:2024-11-13 23:23

arm-linux-gcc4.4.3编译s3c2410平台linux内核
一、首先下载linux内核: linux-2.6.14.tar.bz2 下载地址: http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.bz2 二、解压linux-2.6.14.tar.bz2: tar -jxvf linux-2.6.14.tar.bz2 三、配置Makefile文件: 1、打开源码根目录下的Makefile文件: gedit Makefile 修改Makefile文件: ARCH ?= arm CROSS_COMPILE ?= arm-linux- 2、查看目录结构: ls -l linux-2.6.14/arch/arm/ d
[单片机]
搭载骁龙W5可穿戴平台,OPPO Watch 4 Pro持续引领全智能可穿戴旗舰
8月29日,OPPO Watch系列新品OPPO Watch 4 Pro正式发布。全新OPPO Watch 4 Pro搭载骁龙W5可穿戴平台,凭借全面领先的软硬件实力表现,打造极致使用体验,并持续引领全智能可穿戴旗舰。 OPPO Watch 4 Pro出众的智能体验背后是强大的底层平台支持。骁龙W5可穿戴平台采用业界领先的4纳米制程工艺,集成四核Cortex-A53 CPU,频率达到1.7GHz,配合Adreno 702 GPU以及升级的内存、摄像头和音频/视频模块,与前代可穿戴平台相比,性能提升2倍,特性增加2倍,实现丰富的沉浸式交互用例和极致流畅的操作体验。OPPO Watch 4 Pro在强大硬件性能加持下,支持多
[物联网]
搭载骁龙W5可穿戴平台,OPPO Watch <font color='red'>4</font> Pro持续引领全智能可穿戴旗舰
S3C2440触摸屏控制总结
触摸屏控制原理,其实与ADC读取一个滑动变阻器中间触点电压的原理一样。只不过,读取触摸屏的X、Y方向上的电压需要两次,而且需要设置其工作模式以实现一个ADC读取两个通道的电压。 S3C2440的ADC控制是很简单的,与普通单片机控制ADC的方法没有多大区别。大概的操作步骤都是如下所示。 (1)设置控制寄存器ADCCON (2)启动ADC转换 (3)等待转换结束 (4)读取转换结果 但是,S3C2440的触摸屏控制有什么工作模式,如等待中断模式,分离的x/y轴坐标转换模式,自动(连续)x/y轴坐标转换模式,普通转换模式。通过官方芯片资料理解这些模式,似乎还是一头雾水。经过测试,我对这些模式有了初步的认识。 (一) ADC&TC模式分
[单片机]
STM32基础知识2-分享PWM输入模式捕捉4路PWM波形的周期和占空比
前几天分享过一个帖子,因为网速原因没有上传源码,看到有人回复我说实验不成功,那么好吧!这是我的错误,这次就将源码和我的心得体会分享出来,供大家下载测试和成长。我其实也是菜鸟一个,如果讲解的地方有啥不对,或是程序设计的不好,欢迎大家提出意见,让我们一起来学习进步。 PWM输入是输入捕获的一个特殊应用,输入捕获就是当连接到定时器的引脚上产生电平变化时对应的捕获装置会立即将当前计数值复制到另一个寄存器中。你可以开启捕获中断然后在中断处理函数中读出保存的计数值。 与输入捕获不同的是PWM输入模式会将同一个输入信号(TI1或TI2)连接到两个捕获装置(IC1和IC2)。这两个捕获装置一个捕获上升沿一个捕获下降沿。TI1FP1、TI2
[单片机]
STM32基础知识<font color='red'>2</font>-分享PWM输入模式捕捉<font color='red'>4</font>路PWM波形的周期和占空比
飞思卡尔小基站解决方案满足4G时代移动互联需求
小基站势如破竹 最近,中国三大移动运营商铺天盖地的4G广告让人感觉到4G时代真的来临,而且来的比3G更猛烈些。随着4G的普及,4G网络中传播的数据量是不可估量的,基站作为数据传输的中转站,其规模、形式、性能也需要进一步革新。大型基站固然重要,如目前最普遍的宏基站以及大为热门的云RAN,而现在的手机基站网络越来越复杂,基站形态越来越多,3G和4G的发展催生了大量对小型基站的需求,它们在帮助移动运营商应对日益复杂的网络容量挑战方面发挥着关键作用。小型化的基站主要有城域基站、微微蜂窝基站(Picocell)以及更小一点的毫微微蜂窝基站(Femtocell,又称飞蜂窝基站或家庭基站,相当于在一个公司里面用Wi-Fi)。 小基站
[网络通信]
飞思卡尔小基站解决方案满足<font color='red'>4</font>G时代移动互联需求
卢伟冰:价格一样你选择8GB LPDDR5还是12GB LPDDR4X
IT之家3月15日消息 今年2月份发布的小米10手机全系搭载了骁龙865处理器+LPDDR5,小米曾号称是骁龙865+ LPDDR5内存+UFS 3.0存储是旗舰机绝配。3月份,小米的独立品牌Redmi将发布Redmi K30 Pro了。看起来Redmi也开始预热Redmi K30 Pro了。   3月14日晚间,小米中国区总裁、Redmi品牌总经理卢伟冰在微博发问,假设价格一样,你会选择8GB LPDDR5还是选择 12GB LPDDR4X?这里当然是指内存了。   根据爆料消息,Redmi K30 Pro可能还会有变焦版,内存配置可能会有变化。你认为8GB LPDDR5、12GB LPDDR4X哪个好一些?  
[手机便携]
卢伟冰:价格一样你选择8GB LPDDR5还是12GB LPDDR<font color='red'>4</font>X
夏普业绩拼V字型恢复!将4年来首度转盈、纯益超预期
夏普(Sharp)26日于日股盘后公布中期(2017-2019年度)营运计划,表示业绩将实现V字型回复(2016年度业绩为V字底部),其中因中小尺寸面板、液晶电视销售增加,加上将持续实施结构改革措施,故2017年度(2017年4月-2018年3月)合并营收预估将年增22.4%至2.51兆日圆;显示本业获利状况的合并营益将大增44.1%至900亿日圆;显示最终获利状况的合并纯益预估为590亿日圆(2016年度为净损248亿日圆),将为4年来首度转亏为盈、且金额远优于金融情报服务公司QUICK事前所作调查382亿日圆的预估值。 夏普并指出,将创造8K面板需求、早期推出OLED/FFD等新面板、并将扩大海外TV事业、强化8K生态系统
[手机便携]
移植u-boot-2010.03问题 --- 网卡DM9000
1,找到u-boot-2010.03/include/configs/smdk6410.h //#define CONFIG_NET_MULTI //#define CONFIG_CS8900 /*we have aCS8900on-board*/ //#define CONFIG_CS8900_BASE 0x18800300 //#define CONFIG_CS8900_BUS16 /*follow the Linux driver*/ /**然后添加DM9000网卡的宏定义---ip以及子网掩码等根据自己的需要修改***/ #defineCONFIG_NET_MULTI 1 #defineCONFIG_DM900
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多往期活动
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved