嵌入式Linux驱动高级开发及内核原理.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

I/O读写用来读和写I/O端口的函数.它们还可以被用户空间程序调用,如果它们有正当的权限来存取端口.#includeasm/io.hunsignedinb(unsignedport);voidoutb(unsignedcharbyte,unsignedport);unsignedinw(unsignedport);voidoutw(unsignedshortword,unsignedport);unsignedinl(unsignedport);voidoutl(unsigneddoubleword,unsignedport);延时读写函数如果在一次I/O操作后需要一个小延时,你可以使用在前一项中介绍的这些函数的6个暂停对应部分;这些暂停函数以_p结尾unsignedinb_p(unsignedport);字串函数这些字串函数被优化为传送数据从一个输入端口到一个内存区,或者其他的方式.这些传送通过读或写到同一端口count次来完成.voidinsb(unsignedport,void*addr,unsignedlongcount);voidoutsb(unsignedport,void*addr,unsignedlongcount);voidinsw(unsignedport,void*addr,unsignedlongcount);voidoutsw(unsignedport,void*addr,unsignedlongcount);voidinsl(unsignedport,void*addr,unsignedlongcount);voidoutsl(unsignedport,void*addr,unsignedlongcount);I/O端口资源分配I/O端口的资源分配器.这个检查函数成功返回0并且在错误时小于0#includelinux/ioport.hstructresource*request_region(unsignedlongstart,unsignedlonglen,char*name);voidrelease_region(unsignedlongstart,unsignedlonglen);intcheck_region(unsignedlongstart,unsignedlonglen);I/O地址映射ioremap重映射一个物理地址范围到处理器的虚拟地址空间,使它对内核可用.iounmap释放映射当不再需要它时.#includeasm/io.hvoid*ioremap(unsignedlongphys_addr,unsignedlongsize);void*ioremap_nocache(unsignedlongphys_addr,unsignedlongsize);voidiounmap(void*virt_addr);并发和管理并发源很多多个进程运行SMP多个CPU并行设备中断延迟机制(工作队列,定时器,Tasklet)并发和竞争两个或多个进程读写某些共享数据,而最后的结果取决于进程运行的精确时序,就称为竞争条件(RaceConditions)。竞争情况来自对资源的共享存取的结果.存取管理的常用技术是加锁或者互斥其次常用的技术是引用计数临界区把对共享内存进行访问的程序片段称作临界区(criticalregion),或临界段(criticalsection)。如果我们能够适当地安排使得两个进程不可能同时处于临界区,则就能够避免竞争条件。临界区四要素任何两个进程不能同时处于临界区临界区外的进程不能阻塞其他进程不能使进程在临界区外无限等待不应对CPU的速度和数目做假设PV操作解决同步互斥PV原语的含义

P操作和V操作是不可中断的程序段,称为原语。PV原语及信号量的概念都是由荷兰科学家E.W.Dijkstra提出的。信号量sem是一整数,sem大于等于零时代表可供并发进程使用的资源实体数,但sem小于零时则表示正在等待使用临界区的进程数。

P原语操作的动作是:

(1)sem减1;

(2)若sem减1后仍大于或等于零,则进程继续执行;

(3)若sem减1后小于零,则该进程被阻塞后进入与该信号相对应的队列中,然后转进程调度。

V原语操作的动作是:

(1)sem加1;

(2)若相加结果大于零,则进程继

文档评论(0)

192****4212 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档