首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

μC/OS-III在Cortex-M3处理器上的移植 04

μC/OS-III在Cortex-M3处理器上的移植 04

Cortex-M3内核包含了一个SysTick定时器,可以用来给μC/OS-III提供系统时钟节拍。SysTick初始化和ISR的源代码实现分别如下:

   
    μC/OS-III新增了时间戳功能,用于测量中断禁用时长、代码执行时长和确定事件发生时间等。时间戳定时器可以由DWT(Data Watchpo int and Tracc)的时钟周期计数器CYCCNT充当,该计数器是一个自由运行的32位递增计数器,溢出时自动重载为0,周而复始。时间戳定时器初始化和读取函数源代码实现分别如下:
    此外,本移植过程的BSP还涉及RCC、GPIO、NVIC和LED/LCD等硬件的初始化函数和驱动程序。
   
    3 测试
   
    首先不加任何用户任务来测试移植好的μC/OS-III内核自身运行情况,待验证内核正常运行之后,编写TaskLed1、TaskLed2、TaskLe d3、TaskProfile四个任务,其中前3个任务被赋予相同的优先级(本移植是假设使能了μC/OS-III的轮转调度功能),实现对3盏LED灯不停地
   
    闪烁;而TaskProfile的功能是在液晶屏上显示上下文切换次数。
  
  
    运行结果如图2所示。图中3盏LED灯不停地闪烁,验证了μC/OS-III的相同优先级任务轮转调度的特征;LCD上显示CtxSwCtr的值一直在增加,指示不断发生上下文切换。系统连续稳定运行5个小时以上没出现任何问题,可见本移植是成功的。
   
    结语
   
    本文主要论述了基于Cortex-M3内核处理器上μC/OS-III的移植过程并给出关键代码,移植后的μC/OS-III能够稳定运行于STM32F103RB T6处理器上。本移植能通用于大部分Cortex-M3内核的处理器,并对于将μC/OS-III移植到其他体系结构的处理器上具有参考价值。
返回列表