历史上的今天
返回首页

历史上的今天

今天是:2025年03月07日(星期五)

正在发生

2019年03月07日 | 基于S3C2440的Linux内核移植和yaffs2文件系统制作--Linux源码参数

2019-03-07 来源:eefocus

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,保存。


推荐阅读

史海拾趣

Gaomi Xinghe Electronics公司的发展小趣事

背景:在电子产品市场竞争日益激烈的背景下,Galaxy深知技术创新和品质提升的重要性。为了进一步提升产品性能,公司决定寻求与行业顶尖厂商的合作。

行动:Galaxy与瑞士著名散热器厂商“Arctic Cooling”建立了战略合作伙伴关系,共同推出了备受瞩目的影驰GeForce6系列产品。这款产品在散热性能上实现了重大突破,为用户带来了更加稳定、高效的使用体验。

成果:凭借出色的性能和口碑,影驰GeForce6系列产品迅速在市场上走红,不仅巩固了Galaxy在显卡市场的领先地位,还极大地提升了公司在行业内的影响力。

宝乘(baocheng)公司的发展小趣事

面对未来电子行业的发展趋势,宝乘公司继续坚持创新驱动的发展战略。公司加大研发投入,不断推出具有创新性和前瞻性的产品。同时,宝乘还积极探索新的市场领域和应用场景,为公司的未来发展奠定坚实的基础。相信在不久的将来,宝乘公司将成为电子行业中的佼佼者,为社会的进步和发展做出更大的贡献。

请注意,这些故事是基于现有信息的推测,并不代表宝乘公司的真实历史。如果您需要更准确和详细的信息,建议直接联系宝乘公司或查阅相关报道和资料。

Faraday Technology公司的发展小趣事

面对未来电子行业的发展趋势,宝乘公司继续坚持创新驱动的发展战略。公司加大研发投入,不断推出具有创新性和前瞻性的产品。同时,宝乘还积极探索新的市场领域和应用场景,为公司的未来发展奠定坚实的基础。相信在不久的将来,宝乘公司将成为电子行业中的佼佼者,为社会的进步和发展做出更大的贡献。

请注意,这些故事是基于现有信息的推测,并不代表宝乘公司的真实历史。如果您需要更准确和详细的信息,建议直接联系宝乘公司或查阅相关报道和资料。

Firadec公司的发展小趣事

背景:进入21世纪后,Firadec公司意识到全球化市场的重要性,开始实施全球化战略布局。

发展:公司首先在欧洲和亚洲设立了研发中心和销售网络,以便更好地贴近当地市场需求。随后,Firadec通过并购和合作等方式,进一步扩大了在全球范围内的市场份额和影响力。

影响:全球化战略的成功实施,使Firadec公司能够迅速响应全球市场的变化,抓住新的发展机遇。同时,公司也通过与国际知名企业的合作,不断提升自身的技术实力和市场竞争力。

DuPont公司的发展小趣事

为了进一步拓展电子市场,DuPont公司积极寻求与全球知名电子企业的合作。通过与国际知名品牌的战略合作,DuPont成功进入了多个重要的电子市场领域,如智能手机、平板电脑、汽车电子等。这些合作不仅为DuPont公司带来了广阔的市场空间,也促进了公司在电子领域的技术创新和产品升级。

DACHANG公司的发展小趣事

在竞争激烈的电子行业中,DACHANG公司始终坚持以品质为核心。公司不断引进先进的生产设备和技术,严格把控产品质量,确保每一件产品都能达到客户的期望。正是这种对品质的执着追求,让DACHANG公司的产品在市场上赢得了良好的口碑,公司也逐渐扩大了自己的市场份额。

问答坊 | AI 解惑

一个LED的N种玩法(五)----WatchDog Timer

一个LED的N种玩法(五)--WatchDog Timer Author: chenzhufly Email: chenzhufly@126.com 2010-05-02 一.WatchDog Timer 概述 看门狗的目的是当进入错误状态一定时间后复位微控制器。当看门狗使能时,如果用户没有在一定时间内喂狗(看门狗定时 ...…

查看全部问答>

1000VDC转5VDC大家有没有好的方案?

有一个项目,供电电压是1000V直流的,需要转为5V,功率在2W左右.由于电压较高,如用PWM降压常规的器件耐压达不到,不知大家有没有好的方案,不甚感激!…

查看全部问答>

wince 下directshow 截图

代码如下: pmeidacontrol->pause() 视频已经暂停了 m_Graphs->pMC->GetState(2000,(OAFilterState*)&pfs); pfs为State_Paused 暂停状态 hr=m_Graphs->pBV->GetCurrentImage(&bitmapSize,NULL); hr的值为E_INVALIDARG 查了好多资料 还是没找到 ...…

查看全部问答>

wince 6.0 OAL层初始化LOGO显示问题~

eboot显示一个 logo, 但进去系统的中间黑屏,我想继续在 oal中显示 logo, 去掉lcd初始化函数调用, 可看 OEMInit 函数,没见 初始化LCD部分代码, OEMInit 上下文周围也没找到 初始LCD有关的函数. 麻烦给个提示,谢谢 平台是 PXA270+WINCE6.0…

查看全部问答>

推荐ARM开发板

现在急需推荐一款ARM开发板,要求: 可以做触摸屏;操作系统WinCE——可以自己修改源码;应用于大型系统集成;处理数据采集系统;抗干扰能力强;数据运算速度快;扩展口多。哪位大侠给推荐一下,谢谢:)…

查看全部问答>

java 调用DLL 读串口,不久就死了,请帮忙看看什么原因?

经过仔细分析问题出这dll这里,但始终找不到解决办法,请大家帮忙看看,谢谢! dll代码如下: JNIEXPORT jstring JNICALL Java_getGPS (JNIEnv * env, jobject obj) {     char * cIpAddress =compressWideChar((LPCWSTR)L\"empty value! ...…

查看全部问答>

关于格式转换函数sprintf():

关于格式转换函数sprintf(): 我想用sprintf()函数将一个usigned int型变量转换为字符串从串口发送出去 结果调用的时候发现不对 我先定义DeocdeNum=2000;UCHAR *CH 保存转换后的字符串 printf(ch,\"%d\",DeocdeNum); 结果我发现在程序中 Deoc ...…

查看全部问答>

有源滤波器资料

本帖最后由 paulhyde 于 2014-9-15 03:08 编辑 我收集的有源滤波器资料,分享快乐    …

查看全部问答>

8962时钟频率问题

我用的周立功的8962单片机,例程时钟频率是6Mhz,但是TI那个例程用的是8Mhz。能可以把SYSCTL_XTAL_8MHZ?改为SYSCTL_XTAL_6MHZ.或者怎么弄啊?求详细解答。  谢谢了 [ 本帖最后由 sjindy 于 2011-8-11 09:58 编辑 ]…

查看全部问答>