历史上的今天
今天是:2025年01月09日(星期四)
2020年01月09日 | ARM Linux.2.6.34内核移植
2020-01-09 来源:eefocus
ARM-LINUX-GCC版本4.3.2.以安装在/usr/local/arm/4.3.2下.
第一步:
修改linux-2.6.34/Makefile文件,在makefile中找到以下两条信息并做修改
ARCH ? =arm
CROSS_COMPILE ?=/usr/local/arm/4.3.2/bin/arm-linux-
第二步:
修改平台输入时钟
修改平台的时钟频率,修改内核源码“arch/arm/mach-s3c2440/mach-smdk2440.c”
把时钟初始化中(S3C24XX_init_clocks(16934400 ))的16934400 改为12000000,因为我们的开发板上为12M
第三步:
修改机器类型ID号::
bootloader启动内核时,会传递机器类型ID进来,这里需根据bootloadr传进的ID修改内核ID号.
在内核源码的“arch/arm/tools/mach-types”文件查找S3C2440,这里刚好与我们的bootloader相同,所以不用做修改,直接保存退出即可,如果不同则根据bootloader的内容修改此文件,或根据此文件修改boorloader的内容(在vivi中可通过param show查看)。
第四步:
解压yaffs2.tar.gz源码包,进入yaffs2文件夹,给内核打上补丁使内核支持yaffs2
# ./patch-ker.sh c /home/linux-2.6.34
结果:更新了两个文件系统下的文件
Updating /home/linux-2.6.34/fs/Kconfig
Updating /home/linux-2.6.34/fs/Makefile
第五步:
修改内核mtd分区和bootloader(vivi)使其一致
编辑文件arch/arm/plat-s3c24xx/common-smdk.c
static struct mtd_partition smdk_default_nand_part[] = {
[0] = {
.name = "vivi",
.size = 0x30000,
.offset = 0,
},
[1] = {
.name = "kernel",
.offset = 0x50000,
.size = 0x300000,
},
[2] = {
.name = "root",
.offset = 0x350000,
.size = 0x3cac000,
},
};
第六步:
修改文件drivers/mtd/nand/s3c2410.c
将s3c2410_nand_init_chip函数里的NAND_ECC_SOFT改为NAND_ECC_NONE(因为在内核中默认配置不支持ECC校验,当然也可以在内核配置时选中ECC选项)
修改后如下:
chip->ecc.mode = NAND_ECC_NONE;
第七步:
到llinux-2.6.30目录下执行命令
#cp arch/arm/configs/s3c2410_defconfig .config
第八步:
执行make menuconfig,并对选项进行配置
1)System Type --->
S3C2440 and S3C2442 machines --->
仅保留SMDK2440 与SMDK2440 whith S3C2440 CPU module两个选项,将其他的选项全部勾掉
2)Kernel Features --->
[*]Use the arm EABI to compile the kernel(选中该选项)
3)File systems --->
a、把与ext2 ext3 ext4相关的所有选项全部去掉
b、Miscellaneous filesystems --->
<*>yaffs2 file system support(选中此选项)
去除所有与jffs2相关的选项
保存退出
第九步:执行make zImage 编译生成内核.
在arch/arm/boot下生成编译好的可执行程序zImage. 这个是在vivi下使用的.
史海拾趣
|
第一季度全球PC出货量增长情况正常 据iSuppli公司,虽然经济形势充满挑战,但2008年第一季度全球PC出货量增长情况符合正常的季节型态,同比增幅达到两位数。 第一季度全球PC单位出货量从2007年第一季度的6240万台上升到6990万台,增长幅度为12.1% ...… 查看全部问答> |
|
安装wince 5.0时,提示找不到.NET FrameWork 1.1?这是怎么回事 D:\\Backup\\我的文档\\My Pictures 仁慈的人啊,指点一下。。。 我看我XP系统下的这个 FrameWork版本为 2.0的? 非要替换吗… 查看全部问答> |
|
我想用单片机控制TR800发送短信。 先把PC和TR800连接,用超级终端发AT命令,可以实现发短信。 然后单片机和PC连,向PC串口发数据,接收到的都是正确的命令 最后单片机和TR800连接,命令不能写进去,实在是搞不懂了,向大家求助。 … 查看全部问答> |
|
请问各位大侠: 我用万用表的通断档测量电路板的正负极之间是否短路时,(电路板未加电时测量) 万用表通断档有时显示的是.548,用电阻档测量时阻值为1.5K;有时通断档显示为1.254,电阻档测得阻值为5.2K. &nb ...… 查看全部问答> |
|
有没有办法在本地机上测试PERSONAL JAVA开发出的WINCE应用程序? 请教:有没有办法在本地机上测试PERSONAL JAVA开发出的WINCE应用程序? PS:JDK和PJEE已经安装了。。。可是没POCKETPC。。。愁。。。… 查看全部问答> |
|
请教各位大虾: GPS模块里1PPS的上升沿和串口收到的信息是同步的还是有些时间差?先后时间顺序是啥关系? 如何保证收到的时间和1pps上升沿同步? 谢谢了。急!!… 查看全部问答> |
|
main中 局部变量 unsigned int err1,rec1,send1; 全局变量 unsigned int send = 0; unsigned int rec = 0; unsigned int err = 0; 在main中 err1 = err; send1 = s ...… 查看全部问答> |




