基于S3C2440的Linux内核移植和yaffs2文件系统制作--Linux源码参数

发布者:塞上老马最新更新时间:2019-03-07 来源: eefocus关键字:S3C2440  Linux内  核移植  源码参数 手机看文章 扫描二维码
随时随地手机看文章

1.3.2 修改Linux源码中参数

1、解压内核源码

mkdir /opt/studyarm

cd /mnt/hgfs/share

tar –jxvf linux-2.6.29.1.tar.bz2 –C /opt/studyarm


2、 进入内核目录,修改makefile,并对内核进行默认配置进行修改

       193行,修改

       ARCH                        ?=arm

       CROSS_COMPILE   ?=arm-linux-


3、 修改平台输入时钟

        找到内核源码arch/arm/mach-s3c2440/mach-smdk2440.c文件,在函数 static void __init smdk2440_map_io(void)中,修改成s3c24xx_init_clocks(12000000)。


4、 修改machine名称(可以不改)

修改文件arch/arm/mach-s3c2440/mach-smdk2440.c,在文件中找到MACHINE_START( ),修改为MACHINE_START(S3C2440, “Study-S3C2440”)。


5、 修改Nand flash分区信息

修改文件kernel.git/arch/arm/plat-s3c24xx/common-smdk.c。


第一,修改分区信息:

static struct mtd_partition smdk_default_nand_part[] = {

       [0] = {

       .name = "bootloader",

       .offset = 0x00000000,

       .size = 0x00030000,

       },

       [1] = {

       .name = "kernel",

       .offset = 0x00050000,

       .size = 0x00200000,

       },

       [2] = {

       .name = "root",

       .offset = 0x00250000,

       .size = 0x03dac000,

       }

};


第二,再修改s3c2410_platform_nand_smdk_nand_info smdk_nand_info = {


 

.tacls = 0,

.twrph0 = 30,

.twrph1=0,

};


6、 修改LCD背光

修改文件/arch/arm/mach-s3c2440/mach-smdk2440.c,因为友善的3.5寸液晶的背光控制是由S3C2440的GPG4引脚来控制的,故下面的改动将开启背光。

static void __init smdk2440_machine_init(void)

{

       s3c24xx_fb_set_platdata(&smdk2440_fb_info);

       platform_add_devices();

       s3c2410_gpio_cfgpin(S3C2410_GPG4,S3C2410_GPG4_OUTP);

       s3c2410_gpio_setpin(S3C2410_GPG4,1);                                     smdk_machine_init();

}


6、 LCD参数修改

        这里用的是NEC3.5英寸屏液晶屏,大小为320x240,需要修改修改文件arch/arm/mach-s3c2440/mach-smdk2440.c。

static struct s3c2410fb_display smdk2440_lcd_cfg __initdata =

{

       …

       .right_margin = 37,

       .hsync_len = 6, 

       .upper_margin =2,

       .lower_margin = 6,

       .vsync_len =2,

};

static struct s3c2410fb_mach_info smdk2440_fb_info   __initdata      ={

.default_display =0

       .gpccon         = 0xaa955699,

       .gpccon_mask      = 0xffc003cc,

       .gpcup           = 0x0000ffff,

       .gpcup_mask = 0xffffffff,

       .gpdcon         = 0xaa95aaa1,

       .gpdcon_mask      = 0xffc0fff0,

       .gpdup           = 0x0000faff,

       .gpdup_mask = 0xffffffff,

.lpcsel = 0xf82,

};

7、 给内核打yaffs2文件系统的补丁

cd /mnt/hgfs/share

tar –zxvf /mnt/hgfs/share/cvs-root.tar.gz –C /opt/studyarm

    cd /opt/stdudyarm/cvs/yaffs2/

./patch-ker.sh c /opt/studyarm/linux-2.6.29.1/ 

上面命令完成下面三件事情:

(1) 修改内核fs/Kconfig


 

增加一行:source "fs/yaffs2/Kconfig"

(2) 修改内核fs/Kconfig

    增加一行:ojb-$(CONFIG_YAFFS_FS) +=yaffs2/

(3) 在内核fs/目录下创建yaffs2目录

    将yaffs2源码目录下面的Makefile.kernel文件复制为内核fs/yaffs2/Makefie;

    将yaffs2 源码目录的Kconfig文件复制到内核fs/yaffs2目录下;

    将yaffs2源码目录下的*.c *.h文件复制到内核fs/yaffs2目录下.

8、修改S3C2440的机器号

由于Bootloader传递给Linux内核的机器号为782,为与Bootloader传递参数一致,修改 arch/arm/tools/math-types文件。

s3c2440                     ARCH_S3C2440              S3C2440                    362

修改为:

s3c2440                     ARCH_S3C2440              S3C2440                    782

另外,还可以不修改内核中的S3C2440机器号,只需修改修改Bootloader传递给内核的参数中的机器号就可以了。在VIVI中菜单中,按s,再按s,输入mach_type,回车,输入362,w,保存。


关键字:S3C2440  Linux内  核移植  源码参数 引用地址:基于S3C2440的Linux内核移植和yaffs2文件系统制作--Linux源码参数

上一篇:基于S3C2440的Linux内核移植和yaffs2文件系统制作-- 配置Linux内核
下一篇:stm32 总线矩阵介绍

推荐阅读最新更新时间:2024-03-16 16:24

