Chinaunix首页 | 论坛 | 博客
  • 博客访问: 739447
  • 博文数量: 124
  • 博客积分: 3156
  • 博客等级: 中校
  • 技术积分: 1584
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-02 10:29
文章分类

全部博文(124)

文章存档

2012年(3)

2011年(2)

2010年(61)

2009年(34)

2008年(24)

我的朋友

分类: LINUX

2009-04-27 16:36:29

BIOS模块介绍
     BIOS模块也称为对象,这些对象不用你用C语言定义,在BIOS配置文件中插入一个对象即可,常用模块有CLK PRD TSK SEM MBX QUE
     
CLK 模块:
   此模块很为时钟中断模块,但你建立一个模块的时候,必须关联一个函数,它是一个HOOK函数,被插入到时钟中断服务程序中。
    CLK_getprd():返回prd寄存器的值
    CLK_start(); 开启时钟,只有时钟停止了用才有意义。
    CLK_stop();  停止时钟
 
PRD 模块:
  此模块称为周期性模块,因为和它关联的函数会被周期性调用,和CLK差不多,唯一不同的是它的周期可以自己设置。
    PRD_getticks(void):返回32位周期函数管理计数值,也就是周期模块对象的tick值。
    PRD_start(PRD_Obj* period):开始一个周期模块对象
    PRD_stop(PRD_Obj* period):停止一个周期模块对象
    PRD_tick(void):对周期模块对象的tick加一,和任务模块的tick是两码事。
 
TSK 模块:
    TSK_itick():把tick加一,并进行任务切换,结果可能就是导致更高级别的任务抢占运行,而自己处于ready状态。
    TSK_tick():同上,但要注意:SK_itick()只能用在中断中,而TSK_tick则用在任务中。
    TSK_sleep():和上面两个函数看似有点相同,但TSK_sleep会导致自己的任务block,并延时ntick。
    TSK_time();返回tick的值,和PRD_getticks()不同,PRD_getticks()返回的一个记录时钟中断次数的中断寄存器的值。
    TSK_yield();同优先级的任务切换
   
注意:CCS这个编译器bug很多,在调用别的模块的函数时,一定要声明函数的出处。
阅读(1953) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~