




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实 验 报 告 书课程名称 嵌入式驱动设计 一、 Mini2440 开发板的介绍我们这次实训用的板子是Mini2440,Mini2440是一款基于ARM9的开发板,采用 Samsung S3C2440 芯片,并采用专业稳定的 CPU 内核电源芯片和复位芯片来保证系统运行时的稳定性。在进行器件地址说明之前,有一点需要注意,nGCS0 片选的空间在不同的启动模式下,映射的器件是不一样的。在NAND Flash启动模式下,内部的 4KBytes BootSram被映射到nGCS0 片选的空间;在Nor Flash启动模式下( 非Nand Flash 启动模式) ,与nGCS0 相连的外部存储器Nor Flash 就被映射到nGCS0 片选的空间 SDRAM 地址空间:0x30000000 0x34000000。Supervivi 在出厂的时候已经预装入板子的Nor Flash中,设置拨动开关 S2为NOR Flash启动,即可进入 BIOS模式,此时开发板上的绿色LED1 会呈现闪烁状态,其启动界面如下图:双击运行光盘中的“windows 平台工具usb 下载驱动 FriendlyARM USB Download Driver Setup_20XX0421.exe”安装程序,开始安装USB 下载驱动。注意:此处安装的 USB 驱动仅在BIOS模式下有用。安装完成后,打开光盘中的dnw.exe 下载软件,可以看到USB 连接OK,如图:功能主菜单如下图:二、 实训流程1.确定supervivi版本、开发平台及交叉编译器;2.获取Linux内核源代码(采用版本为Linux-);3.克隆建立自己的目标平台(制定交叉编译环境变量及配置内核菜单中的MINI2440);4.移植Nand驱动并更改分区信息;5.移植yaffs2;6.移植DM9000网卡驱动;7.实训扩展;三、实训内容1. 确定supervivi的版本为supervivi-0945-2K,supervivi的功能可通过USB下载配合DNW这个程序使用。功能如图所示:2.获取Linux内核源代码对于Linux-,我们是基于Ubuntu10.04平台做开发的,所有的配置和编译脚本也基于此平台,并使用符合 EABI 标准的新型编译器: arm-linux-gcc-4.3.2。3.克隆建立自己的目标平台一般步骤为:(1)、获取mini2440.c我们要参考SMDK2440 加入自已的开发板平台,我们使用的是mini2440 ,因此取名为MINI2440。在linux-/arch/arm/tools /mach_types 文件中,我们可以看到mini2440 的机器码为1999。接下来,我们注意到linux-/arch/arm/mach-s3c2440 目录下有个mach-mini2440.c文件,把它直接删除。将linux-/arch/arm /mach-s3c2440/ 目录下的mach-smdk2440.c 复制一份。命名为mach -mini2440.c ,找到MACHINE_START(S3C2440, “SMDK2440”) ,修改为MACHINE_START(MINI2440, “FriendlyARM Mini2440 development board”)。开发板运行后,在命令行终端输入:cat /proc/cpuinfo 可以看到我们添加的开发板信息。(2)、修改时钟源频率在 mach-mini2440.c (就是我们刚刚通过复制mach-smdk 2440.c 得到的)的第 160 行static void _init smdk2440_ map_io(void)函数中,把其中的16934400(代表原 SMDK 2440 目标板上的晶振是 16.9344MHz)改为 mini2440 开发板上实际使用的12000000(代表 mini2440 开发板上的晶振 12MHz,元器件标号为 X2)。(3)、从SMDK2440 到MINI2440制作自己的 mini2440 平台体系,需要把mach-mini2440.c 中所有的smdk2440 字样改为mini2440 ,可以使用批处理命令修改,在 vim 的命令模式下输入:%s/smdk2440/mi ni2440/g 。(把所有和“smdk2440”匹配的字符串全部替换为“mini2440 ”,前面的“%s“代表字符串匹配,最后的“g”代表 global,是全局的意思),除此之外,还有一个地方需要改动,在 mini2440_machin e_init(void)函数中,把smdk_machine_init() 函数调用注释掉。(因为我们后面会编写自己的初始化函数,不需要调用smdk2440 原来的)。(4)、编译测试在 Linux 源代码根目录下执行 #make mini2440_defconfig(使用 Linux 官方自带的 mini2440 配置); #make zImage ; 重新编译并把生成的内核文件zImage(位于 arch/arm/boot 目录)下到板子中,可以看到内核已经可以正常启动了(但此时大部分硬件驱动还没加,并且也没有文件系统,因此还无法登陆)。(5)、关于内核配置菜单中的mini2440选项在命令行执行: #make menuconfig(前面已经执行了make mini2440_de fconfig 加载了缺省配置,因此这里可以直接执行该命令);可根据一下步骤找到MINI2440选项:System Type-S3C2440 Machines-MINI2440 development board,在Linux-/arch/arm/mach-s3c2440/Kconfig文件中可查看到内核配置菜单中MINI2440选项的一些定义。这里的显示信息只是在内核配置菜单中出现的,要让选择的配置实际起效,还需要根据此配置在Makefile中添加相应的代码文件,请看该目录下的Makefile。4.移植Nand驱动并更改分区信息一般步骤:(1)、Linux- 内核所支持的Nand Flash 类型Linux-已经自带了大部分的驱动。在linux-/drivers/mtd/nand/nand_ids.c文件中,定义了所支持的各种 Nand Flash 类型,如下图(2)、修改Nand Flash 分区表打开/arch/arm/plat-24xx/mon-smdk.c可以看到Nand Flash 的分区表在 Linux- 中,nand 驱动是被注册为平台设备的,这同样可在/arch/arm/plat-24xx/mon-smdk.c 文件中看出。因此,在mach-mini2440.c 中加入为各个分区信息的代码(包含此分区的名字,大小、偏移地址)。(3)、从启动信息中查看分区表至此,就完成了 nand flash 驱动的移植,此时在内核根目录执行“make zImage”,把生成的 zImage 烧写到开发板。5.让linux支持yaffs2文件系统(1)、获取yaffs2的源代码在/node/346 可以下载到最新的yaffs2 源代码,需要使用git工具,在命令行输入: #git clone git:/aleph1.co.uk/yaffs 2 稍等片刻,就可以下载到最新的yaffs2 的源代码目录,本光盘中也有单独的yaffs2 源代码包(文件名为:yaffs2-src-20XX0329.tar.gz) 。(2)、为内核打上yaffs2的补丁进入yaffs2 源代码目录执行: #cd yaffs2 #./patch-ker.sh c /opt/FriendlyARM/mini2440/linux-此时进入linux-/fs 目录,可以看到已经多了一个yaffs2 目录。(3)、配置和编译带yaffs2支持的内核在Linux 内核源代码根目录运行:make menuconfig按照如下步骤进行配置:File Systems Miscellaneous filesystems YAFFS2 file system support 按空格选中它,这样我们就在内核中添加了yaffs2 文件系统的支持,按“Exit ”退出内核配置。最后在命令行执行: #make zImage。(4)、烧写到开发板运行测试最后会生成linux-/arch/arm/boot/zImage ,使用 supervivi 的“k“功能把它烧写到nand flash,按“b“启动系统,这时,如果 nand flash已经存在文件系统( 可以使用supervivi的“y“功能烧写友善之臂提供的现成的 yaffs2 文件系统映像root_qtopia-128M.img 用以测试) ,就会看到下图信息了,这说明yaffs2 已经移植成功。 6.移植DM9000网卡驱动步骤:(1)、设备资源初始化Linux-已经自带了完善的DM9000 网卡驱动驱动( 源代码位置:linux-/ drivers/net/dm900 0.c) ,它也是一个平台设备,因此在目标平台初始化代码中,只要填写好相应的结构表即可,具体步骤如下:a.首先添加驱动所需的头文件dm9000.h;b.再定义DM9000 网卡设备的物理基地址;c.再填充该平台设备的资源设置,以便和DM9000 网卡驱动接口配合起来;这样,DM9000 平台设备的接口就填完了。(2)、调整DM9000所用的位宽寄存器因为Linux- 的DM9000 网卡驱动并不是专门为mini2440 准备的,所以还要在其源代码中做一些移植工作,如下步骤。a、打开linux-/ drivers/net/dm9000.c ,头文件处添加2410相关的配置定义,如下红色部分:b、在dm9000 设备的初始化函数中添加如下红色部分,这里是配置DM9000 所用片选总线的时序,因为mini2440 目前只有一个通过总线外扩的设备,在此设备驱动中直接修改相关的寄存器配置会更加容易理解一些,当然这部分也可以放到mach-mini2440.c中。(3)、关于MAC地址需要注意的是,本开发板所用的DM9000 网卡并没有外接EEPRO M用以存储MAC地址,因此系统中的 MAC地址是一个“软”地址,也就是可以通过软件进行修改,可以随意改为其他值,在static int_devinit dm9000_probe (struct platform_device *pdev) 函数中可以看出:(4)、配置内核加入DM9000,并编译运行测试此时会带内核源代码目录,执行: #make menuconfig 开始在内核中配置网卡驱动,依
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第一节 足球说课稿-2025-2026学年高中体育人教版2019必修第一册-人教版
- 内蒙古自治区公考真题2025
- 诸神办事处求取上上签(说课稿)2025-2026学年初三下学期教育主题班会
- 橡胶厂加班申请管理制度
- 2025年上海市物业服务合同范本(合同版本)
- 化肥厂保养供应商评估规定
- 2025文艺活动策划委托合同
- 快递公司员工劳动合同协议
- 化肥原料采购质量保证合同协议
- Unit 4 Humour Lesson 2 Why do we need humour 教案 -2024-2025学年高中英语北师大版(2019)选择性必修第二册
- 承装修试许可证管理办法
- 2025楼宇平方效益评价规范
- 术后并发症护理
- 第9课《天上有颗“南仁东星”》课件 2025-2026学年统编版八年级语文上册
- 餐饮服务食品安全常规项目自查记录表
- 粪污清运服务管理制度
- 医疗机构动火管理制度
- 孵化基地制度管理制度
- 中枢整合康复技术课件
- DB31/T 936-2015车载终端与手机互联应用规范第1部分:通用技术规范
- 软件委托开发合同样本(合同范本)10篇
评论
0/150
提交评论