linux核移植-移植2.6.35.4内核到s3c2440
硬件平台:FL2440 主机平台:Ubuntu 11.04 交叉编译器:arm-linux-gcc 4.3.2 原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/6604616 本来是想移植最新的内核2.6.39但是总是在编译快完成的时候报错,有人说是新的内核对arm平台的支持不好,所以就降低了一下版本,这里移植2.6.35.4内核 一、准备工作 1、下载 解压内核 从官网上下载linux-2.6.35的内核, ftp://ftp.kernel.org/pub/linux/kernel/v2.6/ ,文件不大,约85M。 新建一个工作目录s3c2440
[单片机]
S3C2440 Linux驱动移植——SPI
1. 配置内核 首先,修改arch/arm/plat-s3c24xx/Kconfig,这一步的目的是为了可以在内核中使能SPI0的配置函数。 修改后的内容如下: config S3C24XX_SPI_BUS0_GPE11_GPE12_GPE13 bool S3C24XX_SPI_BUS0_GPE11_GPE12_GPE13 help SPI GPIO configuration code for BUS0 when connected to GPE11, GPE12 and GPE13. 接着配置内核,首先打开S3C24XX_SPI_BUS0_GPE11_GPE12_GPE13选项,这样编译的时候会将 ar
[单片机]
<font color='red'>S3C2440</font> <font color='red'>Linux</font>驱动移植——SPI
S3C2440 测试程序(七) IIC实验2--读写EEPROM(软件模拟IIC)
使用S3C2440的GPE14--SCL和GPE15--SDA来软件模拟IIC: 由于不清楚如何像51那样位定义,就特意进行了如下定义: #define IIC_SDA_L (rGPEDAT = rGPEDAT & ~(1 15)) #define IIC_SDA_H (rGPEDAT = rGPEDAT | (1 15)) #define IIC_SCL_L (rGPEDAT = rGPEDAT & ~(1 14)) #define IIC_SCL_H (rGPEDAT = rGPEDAT | (1 14)) 初始化: void IIC_Init() { //GPE15--SDA GPE14--SCL rG
[单片机]
<font color='red'>S3C2440</font> 测试程序(七) IIC实验2--读写EEPROM(软件模拟IIC)
S3C2440的时钟原理
S3C2440的datesheet上说,可以达到400M,但是也不是说,必须在400M的频率下工作,主时钟晶振来自于外部晶振(XTIPLL)或者是外部时钟(EXTCLK)。时钟生成器包含了一个振荡器(振荡放大器),其连接外部晶振,并且还有2个PLL,可以产生需要的高频。 通过引脚OM 来决定时钟源是Crystal还是EXTCLK,不过我用的开发板将OM 固定接地了,都是用外部晶振。有一点值得注意,在对MPLLCON写入有效值之前,系统使用外部晶振或外部时钟源的时钟。即使用户不准备改变MPLLCON的值,也应当重新写一次。 简单说一下,S3C2440的时钟构成。 S3C2440具有2个PLL(Phase Locked L
[单片机]
四、s3c2440 裸机开发 通用异步收发器UARN
UART(Universal AsynchronousReceiver/Transmitter,通用异步接收/发送装置)用于异步通信,可以实现全双工发送和接收。2440有三个UART:UART0,UART1,UART2其结构图如下所示: 通过上图可以看到UART包含baud-rate generator波特率发生器,transmitter发送器,receiver 接收器and a control unit控制单元。在UART使用FIFO模式的时候,其中发送器和接收器分别有一个大小为64字节的发送缓存器寄存器和接收缓存寄存器FIFO(先进先出),通过上图还可以看到,假如不使用FIFO模式,接收器分别使用的发送保存寄存器和接收保存
[单片机]
四、<font color='red'>s3c2440</font> 裸机开发 通用异步收发器UARN
S3C2440 Mini 2440 DMA方式实现Uart串口通信
搞了好久,终于完成了DMA方式实现串口通信。使用DMA不是很难,主要是DCONn的配置比较麻烦以及几种模式的理解。 DMA service mode:single service&Whole service。前一模式下,一次DMA请求完成一项原子操作,并且transfer count的值减1。后一模式下,一次DMA请求完成一批原子操作,直到transfer count等于0表示完成一次整体服务。具体对应DCON 。 DMA DREQ/DACK PROTOCOL:DMA请求和应答的协议有两种,Demond mode 和 Handshake mode。两者对Request和Ack的时序定义有所不同: 在Demond模式下
[单片机]
S3C2440裸机程序【2】串口uart程序
学习ARM7芯片stm32时,裸机程序开发可以很方便的根据库函数在工程模板上进行开发,而ARM9主要是移植Linux开发,很少有裸机程序开发,因此在玩S3C2440希望最终形成一个keil环境下的模板。用的淘宝上的JZ2440v2板子,因为是裸机程序开发其他板子都一样。 S3C2440.s是keil自动生成的启动文件,其他都是按stm32库函数模板写的,技术很差,自学娱乐,若有需求可自行改动。 main.c文件: #include S3C2440Reg.h #include S3C2440Init.h #include led.h #include uart.h void delay(int t) {
[单片机]
<font color='red'>S3C2440</font>裸机程序【2】串口uart程序
基于S3C2440的WinCE Bootloader的分析与设计
Bootloader的开发是嵌入式系统开发必不可少的环节,一个好的Bootloader不仅可以给项目的后续开发工作带来很大便利,而且在项目开发结束后对用户使用产品也提供了很多方便。但是,由于嵌入式的硬件是无标准、非规范的,Bootloader的功能又是直接与微处理系统相关的,所以给开发人员的工作带来了许多不便。在实际的项目开发中,一般都需要对特定的硬件系统进行Bootloader的设计,可是从头开发一套系统的Bootloader是非常复杂并且耗时的,针对这一难点,微软公司推出的面向嵌入式应用领域的操作系统Windows CE体现了非常大的优势,Windows CE具有强大的操作系统功能、稳定可靠的性能、高度的模块化、可定制性、
[单片机]
基于<font color='red'>S3C2440</font>的WinCE Bootloader的分析与设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved