历史上的今天
今天是: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,保存。
史海拾趣
|
一个LED的N种玩法(五)----WatchDog Timer 一个LED的N种玩法(五)--WatchDog Timer Author: chenzhufly Email: chenzhufly@126.com 2010-05-02 一.WatchDog Timer 概述 看门狗的目的是当进入错误状态一定时间后复位微控制器。当看门狗使能时,如果用户没有在一定时间内喂狗(看门狗定时 ...… 查看全部问答> |
|
有一个项目,供电电压是1000V直流的,需要转为5V,功率在2W左右.由于电压较高,如用PWM降压常规的器件耐压达不到,不知大家有没有好的方案,不甚感激!… 查看全部问答> |
|
代码如下: pmeidacontrol->pause() 视频已经暂停了 m_Graphs->pMC->GetState(2000,(OAFilterState*)&pfs); pfs为State_Paused 暂停状态 hr=m_Graphs->pBV->GetCurrentImage(&bitmapSize,NULL); hr的值为E_INVALIDARG 查了好多资料 还是没找到 ...… 查看全部问答> |
|
eboot显示一个 logo, 但进去系统的中间黑屏,我想继续在 oal中显示 logo, 去掉lcd初始化函数调用, 可看 OEMInit 函数,没见 初始化LCD部分代码, OEMInit 上下文周围也没找到 初始LCD有关的函数. 麻烦给个提示,谢谢 平台是 PXA270+WINCE6.0… 查看全部问答> |
|
java 调用DLL 读串口,不久就死了,请帮忙看看什么原因? 经过仔细分析问题出这dll这里,但始终找不到解决办法,请大家帮忙看看,谢谢! dll代码如下: JNIEXPORT jstring JNICALL Java_getGPS (JNIEnv * env, jobject obj) { char * cIpAddress =compressWideChar((LPCWSTR)L\"empty value! ...… 查看全部问答> |
|
关于格式转换函数sprintf(): 我想用sprintf()函数将一个usigned int型变量转换为字符串从串口发送出去 结果调用的时候发现不对 我先定义DeocdeNum=2000;UCHAR *CH 保存转换后的字符串 printf(ch,\"%d\",DeocdeNum); 结果我发现在程序中 Deoc ...… 查看全部问答> |
|
我用的周立功的8962单片机,例程时钟频率是6Mhz,但是TI那个例程用的是8Mhz。能可以把SYSCTL_XTAL_8MHZ?改为SYSCTL_XTAL_6MHZ.或者怎么弄啊?求详细解答。 谢谢了 [ 本帖最后由 sjindy 于 2011-8-11 09:58 编辑 ]… 查看全部问答> |




