注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

深海精灵

水里的一滴油,透明地飘零在空气中。。。

 
 
 

日志

 
 
关于我

神秘诡谲,令人费解。可以很执着,也可以很破坏。冰冷,沉默。渴望单纯,渴望自由。躲在文字的背后,用心聆听世界,用直觉洞察世情。

网易考拉推荐

uCOS实时操作系统——初次在STM32上的移植  

2011-04-01 16:44:16|  分类: uCOS实时操作系统 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

  基于IAR Emmbedded Workbench IDE 4.42平台,选用力源小板的移植作范例,不懂的先抄进去,目的是让操作系统尽快在目标板上跑起来。

    uC/OS在STM32上和移植(一) - 深海精灵 - 深海精灵

   App为用户应用,BSP为目标板设置。

  从App.c里int main(void)函数开始。

  BSP_IntDisAll()关掉所有中断。

  OSInit()初始化操作系统,包括系统的TCB、空闲任务和时钟节拍等都在这里进行初始化。

  OSTaskCreateExt(AppTaskStart,             // 用任务建立任务
            (void*) 0,
                    (OS_STK*) &AppTaskStartStk[App_TASK_START_STK_SIZE-1],
                    APP_TASK_START_PRIO,     //  任务优先级
                    APP_TASK_START_ID,       //  任务ID号
                    (OS_STK*) &AppTaskStartStk[0],
                     App_TASK_START_STK_SIZE,        //  堆栈容量
                     (void*) 0,
                     OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);

  OSTaskNameSet是设置任务名称,没有很大作用。

  OSStart()开始操作系统的运用。

 

  其它任务都在AppTaskStart()函数里创建。

  该函数一开始要对目标板进行初始化BSP_Init(),设置STM32的系统时钟,I/O口设置,定时器等。STM32有一个嘀嗒定时器可用于作时钟节拍,在目标板初始化时要初始化Systick定时器。

  在中断文件stm32f10x_it.c里写入Systick中断程序

  void SysTickHandler(void)
  {

      OS_CPU_SR  cpu_sr;

      OS_ENTER_CRITICAL();
      OSIntNesting++;
      OS_EXIT_CRITICAL();
      OSTimeTick();
      OSIntExit();
  }

  在stm32f10x_vertor.c里,把PendSVC改为OS_CPU_PendSVHandler,OS_CPU_PendSVHandler函数定义在os_cpu_a.asm里,所以在中断H文件里要声明该函数,并#include "ucos_ii.h"。

  AppTaskCreate()建立任务,使用OSTaskCreateExt函数,并定义任务的优先级别和堆栈容量。之后编写自己需要的任务程序就可以了。

  在仅对uC/OS略知一二的情况下,知道OSTaskSuspend()挂起任务和OSTaskResume()恢复任务这两个函数,就可以让操作系统在目标板上跑起来,并实现一些简单的功能了。

  个人感觉力源小板的工程文档不是很好,建议不要直接套用。

  评论这张
 
阅读(3844)| 评论(2)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017