关于DSP2812上uCOS-II操作系统的说明.docVIP

  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文档。上传文档
查看更多
关于DSP2812上uCOS-II操作系统的说明

关于uCOS-II操作系统的说明 工程文件的说明 工程的所有文件在ucos目录下,打开工程文件后可以看到下面一些源文件 ·cmd文件 工程的CMD文件与一般程序中的CMD 文件相同。由F2812.cmd和DSP281x_Headers_nonBIOS.cmd两个文件组成。其中对F2812.cmd文件进行了一些修改,将代码段定义在FLASH中,.bss和.ebss段都定义在低64K的数据空间中,以保证定义在.ebss段中的人物堆栈可以通过堆栈指针被访问。 ·C语言和汇编源文件 这部分文件在CCS窗口的Source文件夹下可以看到,主要有下面一些文件: Ucos_ii.c:操作系统的头文件包含文件。 OS_TickISR.asm:主要是OSTickISR( )函数,是操作系统时钟节拍中断的服务函数。 OS_Sw.asm:主要是OSCtxSw( )函数,非中断级任务切换函数,也是系统完成任务切换调用的30号中断(即USER 11 软中断)的中断服务函数。 OS_StartHighRdy.asm:主要是OSStartHighRdy()函数,在操作系统开始运行后(OSStart()函数开始执行以后)启动优先级最高的任务,一般情况下该任务是TaskStart任务。 OS_ISR.asm:中断服务程序的汇编源文件,尽量把要使用的中断服务程序放在这个文件中,使用汇编语言按照OS_SCIARXISR( )的结构编写。关于中断服务程序后面会进一步加以说明。 OS_IntSw.asm:主要包含中断级任务切换函数OSIntCtxSw( ),完成中断级任务切换。 OS_GlobalStack.c:该文件中主要是全局任务堆栈的定义。 OS_cpu_c.c:该文件中主要是任务堆栈初始化函数OSTaskStkInit( )及其他一些与CPU相关的C语言函数的定义。 Ex1l.c:工程的主函数文件。 DSP281x_xxxx.c:例程中DSP2812外设操作的一些源代码,可以在这些文件中添加必要的操作外设的函数。 ·头文件 这部分主要是操作系统的配置可提供的一些函数的源文件,以及2812一些寄存器的定义,主要有两个文件需要注意: os_cfg.h:移植操作系统得配置文件,其中的宏定义参考蓝色的《嵌入式实时操作系统uCOS-II原理与应用》一书的第九章。 os_globalstack.h:该文件主要是关于系统堆栈的一些宏定义,主要有两个量:TASK_STK_SIZE,任务堆栈大小的定义,这里定义为128;N_TASKS,系统中除了空闲任务,开始任务(TaskStart)外的任务个数,这里为2,当系统中需要更多的任务时,这个值夜需要修改。 堆栈的大小与进行任务切换时需要保存的寄存器的个数和任务中局部变量的个数都有关,因为CCS环境中局部变量的存储空间在堆栈中,一般情况下128是够用的,也是必须的,可以根据实际需要增加。 uCOS-II操作系统的说明 uCOS-II操作系统实际上只是一个进行任务调度和进程同步的一个实时内核。或者说,系统只提供了一些进行任务调度和进程间通信的函数和机制,用户在这个内核的基础上构建自己的实时系统。在uCOS-II中编写程序和在不用操作系统得环境中编写程序基本上是一样的。不同的是,没有操作系统的程序中,只有主程序是一个无限循环,其它所有的函数都通过中断和主循环被调用。由主循环串起常用的操作,用中断串起由异步事件触发的操作。而在uCOS-II中,系统需要完成的功能被划分为若干个相对独立的任务,单独来看,每一个任务都如主程序一样是一个无限循环。操作系统根据优先级优先的原则调度不同的就绪任务对CPU的使用权。不同的任务之间可以通过信号量,消息队列和消息邮箱等实现通信。当一个任务由于等待某任务而处于等待状态时,则已就绪的最高优先级任务获得CPU的使用权,进入运行状态,从而保证了当某个任务处于等待状态时CPU没有停止下来,其它任务可以在CPU上运行。 ·uCOS-II中的程序框架 uCOS-II的程序包括main函数,开始任务(Taskstart)和若干其它任务构成。绝大部分操作都是由任务完成的,操作系统不停的在不同的任务之间切换。而中断服务程序则尽可能简单,只完成发送信号量等操作。程序从main函数开始执行,完成一些初始化操作之后,启动多任务操作,开始运行优先级最高的任务(很多情况下是开始任务TaskStart)。操作系统通过定时中断或其它方式(如OSTimeDly()函数)触发一次任务调度,完成在不同的任务之间切换。 Main函数的示意性代码如下: void main (void) { 若干系统的初始化操作; OSInit();//完成操作系统,任务控制块(TCB)、事件控制块(ECB)//的初始化,并完成空闲任务和统计任务的创建(如果运行统

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档