天脉(ACoreOS)操作系统培训第六章:异常中断与定时器课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《天脉(ACoreOS)操作系统培训第六章:异常中断与定时器课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 天脉 ACoreOS 操作系统 培训 第六 异常 中断 定时器 课件
- 资源描述:
-
1、第六章第六章异常、中断与定时器异常、中断与定时器n 异常处理与信号机制异常处理与信号机制n 中断服务程序中断服务程序n 系统时钟、高精度时钟、看门狗定时器系统时钟、高精度时钟、看门狗定时器2提纲提纲异常处理概述异常处理概述n异常异常为为CPUCPU产生的正常执行流程外的事件。如,产生的正常执行流程外的事件。如,traptrap和断点指令、零除、浮点或整形溢出、非法和断点指令、零除、浮点或整形溢出、非法指令或地址错等指令或地址错等n 异常将产生异常将产生“内部内部”中断中断n 操作系统在系统初始化阶段安装异常处理程序,操作系统在系统初始化阶段安装异常处理程序,这些程序在异常发生时被调用,并可调用
2、用户定这些程序在异常发生时被调用,并可调用用户定义的异常处理程序义的异常处理程序n 异常处理程序通过发送信号与用户任务进行通信。异常处理程序通过发送信号与用户任务进行通信。3异常处理概述异常处理概述n异常异常与不同体系结构相关,本培训教程仅讨论异与不同体系结构相关,本培训教程仅讨论异常的通用处理。不同体系结构相关处理,可参考常的通用处理。不同体系结构相关处理,可参考硬件手册。硬件手册。4信号信号5信号信号n信号信号类似一种软中断类似一种软中断n 信号发送给指定任务,用于通知发生某种异步事信号发送给指定任务,用于通知发生某种异步事件件n 任务在接收到指定信号后,执行相应的信号处理任务在接收到指定
3、信号后,执行相应的信号处理n 信号处理完成后,正常任务执行被恢复(除非信信号处理完成后,正常任务执行被恢复(除非信号引起异常发生)号引起异常发生)6信号信号n 信号机制建议使用于通常的任务间通信信号机制建议使用于通常的任务间通信n信号可能以非常高的优先级被处理,如信号到达时,信号可能以非常高的优先级被处理,如信号到达时,任务正采用优先级继承或优先级天花板任务正采用优先级继承或优先级天花板n打断任务正常执行流程(最好创建多个任务,而不采打断任务正常执行流程(最好创建多个任务,而不采用在一个任务内通过信号实现多种操作)用在一个任务内通过信号实现多种操作)n可能引入重入的问题,当任务执行的信号处理程
4、序与可能引入重入的问题,当任务执行的信号处理程序与任务正常代码调用相同的接口时任务正常代码调用相同的接口时n任务通常采用信号量实现对临界区的互斥访问,假设任务通常采用信号量实现对临界区的互斥访问,假设任务在临界区访问时接收信号,如果信号处理中获取任务在临界区访问时接收信号,如果信号处理中获取该互斥信号量,同样获取成功,但资源互斥访问可能该互斥信号量,同样获取成功,但资源互斥访问可能被破坏被破坏7注册一个信号注册一个信号n 注册一个信号处理程序注册一个信号处理程序signal(signo,handler)signal(signo,handler)signosigno信号类型信号类型handler
5、 handler 信号处理程序信号处理程序返回先前安装的信号处理程序,或者返回返回先前安装的信号处理程序,或者返回SIG_ERRSIG_ERR8n 异常处理与信号机制异常处理与信号机制n 中断服务程序中断服务程序n 系统时钟、高精度时钟、看门狗定时器系统时钟、高精度时钟、看门狗定时器9提纲提纲中断中断n 中断允许外部设备通知中断允许外部设备通知CPUCPU特定事件发生特定事件发生n 当发生外部中断时,用户安装的处理程序被执行当发生外部中断时,用户安装的处理程序被执行n 中断发生时占用中断时间,而不是任务执行时间中断发生时占用中断时间,而不是任务执行时间n 目标板定时器是常见中断源,可以辅助了解
6、外部目标板定时器是常见中断源,可以辅助了解外部中断的工作原理中断的工作原理10中断处理示例中断处理示例-PowerPC-PowerPC11中断处理示例说明中断处理示例说明n PowerPCPowerPC有单独的外部中断引脚。板级支持包有单独的外部中断引脚。板级支持包(BSPBSP)可以支持外部中断控制器实现中断嵌套。)可以支持外部中断控制器实现中断嵌套。n 中断表中中断入口数量取决于中断表中中断入口数量取决于BSPBSP中中断控制器的中中断控制器的能力。目前中断向量表最多可支持能力。目前中断向量表最多可支持256256个。个。n 外部中断的处理流程外部中断的处理流程n保存保存CPUCPU寄存器
7、寄存器n从中断控制器中读取中断号从中断控制器中读取中断号n调用用户连接的中断处理程序(用户关心)调用用户连接的中断处理程序(用户关心)n清中断控制器状态清中断控制器状态n恢复恢复CPUCPU寄存器并返回寄存器并返回12中断和优先级中断和优先级中断可以抢占最高优先级的任务中断可以抢占最高优先级的任务13中断栈中断栈n 系统使用独立中断栈系统使用独立中断栈n 中断栈在系统初始化阶段分配中断栈在系统初始化阶段分配n 中断栈在生成操作系统时配置中断栈在生成操作系统时配置n 系统支持中断嵌套,中断栈配置时应充分考虑嵌系统支持中断嵌套,中断栈配置时应充分考虑嵌套时最大栈使用情况套时最大栈使用情况14中断服
8、务执行限制中断服务执行限制n 任务只有中断服务执行完成后才能执行任务只有中断服务执行完成后才能执行n 中断服务中限制使用操作系统机制,特别是中断中断服务中限制使用操作系统机制,特别是中断不能够阻塞不能够阻塞n不能够调用不能够调用ACoreOs_semaphore_obtain()/semTake()n不能够调用不能够调用malloc(内部使用信号量)(内部使用信号量)n不能够调用不能够调用I/O系统程序(如,系统程序(如,printf())n参考指南给出了每个函数能否在中断服务程序参考指南给出了每个函数能否在中断服务程序调用的限制说明调用的限制说明15中断服务编制指南中断服务编制指南n 尽可能
9、保证中断服务程序简短尽可能保证中断服务程序简短n延迟低级别和同优先级的中断延迟低级别和同优先级的中断n延迟所有任务延迟所有任务n调试困难调试困难n避免使用浮点操作避免使用浮点操作n 浮点操作速度较慢浮点操作速度较慢n 用户必须自行保存和恢复浮点相关寄存器用户必须自行保存和恢复浮点相关寄存器n尽可能将处理移交给任务处理尽可能将处理移交给任务处理n 任务处理时间更长任务处理时间更长n 时间要求更低时间要求更低16典型的中断服务典型的中断服务n 读和写存储器映射的读和写存储器映射的I/O寄存器寄存器n 与任务通信采用如下方式与任务通信采用如下方式n写存储区写存储区n非阻塞形式写到消息队列非阻塞形式写
展开阅读全文