




已阅读5页,还剩60页未读, 继续免费阅读
(信息与通信工程专业论文)ahbpcmcia桥ip核驱动程序的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 基于可复用口核的系统集成技术已成为当今大规模集成电路设计的重要方 法 集成p c m c 队标准接口口核的处理芯片广泛应用于p d a 数码相机 数字 机项盒等嵌入式产品中 口核在嵌入式系统中的应用开发包括硬件开发与软件开 发 本论文以a h b p c m c l ai p 核驱动程序开发项目为依托 阐述了在u 姗x 环境 下 以a 砌订处理器为核心a l b p c m c i a 桥m 核驱动程序的设计与实现 该驱 动程序为口核的测试与应用提供了良好的软件支持 论文首先分析了 棚x 设备驱动的特点及其一般属性 然后在简要介绍 a h b p c m c l a 桥m 核硬件模块的基础上 提出了基于i 岫l x 环境下驱动程序的设 计方案 驱动程序的开发分为两个部分 第一部分是设计开发以测试为主要目的 的桥 p 核字符型驱动程序 第二部分是设计开发以应用为主要且的的桥p 核通用 型驱动程序 i p 核字符型驱动程序设计开发部分 描述了驱动程序的硬件接口模块 初始 化模块以及驱动装载入口模块的设计 并重点阐述了驱动程序为上层软件提供的 调用接口 口核通用型驱动程序设计开发部分 从分析 n u x 操作系统中p c m c 认 相关软件的关系以及工作方式入手 进而对驱动程序的工作重点进行了详细阐述 口核硬件抽象层的建立 中断事件的处理以及初始化的过程 针对桥m 核开发驱动程序的过程被分为两个部分 从形式上看此种开发方式 有些复杂 但在硬件设备并未充分得到验证的情况下 这种方式是非常必要的 也是相当实用的 本论文的主要目的是基于一个实际开发项目 探讨一种高效率 低成本的开发思路 为今后类似工作积累宝贵经验 本论文最后详细阐述了口核驱动程序的测试过程 包括测试环境的建立 驱 动软件的编译 测试步骤以及测试结果的分析 测试结果表明 本论文所讨论的 驱动程序在 n 1 1 内核中工作正常 可以在 棚x 环境下对i p 核进行良好的支持 完成所设计功能 关键词 p c m c 队 i p 核 l i n u x 驱动 a b s 仃a c t a b s t r a c t 口m d l e c t l l a lp r o p 耐y r e 璐em e i l l o d o l o 百懿f o rs y s t 唧i n t e 寄a t i o na r ce s s t i a l t oa c h j c et h e 吼g i i l e e r i n gq l l a l 时o f t o d a y sl a r g e c 伽p 1 i c i n 哪怕t e dc f r c u 时 n o wi c c b j p s 谢t l lp c m c l a 口粥0 n a lc 0 n l p u t 盯m 锄o f yc a f di n t 咖a t i o 砌a s s o c i 觚o n s t 柚d a r di l 渤f a 口c 0 a 1 l s e d 嘶d e l yi ns 咄e 即1 b c d d e d v i r 0 姗胁ts l l c h 撼p d d i 百t a lc 锄啪细ds e t t 叩b o x 口c o 馆a p p l i c a t i o ni i l 啪b c d d e ds y s t 锄i i l c l u d 嚣 h a r d w 瓣d 龉i g n 缸ds o f t w a d e y d o p l n e n 乞 t h em a i n 咖t e n to fl l l i sd i 船删o n 叩u n d st h ed 鹤i g n 舳dd e v e l 叩m e n to f a h b a d v 鲫c c dh i 鲫确肋锄c eb 哟 p c m c i a 鲥d g c 口c 0 佗 v 盯i nl 血1 砥o s 卵e 掰d o ns y s t e m b 鹤e do na r mp f o c e 豁o r t h ed 眦l q m l 髓tp u 邛l o s eo f 也i sd l j v 玎i s t o h c l p c o m p l e t e 口0 0 他f i l n c t i 姐v 甜丘c a t i a n d 飘m as 油l e w o r k i l l m 0 s t t l i sd i s s e r t a t i o nf i r s ta n a l y s 铭t l l ec h 撇c t e 瑙a n d 蝴m a t 仃i b l n 瞎o f 皿u x d 喇c c d r i v t h a l p u t s f o 刑觚s 卸i n 巾l 锄锄t p l 柚f o f l h e 驴c o r e sd r i v 盯a f t e r 嘶e n y i n 昀d u c i n gt l l el 均r d w a r ea r c l i t e c t l 鹏a n dr c l a t i v ep r o t o c o l so fm ea h b p c m c 从m o o r 毫1 1 坞d r i v 盯 h e l o p m ti s d i i d c di 1 1 t 0t w op a n s n ei st l i ec h a rd e v i c ed r i v 盯 u s e dt o t e s ti pc o r eb a s i sf l n c t i o n 锄dt l l eo t l l e f i st l l eo 嘲m o nd e j c ed r i v e ff o r a p p l i c a l i o f 口c o r e 1 1 1 ec h a rd e i 衄v 盯曲r e l o p m 饥ts e c c i d 印i c i st l l ed r i v 盯d c s 酒d e c a i l s i l l d u d i n gh 衲a r ei n t e r f a c cm o d u l c i l l i 石a l i z a t i o nm o d u l e 柚dd f i v 盯 打粕c em o d u l e e t c hm i s 吐i o nm er 髓l i z a t i o no f d v 盯i 0c o i i t r o li n t e m l c ci st l l ek e y 皿ec 0 咖 d e v i c e 蹦v 盯d e l o p i l l e n ts e c t i o nf i r s t 觚a l y s 铭t h ep c m c n s u b g y s t e ms o 胁a r ec o m p o s m o n 锄dw 硎l i n gm e l l l o d si nl i n l l o s 1 1 i 胁m et l l e s i s 百v c saf i l l ld i s 撕p t i o ft l l ed r i v e r 血优a s p e c sw o 呔 h a r d w a r ea b s t r a c t i o nl e v d 韶t a b l i s h m 饥t i i l t e 唧t i e v e n tp r o c 鹤s i i l ga n di i l i t i a l i z a t i 伽p r o c 伪s t 1 1 ed c v e l o p m e n to fd r i v 仃i s 伽吼p o s e do ft w op a n s w h ic hl o o l ss o m 郫m a t 锄n p l c x 觚dh o w e v i ti s 懿豫n e l yn e c e s s 目7 锄dp r a c t i l 印p r o a c hw h 也e e q u 枷e n th 鹤n o tb c e i lp r 0 v e dt ob ec n t i r e l yc o r r c t t h em a mp t 珥 0 s eo f 也e n a b s t m c t d i s n a t i o ni sc o n c l u d i n gah i g l lc 衔c j e n c ya n dl o wc d s td e v e l o p m e n tw a yb 勰c do na p 糟c t i c a lp r o j c c td e v e l 叩m e n t a tm e 蛐ct i m ep r o v i d i n gv a l u a b i cc x p e r i e n c c sf o rt h c f i i n i 佗 h l a d d i t i o n t l i i sd i s s e f t a t i o nd e p i c t st h c 口 托d 晰e ft c s tp t o c e s s i n d u d i n g b u i l d i n gt e s t v ir 0 1 l n e n t t e s ts t 印sa n dt c s tr c s u l t 觚a l y s i s k e yw o r d s p c m c i a 口c o m n u xd r i v e f l n l 璺1 目录 图2 1 图3 1 图3 2 蛋刍 图3 4 图3 5 囤孓l 图5 2 图目录 设备驱动接口示意图 6 j 蚺m 总线互联结构 1 0 p c m a 渔主枧端系统结构图 1 2 撑核设计流程瀚 1 5 a h b p c m c i a 桥m 核系统中位鼍图 1 5 l p 核模块框图 1 7 翱c 弑c l 盏子系统缝擒蚕 2 8 p c m c 璩子系统中断事件处联流程图 3 0 图5 3 卡空间到主系统地址映射圈 图5 4 圈6 1 图6 2 图6 3 蚕6 毒 图6 5 图6 击 键口寄存器盼缀织形式 3 6 s o c 硬俘平台承意图 测试环境连接示意图 文件编译结果圈 锈戆穗箍怠 4 2 4 3 4 9 辆卡拔卡信息 5 1 业务级测试连接示意图 5 2 v i l 表目录 表2 1 表3 1 表4 1 表禾2 表5 1 表5 2 表5 3 表5 4 表5 5 表5 缶 表6 1 表6 2 表6 3 表目录 中断底半部处理机制对照表 i p 核子模块功能表 i o c t l 命令号格式 命令码宏定义对照表 c a r ds t a t u sj n t e 删p tc h a n g ec o n f j g i l f a t i o n 寄存器 8 1 7 2 4 m 2 4 i n t e 如c cs l a t u s 寄存器 3 4 p o w e rc o n t r o l 寄存器 主系统地址映射空间分配 中断分类表 完成变量的使用 p c m c 认卡可配置寄存器表 3 5 3 7 p r i n t k 同志级别对应表 4 9 卡插拔事件引脚编码 5 1 v 1 i l 缩略语表 a h b a r m a s i c c l s c p l d c p u d m a e d a f p g a f l f o i p c o r c i r q j t a g p c i p c m c i a p d a p o s t r a m r o m r t l s c s i s o c t f r p u s b 缩略语表 a d v a n c c dh i g i i p c r f o m a n c cb 吣 a d v a n c c dr l s cm a c h i n c s a p p i i c a t i o ns p c c i 丘c1 1 l t e 呼a t e dc i r c u i t s 捌i n t b 咖a t i o ns n u c t u r c c o m p l c xp r o f a m m a b i el o 百cd c v i c c c c n t f a lp r o c c s s i n gu n i t d i r e c tm e m o 碍a c c 鹳s e l c c t m n i cd e s i 弘a u t o m a t i 伽 f i e l dp m g 舢m a b l eg a t ca 盯a y f i 墙t i nf i r s t o u t i n t e l l i g e n c cp m p c n yc o r e i l l t e r n i p tr e q u e s t j o i n tt c s ta c t i o ng m u p p e r i p h e r a l p o n e n tb l l e r c 0 仰e c t p e r s o n a lc o m p u t e rm e m o f y x r d i n t e m a 6 0 n a la s s o c i a t i o n p e r s o m ld i g i t a la s s i s t a n t p o w e ro ns c l f t e s t r a n d o ma o c e s sm e m o r y r e a do n l ym e m o r y r e 西s t c rt r 卸s f c fl 胛e l s m a i lc o m p u t e rs y s t e ml l l t e r f a c c s y s i c m o n c h j p t r i v i a lf i l ct r a n s f c rp r o t o c o l u n i v e 碍a ls e r i a lb u s 高性能高速片上总线 高性能精简指令集处理器 专用集成电路 卡信息结构 复杂可编程逻辑器件 中央处理器 直接存储器存取 电子设计自动化 现场可编程门阵列 先进先出电路 知识产权核 中断请求 联合测试行动小组 外设部件互连标准 个人计算机内存卡国际联 合会 个人数字终端 加电自检 随机访问存储器 只读存储器 寄存器传输级 小型计算机系统接口 片上系统 简单文件传输协议 通用串行总线 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果 据我所知 除了文中特别加以标注和致谢的地 方外 论文中不包含其他人已经发表或撰写过的研究成果 也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意 签名 施星 囱 日期 年月 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留 使用学位论文 的规定 有权保留并向国家有关部门或机构送交论文的复印件和磁 盘 允许论文被查阅和借阅 本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索 可以采用影印 缩印或 扫描等复制手段保存 汇编学位论文 保密的学位论文在解密后应遵守此规定 签名 椤岩 陶 导师签名 苹4 剪杪邑 日期 年月 日 第一章引言 1 1 选题背景 第一章引言 a h b p c m c 认桥口核在嵌入式系统中有着非常重要的工程应用 其一端是 a h b 总线接口 另一端为p c m c i a 控制器接口 完成两种协议之间的转换工作 集 成越珥 p c m c 队桥i p 的处理器不仅可以通过插入不同的p c 卡 满足系统不同的 功能需求 而且可以通过增加新卡来提升系统功能 保持技术同步 避免被淘汰 目前ii 瑚l x 是在嵌入式系统应用极其广泛的一种操作系统 l i 肌x 是u l i x 类 的操作系统 是一个支持多用户 多进程 多线程 实时性较好的功能强大而稳 定的操作系统1 1 1 n u x 由于其代码公开 结构清晰 内核小巧 功能强大等特性 使其成为嵌入式开发的首选 l i 肌x 最初是在i n t e l8 0 3 8 6 平台 上实现的 但是已经被移植到各种主要的 c p u 系列上 包括a l 口h a m 6 8 k m i p s s 队r c p 0 w 盯p c 等等 同时 在同 一个系列的c p u 上 n u x 内核还支持不同的系统结构 它既支持常规的单c p u 结构 也支持多c p u 结构 计算机最基本的三个物质基础就是c p u 内存以及输入 输出设备 离开了对 设备的操作 计算机本身就失去了意义团 在l i i l u x 下编写驱动程序的主要目的是 使系统可以对现有设备进行操作 ij n l 设备驱动可以理解为操作系统的一部分 对于不同的硬件设备来说 其对应设备驱动程序不同 对操作系统来说 挂接设 备越多 所需要的设备驱动程序也就越多 操作系统本身并没有对种类繁多的硬 件设备提供持久不变的设备驱动 也就是说操作系统在没有设备驱动程序支持下 是无法正常支配硬件行为的 这时候就需要独立开发一套适合自己产品的设备驱 动程序 正是操作系统留下了扩展设备驱动的接口 才有了现在支持各种应用场 合的硬件设备的蓬勃发展p j i j m l x 操作系统对设备进行操作的前提是将所有的设备全部看成文件 每一项 设备都至少由文件系统中的一个文件代表 每个这样的 设备文件 都惟一地确 定了系统中的一项设备 应用程序通过设备文件访问具体设备 而设备则像普通 文件一样受到文件系统的访问权限控制机制的保护 因此文件操作和设备驱动实 际是同一事物的不同表述 因此一个系统可以划分成应用程序 文件系统以及设 电子科技大学硕士学位论文 各驱动三个层次 传统的u n 奴内核是 全封闭 的 如果要往内核中加一个设备 早期一般的做 法是编写这个设备的驱动程序 并变动内核源程序中的某些数据结构 再重新编 译整个内核 并重新引导整个系统1 4 这样做的好处是使统的安全性更能得到保证 但其缺点是太僵化了 i j n l 挠很好的解决了驱动程序加载的问题 既允许把设备驱动程序在编译时静 态地连接在内核中 也允许动态地在运行加载称为 模块 的驱动程序 还允许在运 行状态下当需要用到某一模块时由系统自动安装嘲 这样的模块仍然在内核中运 行 而不是像在微内核中那样作为单独的进程运行 所以其运行效率能够得到保 证 模块 也就是动态安装的设备驱动程序的实现 是很大的改进 它使h i 旺 设备驱动程序的设计 实现 调试以及发布都大大地简化 甚至可以说是发生了 根本性的变化 在 n 酝环境中驱动程序和操作系统结合紧密 设备驱动程序是内核的一部 分 所有的驱动程序必须向操作系统登记 并按照操作系统的要求设计接口 应 用程序的操作通过一组标准化调用执行 这些调用通过设备驱动程序提供的接口 映射到实际的硬件设备上 所有的设备工作细节都被驱动程序所屏蔽 因此驱动 程序也可以理解为软硬件之间的中间层函数 其为设备与系统之间建立桥梁 是 系统高效工作和设备充分发挥功能的重要保障 正是这些原因决定了嵌入式系统 设计中驱动程序的开发是重要环节f 6 m 1 2 国内外研究现状 l i i m x 内核发展快 版本多 目前最新版本的l i 加x 内核是2 6 版本 为了促 进l i n u x 在嵌入式方面的应用 i i 瑚 2 6 内核引入了很多非常有利于嵌入式应用 的功能 这些新功能包括实时性能的增强 更方便的移植性 对大容量内存的支 持 支持微控制器和i o 系统的改进等 虽然i j 加x2 6 还不是一个真正的实时操 作系统 但其提供了抢占式内核使响应能力更加适合于这一领域的需求 同时在 2 6 内核中 引入了更加高效的调度机制 调度程序每次不再扫描所有的任务 而 是在一个任务变成就绪状态时将其放到一个名为 当前队列 的队列之中 当进程调 度程序运行时 它只选择队列中最有利的任务来执行嘲 由于 n u 工具链是免费开发工具并且拥有功能强大 与硬件结合紧密等特点 故被大多数嵌入式开发者所使用 g n u 工具链包括了汇编器船 c 编译器g 2 第一章引言 c 编译器g 连接器i d 以及m a k e 工具等1 9 1 g n u 工具还具有针对不同处理器 不同算法的软件优化 高效的内嵌汇编 大型项目管理等功能 但g n u 工具链都 是基于控制台方式实现 使用不方便 1 3 课题任务及研究意义 本课题目的是为a h b p c m c i a 桥i p 核提供i j 肌x 环境下的驱动程序 其主 要功能是为i p 核提供真实u n 馘运行环境 在与主处理器集成之前 l p 核需要在 f p g a 环境下进行测试 驱动软件需对l p 核进行正确配置 并完成响应硬件中断 等动作 充分完成功能测试 确保其硬件逻辑上的准确无误 在i p 核与基于a h b 总线的主处理器集成之后 驱动程序提供符合p c m c 队子系统的接口 使集成了 a h b p c m c 认桥i p 核的处理器与外接p c m c 队卡可以在u 肌x 操作系统中正常 工作 目前p c m c 认标准卡的应用热点多集中于p d a 数字相机 数字电视等嵌入 式领域 t 丌发基于a h b 总线的p c m c l a 桥l p 核可以使系统具有高效地a r m 处 理器的同时扩展p c m c i a 卡功能 为a h b p c m c 队桥i p 核提供紧凑 高效的驱 动程序 不仅可以使测试工作顺利完成 而且可以保障后续产品得到实际的应用 1 4 本论文的主要研究内容及章节安排 本论文所涉及课题内容主要包括以下几个方面 1 分析并理解l i 聃x 环境下p c m a a 子系统的软件结构以及相应的工作流 程 并提出驱动程序解决方案 2 设计字符型驱动程序 重点是实现文件操作接口 3 开发通用驱动程序主要包括 硬件抽象层模块 中断处理模块以及仞始化 模块 4 在嵌入式l i n u x 环境下进行软硬件的协同调试完成印核功能测试 本论文各章节安排如下 第一章介绍了u n u x 操作系统对设备操作方式以及目前研究热点 然后论述了 本课题的意义以及本人的主要工作 第二章阐述l i n u x 操作系统中驱动程序的特点以及重要工作机制 为以下工作 做技术性铺垫 3 电子科技人学硕十学位论文 第三章首先简要介绍了a h b 总线协议和p c m c 认标准 然后分析了i p 核的 功能特点以及硬件结构 在此基础上提出了相应驱动程序的解决方案 第四章针对i p 核设计一个字符型驱动程序 其中重点论述了驱动程序文件操 作接口的实现 第五章是论文的重点 从分析 j n u x 环境下p c m c 队子系统的工作方式入手 从而确定了驱动工作的重点 进而对以下三个方面进行了详细阐述 硬件抽象层 的建立 中断事件的处理以及i p 核的初始化 第六章首先介绍了i p 核驱动程序测试环境的建立 其包括硬件平台的搭建以 及软件环境的准备 然后详细描述了针对两种驱动程序的测试方案 最后给出了 相关的测试结果 第七章对全文进行了总结 在此基础上分析工作的不足并提出了需要改进的 环节 4 第二章l i 腓x 设备驱动程序概述 第二章l i n u x 设备驱动程序概述 l i 朋x 系统中设备驱动程序是应用程序与硬件之间的中间软件层 设备驱动程 序为应用程序展现硬件的所有功能 使某个特定的硬件响应一个定义良好的内部 编程接口 同时完全隐蔽硬件工作的细节 2 1l i n u x 设备驱动程序的特点 i 柚嗽系统中的设备分为字符设备 c h 缸d e c c 块设备 b l o c k 和网络设备 n e t d e 鳓三种 字符设备是指在存取时没有缓存 能够像文件一样被访问的设备 块设备与字符设备的区别仅仅在于内核内部管理数据的方式不同 块设各读写需 要缓存来支持 只能以块为单位进行读写 网络设备不是面向流的设备 在l 抽弧 中作专门的处理 内核调用一套和数据包传输相关的函数来处理网络设型1 0 1 l i m l 核心中虽然存在许多不同种类的设备驱动程序 但是它们都有一些共同 的特点f l j 1 核心代码 设备驱动程序是核心的一部分 像核心中其他的代码一样 出 错将导致系统的严重损伤 一个编写不当的设备驱动程序甚至能够使系统 崩溃导致文件系统的破坏和数据的丢失 2 核心接口 设备驱动程序必须为l 蛔暇核心或者其从属的子系统提供一个 标准的接口 3 核心机制 设备驱动程序可以使用标准的核心服务比如内存分配 中断发 送和等待队列等 4 动态可加载 多数的l i m 设备驱动程序可以在核心模块发出加载请求时 进行加载 同时在不使用设备时进行卸载 这样核心可以有效地利用系统 的资源 5 可配置 l i m 设备驱动属于核心的一部分 用户可以根据自己的需要进 行配置来选择适合自己的驱动 5 电子科技大学硕士学位论文 2 2 设备驱动的外部接口 l i n u x 驱动程序在整个系统中的位置以及与外部的接口如图2 1 所示f 1 2 服务 图2 1 设备驱动接口示意图 如图2 1 所示驱动程序处于操作系统内核层 共提供了三种外部接口 应用 编程接口 a p i 操作系统接口以及硬件接口 1 应用编程接口 a p i 驱动程序的应用编程接口提供了一系列函数 支持应用程序对硬件的配置 控制和监控 这些函数都封装在j o c l l 函数中 供上层应用程序调用 2 操作系统接口 驱动程序位于操作系统内核层 与操作系统接口主要是利用操作系统提供的 服务 驱动程序本身也包含一些操作系统回调函数 在一些条件发生时 系统通 过回调函数完成操作 3 硬件接口 硬件接口主要完成对寄存器的基本读写访问 2 3 中断处理机制 2 3 1 中断的申请与释放 l i m 内核维护着一个中断信号线的注册表 该注册表类似于i o 端口的注册 表 模块在使用中断前要先请求一个中断号 m q 同时安装中断处理程序 在 使用后释放该中断号 r e q u e s t i r q 函数和盘蟹e i r q 函数完成中断的申请与释放 其 6 第二章l i n 慨设备驱动程序概述 函数原型如下 1 3 i n t 馓l uc s i 虹q 吼s i 盟e d i n t i r q 岫r e t 哪t 孤d l 盯 i n t v o i d 咖c tp t i 孵 黼s i 孕c dl gn a g s c o n s t d h 瑟4 d e i l a i n e v o i d d e v j d v o i d 舭c i r q 1 脚i 驴c di n ti 地v o i d4 d e y i d 岫是中断号 h n d l 盯是要安装的中断处理函数指针 n a 伊是与中断有关的位 掩码 d c v 彻m e 是设备名 d c ri d 用于共享中断线情况下的区别 函数返回值r e t 为0 时表示请求成功 负值表示错误 返回 e b u s y 表示已经 有另一个驱动程序占用了要请求的中断信号线 参数f l a g s 所包含类型如下f 1 4 1 s a 矾t e r r u i t 表明是快速中断 运行时禁止所有中断 2 s a s h 瓜q 可以在多个中断处理程序间共享中断线 此时d e i d 参数必须惟一的 传递 个驱动程序的设备结构 中断线共享的情况下 中断处理程序必须能够区分它 的设备是否真的产生了中断 这既需要硬件的支持 也需要中断处理程序的相关 代码来实现 内核收到一个中断后 它将依次调用在该中断线上注册的每一个中 断处理程序 故每个中断处理程序必须知道它是否应该为这个中断负责 若不是 则应立即退出 3 s a s a m p l era n d o m 产生的中断对 d e 舾n d 鲫设备和 d e v 锄d o m 设备使用的熵池有贡献 从这 些设备读取 将会返回真正的随机数 从而有助于应用软件选择用于加密的安全 密钥 2 3 2 中断处理的顶半部与底半部机制 在系统响应硬件中断时 该中断同级的其他中断会被屏蔽 有些情况下处理 器上所有其他中断都会被屏蔽 为了提高系统的响应能力 i j n u x 系统将中断处理 过程分为了两个部分 顶半部和底半部 顶半部在接收到一个中断之后立即执行 只做有严格时限的工作 此时所有的中断被禁止 底半部稍后执行 其任务是执 电子科技大学硕士学位论文 行与中断处理密切相关但中断处理程序本身不执行的工作 最重要的是在底半部 执行的过程中系统响应所有的中断 目前l i 肌x 中最常用的底半部机制有软中断 t a s k l e t 以及工作队列 软中断是在编译期间静态分配的 软中断保留给系统中对时间要求最严格以 及最重要的下半部使用 目前内核中只有网络和s c s i 子系统直接使用软中断 t a s l 1 e t 是基于软中断实现的一种下半部机制 其与软中断的最大区别是t a s l d c t 可以动态创建不需要静态编译 两个同种类型的t a s l c l e t 不能同时执行 所以其实 现形式也比较简单 工作队列是一种通过创建内核线程将工作推后执行的形式 其执行在进程上 下文中 经常使用于需要获取大量内存或需要执行阻塞式陇 操作时选择工作队列 完成中断底半部处理 三种中断底半部处理机制之间的区别如表2 1 阍 表2 1中断底半部处理机制对照表 下半部机制运行环境执行特点选择依据 软中断中断上下文响应速度快数量较少尽量不使用 t a s k l e t中断上下文响应相对较快可动态创建同类中断不能同时执行 工作队列进程上下文 可睡眠 接口易于使用但开销大 2 4 同步机制 如果多个执行线程同时访闯和操作数据 就有可能产生各线程之间相互覆盖 共享数据的情况 造成被访问数据处于不确定状态 同时由于中断的存在以及对 称多处理器的出现 使得多线程并发执行的现象更加普遍 因此操作系统对共享 资源的保护显得越来越重要 l i 删x 提供了诸多的同步机制 较为常用的有原子操 作 自旋锁以及信号量 1 6 原子操作 所谓原子操作 就是该操作绝不会在执行完毕前被任何其他任务或事件打断 也就说 它是最小的执行单位 不可能有比它更小的执行单位 这里的原子实际 是使用了物理学里的物质微粒的概念 n u x 内核提供了两组原子操作接口 一组 针对整数进行操作 另一组针对单独的位进行操作 8 第二章l m l l x 设备驱动程序概述 自旋锁 自旋锁最多只能被一个可执行线程持有 如果一个执行线程试图获得一个被 持有的自旋锁 那么该线程就会一直循环等待 等待锁重新可用 如果锁未被使 用 请求锁的执行线程便能立刻得到它并继续执行 在任意时闻 自旋锁都可以 防止多于一个的执行线程同时进入临界区 有时自旋锁的用途可以明确地区分为 读锁和写锁 写锁要求完全互斥 属于独占性锁 而读锁允许多个读操作并发执 行 但不能进行写操作 此种读写锁为链表的操作带来极大的便利 信号量 i i 栅x 中的信号量是一种睡眠锁 如果有一个任务试图获得一个已经被占用的 信号量时 信号量会将其推进一个等待队列 然后让其睡眠 当持有信号量的进 程将信号量释放后 处于等待队列中的任务被唤醒并获得信号量 信号量在创建 时需要设置一个初始值 表示同时可以有几个任务访问该信号量保护的共享资源 初始值为l 就变成互斥锁 m u t e x 即同时只能有一个任务可以访问信号量保护 的共享资源 一个任务要想访问共享资源 首先必须得到信号量 获取信号量的 操作将把信号量的值减l 若当前信号量的值为负数 表明无法获得信号量 若当 前信号量的值为非负数 表示可以获得信号量 因而可以立刻访问被该信号量保 护的共享资源 当任务访问完被信号量保护的共享资源后 必须释放信号量 释 放信号量通过把信号量的值加1 实现 如果信号量的值为非正数 表明有任务等 待当前信号量 因此它也唤醒所有等待该信号量的任务 2 5 小结 l i 棚x 操作系统由于其内核稳定 功能强大在嵌入式领域中应用广泛 占据了 主流地位 本章主要阐述了l i m 设备驱动程序在内核中实现的一般方法以及重要 的工作机制 9 电子科技大学硕士学位论文 第三章a h b p c m c 队桥i p 核总体设计方案 随着深亚微米工艺技术日益成熟 芯片设计业正面临着设计质量难以控制 设计成本也越来越高的问题 口技术解决了当今芯片设计业所面临的难题 在s o c 设计中得到了广泛应用 采用具有合理互联协议或接口标准的s o c 总线可以使s o c 系统中的m 功能模块具有较好的可移植性 1 7 由a i l m 公司推出的a 髓片上总线 已成为一种流行的工业标准片上结构 p c m c 队标准通用接口已应用于多种场合 尤其是在数字电视领域 3 1a h b 总线简介 a h b 总线规范是a r m 公司设计的一种用于高性能嵌入式系统的总线标准 它作为高性能系统的骨干总线 主要用于高性能和高吞吐量设备之间的连接 一 个典型的a 船系统总线互联结构如图3 1 所示 系统中包含主设备 m 嬲t e r 从设备 s l a v e 仲裁器 a r b i t c r 译码器 d e c o d 盯 以及多路选择裂1 8 1 9 图3 1 峭略总线互联结构 1 a h b 主设备启动读 写总线操作 在任何时候 只能有一个总线主设备 在使用总线 l o 第三章a h b p c m c l a 桥口核总体设计方案 2 a h b 从设备响应 非启动 读或者写总线操作 从设备信号向a h b 主 设备指明当前数据传输的状态 成功 失败或等待 3 a h b 仲裁器当总线支持多个主模块时由总线仲裁器来仲裁占用总线的 传输模块 监视主设备发出的总线请求 根据内部设定的仲裁算法进行仲 裁并给出相应的控制信号 确定访问总线的下一个总线主设备 保证在任 何时候只有一个主单元可以进行数据传输 每个a h b 系统只能有一个仲 裁器 4 a h b 译码器译码每次传输的地址 提供传输中涉及的从设备的选择信 号 所有的a h b 实现方案中需要一个集中的译码器 5 多路选择嚣多路选择器使整个a j m 系统互连起来 他把所需的控制信 号和数据路由到相应的目的设备 为完成相应的路由功能 他分为主设 备到从设备多路选择器和从设备到主设备多路选择器 3 2p c m c i a 标准概述 为寻求一种扩展卡标准 1 9 8 9 年一个国际性组织p c m c 队成立了 该组织主 要是建立一个省电 小体积的整合性电子卡片的标准 提高移动计算机的互换性 该组织在1 9 9 5 年1 月公布p cc a r ds t a l l d a f d1 9 9 5 同时更名为 p cc a r d p c 卡 现己应用于多种场合 2 0 p cc a r d 有着统一的物理规格 6 8 引脚 信用卡大小 可进行热插拔 可以非 常方便的进行桌面或者移动环境的功能扩展 当前定义的p cc a r d 分为两种 1 6 b i t p cc a r d 和c a r db 啦卡 1 6 b i tp cc a r d 也就是传统上被称作p c m c i a 卡 它是一 种异步接口 数据线1 6 位 地址线2 6 位 可以方便的扩展m 哪呵和i o 应用 c a r db 啪是p c m c n 推出的新一代高性能3 2 位总线主控接口 它的地址和数据都 是3 2 b i t 支持突发传输 工作频率为3 3 m h z 如图3 2 所示 在一个完整系统中p c m c 队体系共可分为 硬件 软件2 部 分1 2 1 1 电子科技大学硕士学位论文 软件部分硬件部分软件部分 图3 2p m c i a 主机端系统结构图 3 2 1p c m c i a 主机端硬件体系 1 主系统 h o s ts y s t e m 此部分是整个系统的核心部分 包括c p u 舢和c a c h e 等等 主要提供 整个p c 运行所需要的基本物理设备 此部分和p c m c l a 有关系的主要是关于 b i o sc m o ss 咖 p 的设定 2 主总线 h o s t b 珊 此部分就是p c 的扩充槽 例如常见的i s a e i s a b u s 和p c i 在p c ib u s 上 由于数据总线为3 2 位 而且主频速度也可达3 3 z 所以才能应付c a r db l l s 的规格 但是在p c i 总线上并不直接提供r q 和d m a 的功能 所以大部分p c it o p c m c n 的芯片还是将取q 信号接到i s ab i l s 上 但是在d m a 方面 则是各厂 家都有各自标准 3 p c m c 队芯片 p c m c i ac l l i p 此部分是接口的主控芯片 也正是本课题所要设计的硬件部分 通过这一主 控芯片扩展的p c m c 认卡即可在主系统中工作了 1 2 第二章a h b p c m c i a 桥i p 核总体设计方案 4 p c m c i a 卡 对于系统而言 p c m c 队卡主要包括m e m o r y 卡和 卡两大部分 p c m c n 卡共有2 种存储空间 普通存储空间 c o m m o nm 锄o f y 和属性存储空间 缸t r i b u t c m 锄o f ys p a c c 阎 普通存储空间可作为大容量存储卡的存储空问 也可以作为 卡的内存缓冲区 属性存储空间包含c i s 设备信息结构 以及配置寄存器 c i s 描述了卡的设备i d 访问速度 所需电压等信息 配置寄存器提供了可选择 的功能 主系统可通过对配簧寄存器的修改使p c m c n 卡完成不同的功能 属性 存储空问的最大特点是信息仅仅被放置在偶数字节地址空间 奇数字节地址空间 没有被定义 另外p c m c n 卡通常也会有i 0 空刚存在 3 2 2p c m c i a 主机端软件组成 1 客户驱动程序 a i e n t 此部分专门用柬初始化p c m c i a 卡 此驱动程序会向卡服务程序要求 p c m c 认卡所需要的i 0 端口 m c m o r yw i n d o w m qc h a n n c l 或是d m a c h a n n c l 经过这一步骤之后 p c m c 队卡就如同插在h o s tb u s 一样了 此时 可通过刚刚 所设定的置 o 端口 m e m o f vw i n d a w i r qc h a n n e l 或是d m a c h a n n e l 去直接存取 p c m c n 卡 而此时p c m c 队c h i p 几乎已经变成透明了 矧 2 卡服务软件f c a 神s e r v i c e 曲 此部分的工作和p c m c i a 芯片无关 因为所有的和硬件有关的动作会由插槽 服务程序完成 此部分的主要工作就是控制整个系统资源的使用 并且通过插槽 服务程序提供控制p c m c 队卡的各项功能 3 插槽服务程序 s 0 c k e ts e r v i c e s 此部分主要工作和p c m c 认芯片部分息息相关 就是完成卡服务程序所要求 的各项功能 具体功能如下所诉 1 提供p c m c n 卡所需的电源 2 r e s e t 重霓 p c m c n 卡 3 将系统可用的m e m o r ys p a c e 设定给p c m c i a 卡 4 将系统可用的姻端口设定给p c m c l a 卡 5 将系统可用的i r qc h a l l n e l 设定给p c m c 队卡 6 将系统可用的d m a c h a 衄e i 设定给p c m c i a 卡 7 对p c m c n 卡上的内存 提供区块读 写 拷贝和清除的功能 电子科技人学硕十学位论文 8 读取p c m c n 卡上的c l s 的功能 插槽服务程序通过读写p c m c 认芯片的寄存器来完成实际的工作 而且插槽 服务程序只服务于卡服务程序一个 而卡服务程序却要服务所有的客户端驱动程 序 通常 只要是不同的p c m c i a 芯片就需要不同的插槽服务程序来存取修改 p c m c i a 芯片上的寄存器 除非p c m c i a 寄存器结构可以兼容 此p c m c 队驱动 程序才可以互用 4 应用程序 a p p i i c a t i o n s 此部分是和使用耆息息相关的部分 由图3 2 可知应用程序可以通过三种不 同的路径对p c m c l a 卡进行操作 1 直接对p c m c 队卡操作 2 通过操作系统再经由客户端驱动程序对p c m c n 操作 3 通过a i e n t 驱动程序对p c m c i a 卡操作 3 3a h b p c m c i a 桥i p 核的设计流程 基于口复用的设计方法 在s o c 设计中得到了广泛应用 i p 是指可用来生成 a s l c 和c p l d 的逻辑功能块 又称i p 核 i p c o r e 或虚拟器件 v c 设计者可 以购买第三方或者使用自己内部已有i pc o f c 来快速获取并实现某一系统功能 然 后再辅以一些外围电路和特定应用单元 组合在一起 快速实现自己的设计 通 过这种方式设计者可以更专注于整体系统功能的设计 有利于提高设计的效率和 正确性 并降低成本 目前数字口已得到了充分的发展 可以很方便地购买到i p 核并整合到s o c 的设计中 2 4 l l p 核的设计有着相对标准的设计流程 从设计之初就要从硬件 软件两个不 同角度进行准备 a h b p c m c 从桥i p 核也遵从这个原则 硬件丌发主要是按照规 格进行模块划分并进行r t l 设计 针对r t l 设计的e d a 验证 软件丌发包括驱 动程序的丌发 操作系统的移植以及应用测试程序的设计 最终将i p 核硬件以 f p g a 形式与软件协同验证 图3 3 清晰的显示了整个1 p 核设计流程以及各个设 计开发部分的相互关系 1 4 第三章a h b p c m c i a 桥l p 核总体设计方案 图3 3l p 核设计流程图 3 4a h b p c m c i a 桥i p 核的具体功能 本课题所设计i p 核的a h b 接口端可以连接a h b 总线 由此就在a h b 总线 上实现了一个p c m c i a 控制器 从而实现对各种p c m c 队卡的应用 本i p 核在 系统中所处位置如图3 f 4 所示 a h b b 僻 砒c k s s 心 m 笛ss t o f a g c d e oa p p h c 缸 1 蚕 图3 4a h b p c m c i a 桥i p 核系统中位置圈 本i p 核具体规格如下 1 支持i d l e b u s y n o n s e q 和s e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 现代防诈骗知识培训内容课件
- 浙江平阳中学2026届化学高二上期中综合测试试题含解析
- 现代服务基础知识培训课件
- 2026届辽宁省葫芦岛市辽宁实验中学东戴河分校高一化学第一学期期末学业水平测试试题含解析
- 现代常见汉字字音课件
- 2025年教师资格证考试(中学科目二)教育知识与能力重点难点突破试卷
- 2025年小学数学毕业升学考试易错题型高效训练模拟试卷
- 现代农业操作课件
- 研究生求极限题目及答案
- 2026届北京市昌平区新学道临川学校高二化学第一学期期中质量跟踪监视试题含解析
- 客运驾驶员安全行车课件
- 【初一】【七年级】【语文上】【秋季】开学第一课《“语”你相遇今朝》【课件】
- 湖南省长沙市华益中学2024-2025学年九年级上学期开学测试语文试题(答案)
- 2025年食品安全监管局工作考核试题及答案
- 民建支部管理办法
- 脑膜刺激征临床表现
- 集团公司财务管理制度
- 思想道德与法治全册教案
- 某国有企业精细管理降本增效经验交流汇报材料企业降本增效.doc
- 主要负责人任职证明
- 潜水非完整井单孔抽水试验经验公式
评论
0/150
提交评论