IDSPBIOS4:线程调度pa.ppt

上传人:san****019 文档编号:7327714 上传时间:2020-03-19 格式:PPT 页数:14 大小:391.60KB
返回 下载 相关 举报
IDSPBIOS4:线程调度pa.ppt_第1页
第1页 / 共14页
IDSPBIOS4:线程调度pa.ppt_第2页
第2页 / 共14页
IDSPBIOS4:线程调度pa.ppt_第3页
第3页 / 共14页
点击查看更多>>
资源描述
DSPBIOS4 线程调度 part2 4 6信号灯 信号量 1 应用环境 信号灯经常用于在一组竞争的任务间协助访问共享资源 DSP BIOS提供了一组基于信号灯的用于任务间同步和通讯的函数 SEM模块提供了一组用于访问信号灯对象的函数 SEM对象是计数信号灯 countingsemaphores 既可以实现任务同步 也可以实现互斥访问 使用方法 计数信号灯对象有一个内部计数器 计数值对应资源的有效性 如果计数值大于0 任务在请求信号灯时不会阻塞 4 6信号灯 2 创建和删除 动态创建和删除 SEM create SEM delete配置工具创建SEM pend SEM pend用于等待一个信号灯 如果信号灯计数值大于0 则SEM pend只是简单的将计数值减1并返回 否则 SEM pend等到另一个线程调用SEM post触发 post 这个信号灯 即释放资源 SEM pend函数的超时参数允许任务等待一段时间 也可以无限等待 取值SYS FOREVER 或不等待 取值0 SEM post 给一个信号灯发信号 signal 如果有一个任务正在等待这个信号灯 SEM post将这个任务从信号灯队列中移去 并将它放入就绪任务队列等待调度 如果没有任务等待这个信号灯 SEM post简单地将计数值加1并返回 4 6 1 信号灯的例子 4 7邮箱 应用场合 任务同步 把消息从一个任务传递给另外一个任务 邮箱由MBX模块管理 SWI对象中的邮箱则是独立管理的 邮箱的创建 与信号灯类似邮箱的使用 可代替队列 信号灯MBX pend mbx msg TIMEOUT MBX post mbx msg TIMEOUT 4 8定时器 中断和系统时钟 定时器和它产生的硬件中断 一般的DSPs都有一个或多个片上定时器 timers 可以按一定的周期产生硬件中断 DSP BIOS通常使用其中一个定时器作为系统时钟 systemclock 源 CLK模块和CLK对象 CLK模块使用片上硬件定时器可以实现接近CPU指令周期的时间分辨率 在配置工具中指定系统时钟参数 还可以添加更多的CLK对象在每次定时器中断时调用函数 4 8定时器 中断和系统时钟 DSP BIOS两种计时方式 1 高 低分辨率计时 2 系统时钟高分辨率计时 timer的计数值低分辨率计时 时钟中断的次数 时钟HWI中加1系统时钟 在在配置工具中设置 默认低分辨率计时和系统时钟 系统时钟还可由其它事件驱动 系统时钟驱动PRD模块 周期PRD函数 一到多个系统时钟计数才执行一次 4 8 1高精度和低精度时钟 设置 在CLK管理器的属性页中可以设置是否让DSP BIOS使用片上定时器驱动高 低分辩计时 在C6000平台上这是不可选择的 在C54x平台上这是可选的 在C6000平台上还可以选择使用那个定时器 时钟HWI函数CLK F isr的操作 1 低分辩计时加1 2 在中断服务程序的上下文中依次调用每个CLK对象的函数CLK getltime可以得到低分辩时间CLK gethtime可以得到高分辩时间注意 CLK函数不能调用HWI enter和HWI exit 因为DSP BIOS在调用CLK F isr时已经内部调用了这对函数 4 8 2系统时钟 概念 系统时钟是一个32位计数器 在每次调用PRD tick函数时这个计数器加1 系统时钟的驱动 系统时钟可以由低分辩计时驱动 也可以由外部事件驱动 超时参数 很多DSP BIOS函数都有一个超时参数 DSP BIOS使用系统时钟决定超时时间是否到期 如 TSK sleep 1000 时钟HWI中断调用PRD clock时钟对象的函数PRD F tick PRD F tick会调用PRD tick使系统时钟加1 4 9周期函数管理器和系统时钟 PRD管理器中可以建立对象来周期地执行函数PRD模块的驱动 DSP BIOS使用系统时钟驱动PRD模块多个PRD对象 可以同时有多个PRD对象被系统时钟驱动 PRD对象的周期 PRD对象的周期决定了函数被调用的频率 PRD对象的周期是按系统时钟计数定义的 4 9 1调用PRD对象的函数 1 调用PRD tick时执行的操作 1 系统时钟计数器PRD D tick加1 2 触发一个PRD swi软件中断PRD swi的周期 各个PRD对象的周期的最大公约数且是2的幂 比如 有3个PRD对象 它们的周期分别12 24和36 那么PRD swi每4个系统时钟计数 tick 时运行一次 而不是6个tick 当建立一个PRD对象时 一个PRD swi对象自动加入到SWI管理器下 4 9 1调用PRD对象的函数 2 PRD swi运行时的操作 周期函数的运行是延迟到软件中断PRD swi的上下文中运行的 而不是在HWI的上下文中运行的 所以 周期函数的优先级可看作是和SWI相同 CLK函数和HWI函数同 小结 高 低分辨率计时 系统时钟和PRD对象的关系
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!