嵌入式驱动复习资料

嵌入式驱动复习资料

ID:12367675

大小:66.50 KB

页数:6页

时间:2018-07-16

嵌入式驱动复习资料_第1页
嵌入式驱动复习资料_第2页
嵌入式驱动复习资料_第3页
嵌入式驱动复习资料_第4页
嵌入式驱动复习资料_第5页
资源描述:

《嵌入式驱动复习资料》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、嵌入式驱动复习资料1、请指出USB总线的四种传输类型,并指出每一种传输类型的基本特点。答:四种传输类型:控制传输、批量传输、中断传输和等时传输控制传输:双向,纠错,查询、配置设备信息;批量传输:单向,纠错,大块无结构数据,延迟不定;中断传输:单向,纠错,小块无结构数据,延迟确定;等时传输:单向,无纠错,大块无结构数据,延迟确定。2、简述uClinux内核的配置剪裁和编译命令。答:(1)Linux移植准备,下载UCLinux2.X.0内核及其关于ARM平台的补丁。(2)准备交叉编译环境。交叉编译环境工具链一般包括binutils(含AS汇编器,LD链接器等),arm-g

2、cc,glibc等。(3)修改uClinux内核源码。uClinux的移植主要包含启动代码的修改,内核的链接及装入,参数传递,内核引导几个部分。(4)uCLinux内核裁减。利用“makeconfig”/“makemenuconfig”/“makexconfig”对内核配置。(5)内核的编译。执行以下几条命令就行:a.makecleanc.makezImageb.makedepd.makeinstall3、简述uClinux源程序的目录结构及其含义。答:(1)kernel目录下文件实现了大多数Linux系统的核心函数,其中最重要、最主要的文件当属sched.c。(2)

3、mm/nommu目录,Linux中独立于CPU体系结构特征的内存管理文件几乎都集中在此目录下。如页式存储管理、内存的分配和释放等等。在nommu目录下是没有mmu的内存管理。(3)(3)fs目录源程序涵盖各种类型的文件系统和文件操作。(4)(4)arch目录包括与CPU类型相关的子目录和文件。(5)(5)include目录容纳Linux源程序的所有头文件(headerfile)。(6)(6)net目录存放的是和Linux网络相关的C文件。(7)(7)drivers目录存放各种设备的驱动程序嵌入式相关资料4、简述linux和uClinux在进程管理方面的区别。答:uCl

4、inux和Linux之间最大的区别在于平面存储器模型。LINUX提供fork、vfork系统调用;而UCLINUX系统提供系统调用vfork。在vfork调用完成后父子进程事实上共享同一块存储器(在子进程调用exec或是exit之前),因此子进程可以更改父进程的数据及堆栈信息,因此vfork系统调用完成后,父进程进入睡眠,直到子进程执行exec或exit。当子进程正确开始执行后,将唤醒父进程,使得父进程继续往后执行。所以,在uClinux中,想让父子进程同时运行同一个程序是不可以的。5、简述编写uClinux驱动程序的步骤。答:首先,要根据设备功能的需要,编写file

5、_operations结构中的操作函数。其次,要向系统注册该设备,包括字符设备的注册,devfs节点的注册与中断响应函数的注册。然后,设备驱动程序编译和安装。如果没有应用设备文件系统,则需要手工为设备添加文件节点。最后,就可以利用对应的文件进行设备操控。6、画出Bootloader启动的详细流程图。答:7、写出为uclinux添加字符设备驱动的关键步骤。答:(1)把原文件放在linux-2.4.x/driver/char/(2)设备驱动原文件必须包括这样的一个函数:voidiof_init(void){register(254,'xyz',&xyz_fops);//驱

6、动程序里必须包含这句注册语句}(3)修改linux-2.4.x/driver/char/Makefile在适当位置添加一行:obj_$(CONFIG_IOF)+=iof.o嵌入式相关资料(4)修改linux-2.4.x/driver/char/Config.in,添加一行:bool'iof-drieverbyxxx'CONFIG_IOF(5)修改linux-2.4.x/driver/char/mem.c在文件头部的声明部分,添加:#ifdefCONFIG_IOFexternintiof_init(void);#endif然后,在chr_dev_init()函数里添加:

7、{#ifdefCONFIG_IOFiof_init();#endif}(6)修改目标板文件夹里相应的Makefile(7)makemenuconfig提示:iof-driverbyxxx时输入x,回车;makedepmake8、为下列Bootloader部分代码添加注释。……IMPORTImage$$RO$$Limit;①RW代码段的结束地址IMPORTImage$$RW$$Base;②RAM中需要初始化数据的首地址IMPORTMain;③主程序入口……BResetHandler;④复位异常……VECTOR_BRANCH……ResetHandlerL

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。