TARGET
CPU: S3C2410X
SDRAM: HY57V561620(32MB) × 2
FLASH: K9F1208(64MB)
NET: CS8900
HOST
Linux Realse Version: Fecora Core 6
CrossCompiler: gcc-4.1.1/arm-linux-gcc-3.4.1
一、内核移植(2.6.14)
1 修改linux2.6.14下面的makefile文件
找到ARCH和CROSS_COMPILE,修改
ARCH ?= arm
CROSS_COMPILE ?= /usr/local/arm/3.4.1/bin/arm-linux-
(此处为你交叉编译的路径)
2 设置flash分区
在arch/arm/machs3c2410/devs.c文件中添加头文件
#include #include #include 然后建立分区表 /* 一个Nand Flash总共64MB, 按如下大小进行分区 分区大小自己看着办*/ static struct mtd_partition partition_info[] ={ { /* 1MB */ name: "bootloader", size: 0x00100000, offset: 0x0, },{ /* 3MB */ name: "kernel", size: 0x00300000, offset: 0x00100000, }, { /* 40MB */ name: "root", size: 0x02800000, offset: 0x00400000, }, { /* 20MB */ name: "user", size: 0x00f00000, offset: 0x02d00000, } }; /*加入Nand Flash分区*/ struct s3c2410_nand_set nandset ={ nr_partitions: 4, /*指明partition_info中定义的分区数目*/ partitions: partition_info, /* partition table分区信息表*/ }; /*建立Nand Flash芯片支持*/ struct s3c2410_platform_nand superlpplatform={ tacls:0, twrph0:30, twrph1:0, sets: &nandset, nr_sets: 1, }; tacls, twrph0, twrph1的意思见S3C2410手册的63, 这3个值最后会被设置到NFCONF中,见S3C2410手册66. sets: 支持的分区集 nr_set:分区集的个数 /*加入Nand Flash芯片支持到Nand Flash驱动 另外,还要修改此文件中的s3c_device_nand结构体变量,添加对dev成员的赋值*/ struct platform_device s3c_device_nand = { .name = "s3c2410-nand", /* Device name */ .id = -1, /* Device ID */ .num_resources = ARRAY_SIZE(s3c_nand_resource), .resource = s3c_nand_resource, /* Nand Flash Controller Registers */ /* Add the Nand Flash device */ .dev = { .platform_data = &superlpplatform } }; 指定启动时初始化 arch/arm/machs-3c2410/mach-smdk2410.c文件 找到platform_device *smdk2410_devices[] __initdata函数,在该函数体最后加上一条语句: &s3c_device_nand, 禁用禁止Flash ECC校验(有不同说法) 修改drivers/mtd/nand/s3c2410.c 找到chip->eccmode = NAND_ECC_SOFT; 改为chip->eccmode = NAND_ECC_NONE; 支持启动挂载devfs 修改fs/Kconfig文件 找到menu "Pseudo filesystems" 添加 config DEVFS_FS bool "/dev file system support (OBSOLETE)" default y config DEVFS_MOUNT bool "Automatically mount at boot" default y depends on DEVFS_FS 3 Yaffs2文件系统支持 下载yaffs2.tar.gz源码包,解压源码,并进入目录执行 #./patch-ker.sh c /linux-2.6.14.1/ 注:假定内核源码在/linux-2.6.14.1/ 4 编译配置内核,首先先load一个默认的内核/linux-2.6.14/arch/arm/configs/smdk2410_defconfig,在这个配置文件上改 Loadable module support > [*] Enable loadable module support [*] Automatic kernel module loading System Type > [*] S3C2410 DMA support Boot options > Default kernel command string: noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0,115200 Floating point emulation > [*] NWFPE math emulation Device Drivers > Memory Technology Devices (MTD) > [*] MTD partitioning support #支持MTD分区,这样我们在前面设置的分区才有意义 [*] Command line partition table parsing #支持从命令行设置flash分区信息,灵活 RAM/ROM/Flash chip drivers > <*> Detect flash chips by Common Flash Interface (CFI) probe <*> Detect nonCFI AMD/JEDECcompatible flash chips <*> Support for Intel/Sharp flash chips <*> Support for AMD/Fujitsu flash chips <*> Support for ROM chips in bus mapping NAND Flash Device Drivers > <*> NAND Device Support <*> NAND Flash support for S3C2410/S3C2440 SoC Character devices > [*] Nonstandard serial port support [*] S3C2410 RTC Driver File systems > <> Second extended fs support #去除对ext2的支持 Pseudo filesystems > [*] /proc file system support [*] Virtual memory file system support (former shm fs) [*] /dev file system support (OBSOLETE) [*] Automatically mount at boot (NEW) #这里会看到我们前先修改fs/Kconfig的成果,devfs已经被支持上了 Miscellaneous filesystems > <*> Compressed ROM file system support (cramfs) #支持cramfs <*> YAFFS2 file system support #支持yaffs2 Network File Systems > <*> NFS file system support 二、CS8900网卡驱动的移植 1 cs8900.c和cs8900.h放到/drivers/net/arm/ 2 在cs8900.c中的cs8900_probe()函数中,memset (&priv,0,sizeof (cs8900_t));函数之后添加如下两条语句: __raw_writel(0x2211d110,S3C2410_BWSCON); __raw_writel(0x1f7c,S3C2410_BANKCON3); 添加头文件#include 3 修改drivers/net/arm/目录下的Kconfig文件,在最后添加如下内容: config ARM_CS8900 tristate "CS8900 support" depends on NET_ETHERNET && ARM && ARCH_SMDK2410 help 4 修改drivers/net/arm/目录下的Makefile文件,在最后添加如下内容: obj-$(CONFIG_ARM_CS8900) += cs8900.o 5 在/arch/arm/mach-s3c2410/mach-smdk2410.c文件中,找到smdk2410_iodesc[]结构数组,添加如下如下内容:{vSMDK2410_ETH_IO, 0x19000000, SZ_1M, MT_DEVICE} 添加头文件#inlcude
上一篇:初试mini2440 nandflash驱动移植
下一篇:S3C2440A串口驱动-WINCE6.0下通过串口和外设进行数据通信(一)
推荐阅读最新更新时间:2024-11-11 10:38
推荐帖子
- 谢谢斑竹!再向斑竹请教(6)
- 谢谢斑竹。再向斑竹请教,麻烦斑竹了。同轴电缆的连接头可以换,但不是所有型号都可以换。那么同轴线呢?我以前说的那些微波器件之间的连接用什么样的连接线(同轴电缆同轴线以外)好呢?连接线的连接头当然是得根据器件的连接头来选取,但会不会出现找不到有合适连接头的连接线(与器件的连接头配不上)的情况呢?隔离器的带宽不是斑竹说的那样,从厂家网上提供的资料看来,带宽比频率范围的最大值与最小值之差还要小。怎么解释呢?在什么样的情况下需要用低噪声放大器而不能用功率放大器?为什么呢?谢谢斑竹!再向斑竹请教(6
- xujia525 RF/无线
- 各位哥哥们,请问下面是什么错误呢
- D:\software\Proteus8Professional\Tools\MAKE\RunTool.exe--good-exits=0,1--executable=BL51.exemain.OBJTODebug.OMFBL51BANKEDLINKER/LOCATERV6.22-SN:EvalVersionCOPYRIGHTKEILELEKTRONIKGmbH1987-2009***ERRORL121:IMPROPE
- ruanpang 51单片机
- 简述滤波器的发展历程及前景
- 滤波器的发展历程---凡是有能力进行信号处理的装置都可以称为滤波器。在近代电信设备和各类控制系统中,滤波器应用极为广泛;在所有的电子部件中,使用最多,技术最为复杂的要算滤波器了。滤波器的优劣直接决定产品的优劣,所以,对滤波器的研究和生产历来为各国所重视。---1917年美国和德国科学家分别发明了LC滤波器,次年导致了美国第一个多路复用系统的出现。20世纪50年代无源滤波器日趋成熟。自60年代起由于计算机技术、集成工艺和材料工业的发展,滤波器发展上了一个新台阶,并且朝着低功耗、高精度、小
- 吸铁石上 RF/无线
- 关于CAN帧的问题
- 在MultiCAN中CAN分为3种类型数据帧远程帧和错误帧我在手册上看了一下他们3个的定义但是还是不理解他们在实际应用中具体的作用是什么??比如说有个例程是利用MultiCAN模块的CAN节点0,配置了1个信息对象。实现上位机对LED灯的控制。教程中在报文对象0配置的配置中DIR选择的接收数据帧发送远程帧这个很是不理解麻烦各位啦~~~~~~关于CAN帧的问题can协议只规定这些帧的规则,具体怎么用是软件的事,
- 1157421908 单片机
- 2012年大赛获奖作品论文、源码、PCB(二)
- 本帖收集了2012年大赛的一些获奖作品,全部可以免积分直接下载。智能物联网家用机器人智能家居管理系统智能声音跟随小车智能井下预警及求救系统无线多功能座位指示牌无线低功耗大容量数据采集记录系统无人值守稻田病虫无线监测系统新型故障指示器新型故障器数控DC-DC供电系统数字式工频有效值多用表数字信号传输性能分析手势电视机遥控器开关电源并联模块电流分配方案(电力线载波)开关型电子负载
- sigma 电子竞赛
- 新能源汽车隔离、有桥单向车载充电机内部原理
- 1.主功率电路1.1车载充电机-单向充电机(交流直流)-隔离型充电机🍉注:判断是否为隔离型充电机看是否有变压器有变压器为隔离型充电机。单向充电机是指能够实现电网到电动汽车或电池的单向能量传递的充电设备。1.2充电机输入保护电路220V交流电保险X电容(消除差模干扰)压敏电阻(过压保护)6个泄放电阻(见下图,泄放电阻可控制电容器放电速度,防止电压突变,
- 火辣西米秀 汽车电子
设计资源 培训 开发板 精华推荐
- NCP59301DS00GEVB:3.0 A 固定 VLDO 稳压器评估板
- L9960T双H桥评估板
- 使用 Analog Devices 的 LTC2925IUF 的参考设计
- LTC3412A,一个 2.5V、4A 降压型稳压器,在突发模式操作中
- RT8561A 1MHz, 20mA 满量程电流 PWM 调光控制的典型应用
- 适用于 RGB、YPbPr 等的完整宽带 UTP 驱动器和接收器解决方案
- VLG-MC9S12ZVC: S12ZVC 16位混合信号MagniV MCU评估板
- STEVAL-1PS01EJR,基于 ST1PS01EJR 400mA 纳米静态同步降压转换器的评估板
- 四旋翼飞行器论文(原理图+程序)
- DER-958 - 使用 InnoSwitch4-CZ PowiGaN 和 ClampZero 的 70 W 高线路输入电压电源,适用于具有 USB Type-C/A 端口的墙壁插座