- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
复习-嵌入式1-3.doc
简答题(每小题2分,共20分)
1、请解释以下语句。
gcc -g -c -o -lm
gcc -I./ -I/1234/include –d test.c
make -f text.make -I /include/mk /I /w
make clean
2、举出5个驱动程序的常用接口函数。
以下任意五个均可以,
int register_chdev(usigned int major,const char *name,struct file_oprations *fops)
注册主设备号。Major:主设备号;name:驱动程序名(出现在/proc/dev中);fops:文件操作表。该函数将返回主设备号,如果出错将返回小于0的值。
int unregister_chdev(usigned int major,const char *name)
注销字符设备
void init_timer(struct timer_list *timer)
struct timer_list TIMER_INITIALIZER(_function,_expires,_data)
timer:定时器变量
_function:要调用的函数
_expires:期望定时器执行的jiffies值,jiffes为操作系统启动以来的时钟滴答数目
_data:要传递的参数
void add_timer(struct timer_list *timer)
timer:定时器变量
void del_timer(struct timer_list *timer)删除定时器
usigned long copy_from_user(void *to,const void *from,unsigned long count)
unsigned long copy_to_user(void *to,const void *from,unsigned long count)
用户地址空间和内核地址空间的数据交换
To:目标空间地址
From:源空间地址
Count:数据的数目
int request_irq(unsigned int irq,irqreturn_t (*handler)(),unsigned long flags,const char *dev_name,voin *dev_id)
注册中断
Irq:要申请的中断号
Handler:要安装的中断处理函数指针
Flags:位掩码选项
Dev_name:传递给requset_irq的字符串
Dev_id:用于共享的中断信号线
void free_irq(unsigned int irq,void *dev_id)
irq:要注销的中断号
dev_id:用于共享的中断信号线
3、从嵌入式系统底层到上层应用软件,试分析嵌入式计算系统的组成主要分为哪几个部分,并写出各部分所完成的功能。
(1)硬件层;(2)中间层(嵌入式系统初始化,硬件相关的驱动程序);(3)软件层(操作系统、文件系统、GUI,网络及通用组件);(4)功能层。
4、嵌入式系统程序员经常需要编写一些直接访问控制外设的代码。对于不同的嵌入式处理器体系机构,外设可能采用内存映射方式(如Motorola的大部分嵌入式处理器),也可能采用端口方式(如Intel的大部分嵌入式处理器)。试分析两种方法的原理。ARM处理器采用的是哪一种,简单叙述其具体做法。
ARM采用的是内存映射方式。当寄存器位于I/O空间时,称为I/O端口,当位于内存空间时,称为I/O内存。(1分)I/O端口的使用较为简单,使用Linux提供的函数访问定位于I/O空间的端口,包括:unsigned inb(unsigned port)、unsigned outb(unsigned char byte,unsigned port)。(0.5分)而I/O内存则首先需要用ioremap()将设备所处的物理地址映射到虚拟地址之后用I/O内存的方法进行端口访问,最后释放I/O端口,并释放映射虚拟地址。(0.5分)
5、简述设备驱动的开发流程。
(1)查看原理图,理解设备的工作原理;(2)定义主设备号;(3)在驱动程序中实现驱动的初始化,如果驱动程序采用模块的方式,则实现模块的初始化;(1分)(4)设计所要实现的文件的操作,定义file_operation结构;(5)实现中断服务(中断并不是每个设备驱动所必须的);(6)编译该驱动程序到内核中,或者用insmod命令加载;(7)测试该设备。(1分)
6、简述I/O内存访问流程。
Request_mem_region()→ioremap()→ioread8()、ioread16()、iowrite8()等→iounmap()→Release_me
您可能关注的文档
- 商业伦理导论 30.doc
- 商业伦理导论内部复习资料01.doc
- 商业伦理导论复习资料guo hiameng.doc
- 商业伦理导论第一章 绪论.doc
- 商业设计调研报告.doc
- 商业资料公务员考试精华浓缩课课堂笔记——申论8注意.doc
- 商务文书写作教程以及试卷和答案.doc
- 商务日语写作模板doc.doc
- 商务沟通10-13.doc
- 商务英语 unit 6 参考答案.doc
- 《建筑工程防水施工中常见通病原因解析及防治方法》教学研究课题报告.docx
- 新课标高考总复习数学2024年高考全国甲卷数学(理)真题154.pdf
- 2025汽车技师职业鉴定考前冲刺练习题附参考答案详解【名师推荐】.docx
- 2025汽车技师职业鉴定考前冲刺练习题【各地真题】附答案详解.docx
- 2025汽车技师职业鉴定考前冲刺练习题含答案详解(精练).docx
- 基于人工智能教育平台,初中物理个性化学习路径规划与用户偏好实证分析教学研究课题报告.docx
- 虚拟现实技术在小学科学探究式学习的教学设计与方法研究教学研究课题报告.docx
- 2025汽车技师职业鉴定考前冲刺试卷推荐附答案详解.docx
- 2025汽车技师职业鉴定考前冲刺练习题附答案详解(精练).docx
- 2025汽车技师职业鉴定考前冲刺试卷及答案详解(精选题).docx
文档评论(0)