




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录第一章 引言11.1 课程设计目的1 1.2 课程设计任务与要求.1第二章 课程设计平台构建与流程22.1 嵌入式系统开发平台构建22.2 课程设计流程22.3 课程设计硬件结构与工作原理2第三章 Bootloader移植与下载43.1 源代码安装43.2 源代码分析移植与编译43.3 下载4第四章 Linux内核移植与下载74.1 Linux内核源代码安装74.2 Linux内核源代码分析与移植74.3 Linux内核编译与下载8第五章 根文件系统建立与文件系统下载145.1 根文件系统分析145.2 文件系统映像文件生成155.3 文件系统下载165.4 功能模块运行与调试17第六章 完成课堂上布置的三个思考题18第七章 课程设计总结与体会237.1 课程设计中遇到的问题以及解决方法237.2 总结和体会23第一章 引言1.1 课程设计目的1) 了解PXA27X微处理器GPIO的功能2) 了解MMC卡驱动程序的架构及编程方法3) 掌握MMC卡的使用方法1.2 课程设计任务与要求1) 理解基于Linux的嵌入式系统交叉开发环境,对嵌入式系统的开发流程有详细的了解;2) 掌握开发工具链的构建方法,能独立进行系统开发操作;3) 掌握Linux的常用命令,在linux系统下能熟练的使用这些常用命令;4) 熟悉linux内核的知识以及原理,掌握定制Linux内核的方法;5) 基于Linux操作系统,以及XSBase270ARM实验开发平台一套,把MMC存储卡挂载目标板上并进行文件的复制操作。第二章 课程设计平台构建与流程2.1 嵌入式系统开发平台构建1) 装有Linux操作系统的PC机一台;2) XSBase270 ARM实验开发平台一套3) MMC存储卡一块2.2 课程设计流程1)Bootloader移植与下载2)Linux内核移植与下载3) 功能模块程序设计与交叉编译4)根文件系统建立与文件系统下载2.3 课程设计硬件结构与工作原理1)目标板的MMC卡硬件接口目标板的MMC/SD卡的硬件接口如图1.1所示,根据PXA27x的MMC/SD/SDIO控制器的信号功能以及PXA27x的GPIO的功能分配,命令控制线MMCMD与GPIO112相连,此时引脚GPIO112必须配置成转换功能1(Alternate Function 1)的输入或输出方式(具体参考PXA27X开发手册),时钟端MMCLK利用了通用IO口GPIO32转换功能1输出方式,4位总线MMDAT0到MMDAT3分别与GPIO111、GPIO110、GPIO109和GPIO92相连,都时使用了通用IO口的转换功能1的输入或输出方式。图1.2为MMC/SD卡的供电电路图。图1.1 目标板的MMC/SD卡的硬件接口图1.2 MMC/SD卡的供电电路图2) PXA270的MMC/SD/SDIO控制器 PXA270的MMC/SD/SDIO控制器在访问PXA270处理器的软件与MMC存储堆和支持MMC、SD及SDIO通信协议之间充当联结作用。PXA27x的MMC控制器协议规范遵守多媒体卡系统规范V3.2(MultiMediaCard System Specification Version 3.2);MMC/SD/SDIO控制器采用标准的MMC传输协议或串行通信接口SPI协议模式。访问PXA270的软件使用MMC传输协议或SPI模式作为与MMC控制器通信的协议。目标板的SD驱动程序采用了MMC通信传输协议。3)MMC卡的通信协议主机与MMC卡的所有通信都是由主机发起,主机发出广播和点对点两种类型通信命令,在广播通信命令中,主机发出的命令被所有的卡接受,只有部分命令需要响应;而在点对点通信命令中,命令被发送到具体地址的卡中,并由该卡对所接受的命令做出响应。第三章 Bootloader移植与下载3.1 源代码安装 先将D:emdorEELiod_V4_SDK目录下的Linux-2.4复制到虚拟机里root的主文件夹中,然后用如下指令进行解压:利用上述命令解压后,bootloader源代码解压到当前目录中Boot-XSBase270文件夹中。3.2 源代码分析移植与编译在解压的目录里进行make 编译。rootlocalhost BootLoader# cd Boot-XSBase270rootubuntu:Boot-XSBase270# make cleanrootlocalhost Boot-XSBase270# make编译完成后, 在当前目录下会生成bootloader 映象文件boot。3.3 下载 1)设置完成后,打开开发板电源,启动桌面的DaemonU,会自动搜索目标板,如果成功,DaemonU将出现如下图:2)烧写boot到flash中启动桌面上的FlashWrite点击Initialize: 上图为连接正常的弹出窗口,确认连接正常,点击Detect如正常,应能自动搜索到板载的norFlash芯片,然后点击program按钮,按图中设置: 目标文件位于D盘项目文件中,烧写起始地址为0,烧写选项按上图设置,然后点击Start按钮,开始烧写。烧写结束。第四章 Linux内核移植与下载4.1 Linux内核源代码安装内核解压4.2 Linux内核源代码分析与移植Linux提供三个不同的命令进行Linux的配置,效果完全一样:make config 控制台命令行方式配置命令make menuconfig 文本菜单方式配置命令make xconfig X窗口图形界面方式配置命令其他部分命令:Make mrproper 命令清除所有的旧的配置和旧的编译目标文件等。Make dep 命令搜索Linux编译输出与源代码之间的依赖关系、并生成依赖文件。Make clean 清除以前构造内核时生成的所有目标文件、模块文件和临时文件。Make zImage 编译Linux内核,生成压缩的内核映像文件。4.3 Linux内核编译与下载1)内核解压2)内核配置Linux针对MMC/SD内核配置的步骤:(1) 在主菜单下选择Loadable module support -* Enable Loadable moduLe Support利用模块可将不常用的设备驱动或功能作为模块放在内核外部,必要时动态地调用。操作结束后从内存中删除,这样可以有效地使用内存,同时也可减小了内核的大小。模块可以自行编译并具有独立的功能,即使需要改变模块的功能,也不用对整个内核进行修改。文件系统,设备驱动,二进制格式等很多功能都支持模块。一定要选择*。 Set version information on all Symbols for modules利用这个功能能够让内核使用其它内核版本模块或没有包含在此 kernel 的特殊的模块。一般选择N。* Kernel module Loader这个设置使kernel 对模块处于常备状态。在不使用Insmod 或rmmod 命令情况下,kernel 程序自动将需要执行的模块调用到内存中,一定时间内不使用该模块时自动将其从内存删除,一般要选择*。(2) 再回到主菜单下选择General setup 选择“Support for hot-pluggable devices” , 出现“MMC/SD device drivers”:点击“MMC/SD device drivers”,进入下一页选择: 用向下的箭头,选择 Load an Alternae Configuration File 选项,输入配置文件名 archarmdefconfigsxsbase270,退出并保存。3)配置完成后,重新编译内核,需要输入以下指令:生成的zImage存放路径为: 将zImage拷贝到tftpboot文件夹下:4)内核烧写重新打开一个终端,输入命令:rootubuntu:# minicom然后重启开发板电源,看到 Boot 启动信息后按任意键启动Boot 的 Operation Menu,我们需要用这个boot 内嵌工具下载内核。然后再提示信息 Please enter your selection 后面输入2,获取本地IP 地址:可以看到Operation Menu 菜单上方显示:My ip address is 0,则表示板载Linux 与Ubuntu 服务器连接成功。输入 3,下载内核文件 ZImage(在Ubuntu 的文件系统的/tftpboot/目录中)下载成功后选择4,烧写内核。第五章 根文件系统建立与文件系统下载5.1 根文件系统分析1)EXT文件系统 Ext2fs是Linux的标准文件系统,它已经取代了扩展文件系统(或 Extfs)。扩展文件系统Extfs支持的文件大小最大为2 GB,支持的最大文件名称大小为255个字符,而且它不支持索引节点(包括数据修改时间标记)。2)NFS文件系统 NFS是一个RPC service ,它是由SUN公司开发,并于1984年推出。NFS文件系统能够使文件实现共享,它的设计是为了在不同的系统之间使用,所以NFS文件系统的通信协议设计与作业系统无关。当使用者想使用远端文件时只要用“mount”命令就可以把远端文件系统挂载在自己的文件系统上,使远端的文件在使用上和本地机器的文件没有区别。NFS的具体配置可参考实验一的网络文件系统nfs的配置。3)JFFS2文件系统 JFFS文件系统是瑞典Axis通信公司开发的一种基于Flash的日志文件系统,它在设计时充分考虑了Flash的读写特性和电池供电的嵌入式系统的特点,在这类系统中必需确保在读取文件时,如果系统突然掉电,其文件的可靠性不受到影响。 对Red Hat的Davie Woodhouse进行改进后,形成了JFFS2。主要改善了存取策略以提高FLASH的抗疲劳性,同时也优化了碎片整理性能,增加了数据压缩功能。需要注意的是,当文件系统已满或接近满时,JFFS2会大大放慢运行速度。这是因为垃圾收集的问题。相对于EXT2fs而言,JFFS2在嵌入式设备中更受欢迎。5.2 文件系统映像文件生成1)文件系统安装与busybox 的编译 将 D:emdorEELiod_V4_SDKLinux-2.4Filesystem 中的内容复制E:share 中,再Ubuntu 中从共享目录中复制到/tmp/中,然后将文件系统压缩包解压:可以建立一个小的应用程序,将其复制到文件系统的某个目录中。2)制作JFFS2 文件映像确认已将光盘的 filesystem 下的mkfs.jffs2 和mkrootfs.sh 拷贝到文件系统根目录下,在根目录下(例如上面的Filesystem),运行命令# ./mkfs.jffs2 -o rootfs270.img -e 0x40000 -r _install -p l生成映像文件rootfs270.img,拷贝到/tftpboot中烧写到flash中,启动后运行结果。或者运行# ./mkrootfs.sh 也可生成文件系统的映像文件rootfs.img。 或者运行# ./mkrootfs.sh 也可生成文件系统的映像文件。 5.3 文件系统下载 回到 Operation Menu,下载文件系统烧写文件系统启动进入minicom5.4 功能模块运行与调试可以按照以下步骤对MMC卡的驱动程序进行测试:重新打开一个终端,输入minicom,开发板启动后,将MMC存储卡插入MMC/SD卡插槽中,输入下面的指令:首先在根目录下创建一个名为“dq”的文件夹,然后进入dev文件夹再利用mount命令挂载MMC卡,现在就可以看到MMC卡里面的内容了:可以对MMC卡里的内容进行读、写、复制等操作:第六章 完成课堂上布置的三个思考题1)根据MMC/SD卡的认证模式命令流程图,结合目标板源码提供的MMC/SD驱动程序,画出认证过程的流程图;2)根据MMC/SD卡的传输模式命令流程图,结合目标板源码提供的MMC/SD驱动程序,画出数据传输过程的流程图;3)从网上下载MMC/SD卡的协议标准(SD Memory Card Specification Version 1.01),结合驱动程序,分析各命令的功能。GO_IDLE_STATE这是使card初始化到Idle状态的指令.CS信号设在Low的状态时,接到本指令后,card 将转换到SPI模式.SEND_OP_COND接到本指令后,card将做R3回应(含有OCR 数据).根据OCR值,可以得知card能工作电压范围.OCR数据最高值位的1bit是用来确认card内部处理是否结束(Ready/Busy轮询).ALL_SEND_CID接到本指令后, 处于Ready状态的card将传送CID数据.在MMC模式下,数据被送到CMD信号,在CID数据的每1bit传送后,CMD信号状态将与该card内部状态相比较,如果不一致,將中止数据传送,card返回到Ready状态.如果相一致,该card 将认为已被选中,然后转换到Identification 状态.SET_RELATIVE_ADDR本指令会为已转换到Identification状态的card分配一个相对card地址(RCA).当RCA分配后,card将转换到Stand-by 状态,对以后的CMD2和CMD3不回应.NOP这是用来设定DSR(DriveState寄存器)的指令,但是本car不支持DSR.SELECT/DESELECT_CARD本指令是用来选择一张card,让它在Stand-by状态和Transfer状态之间转换的指令.如果给card设定已分配到的RCA地址,card将从Stand-by状态转换到Transfer状态,并将回应以后的读取指令及其他指令.如果给card设定RCA以外的地址,card将转换到Stand-by状态。当RCA=0000h时,card将无条件地转换到Stand-by状态.SEND_CSD接到本指令后,将传送CSD数据.SEND_CID接到本指令后,将传送CID数据.READ_DAT_UNTIL_STOP接到本指令后,将从设定的地址传送P2ROM数据,直到接到指令CMD12为止.STOP _TRANSMISSION本指令强行终止CMD11和CMD18的处理SEND_STATUS接到本指令后, 将传送状态寄存器的信息.GO_INACTIVE _STATE接到本指令后,将转换到休止(inactive)状态.SET_BLOCKLEN本指令用来设定Block长度.对象是以后的指令CMD17和CMD18.READ_SINGLE _BLOCK接到本指令后,将从自变量设定的地址传送1个block 长度的数据.(block长度由指令CMD16设定).READ_MULTIPLE _BLOCK接到本指令后,将从自变量设定的地址连续传送block长度的数据,直到接到指令CMD12为止.(block长度由指令CMD16设定).SET_BLOCK _COUNT本指令是给紧跟的指令CMD18设定要传送的block 数量.WRITE_BLOCK接到本指令后,将写1个block 长度的数据到自变量设定的地址.(block长度由指令CMD16设定).WRITE_MULTIPLE_BLOCK接到本指令后,将连续写block长度的数据到自变量设定的地址,直到接到指令CMD12为止.(block长度由指令CMD16设定).READ_OCR接到本指令后,Card将传送OCR数据.CRC_ON_OFF本指令是用来
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年环型荧光灯管合作协议书
- 友善主题的演讲稿集合15篇
- 2025南平市人民医院煎药员招聘(编外聘用)考前自测高频考点模拟试题及参考答案详解
- 2025河北承德市消防救援支队招聘政府专职消防队员考前自测高频考点模拟试题附答案详解(完整版)
- 2025年福建省莆田华侨职业中专学校校聘教师招聘1人考前自测高频考点模拟试题附答案详解(完整版)
- 2025内蒙古呼和浩特市新城区东街西街街道社区卫生服务中心招聘3人模拟试卷及答案详解(必刷)
- 2025年山西云时代技术有限公司校园招聘考前自测高频考点模拟试题及参考答案详解1套
- 2025河北沧州市任丘园区产业发展集团有限公司招聘10人考前自测高频考点模拟试题附答案详解(完整版)
- 2025黑龙江佳木斯市建三江湿地机场消防应急救援大队招聘消防车司机1人模拟试卷附答案详解(模拟题)
- 2025年白山市教育系统“进校园”招聘高校毕业生(52人)模拟试卷及答案详解(考点梳理)
- 妇婴医院护理技术操作新生儿气管内吸痰操作流程图与考核评分标准
- (完整版)韦氏儿童智力测试试题
- 机械制图-点线面教学课件
- 练习使用显微镜 全国公开课一等奖
- 2023年高考地理(上海卷)-含答案
- 比重式精选机的使用与维护
- GB/T 39554.1-2020全国一体化政务服务平台政务服务事项基本目录及实施清单第1部分:编码要求
- GB/T 2942-2009硫化橡胶与纤维帘线静态粘合强度的测定H抽出法
- 电梯设计系统
- 细胞培养技术培训课件
- DB3301T 0286-2019 城市绿地养护管理质量标准
评论
0/150
提交评论