新疆喜乐彩玩法

Keil uCos 2.52 stm32 【worldsing笔记】

2019-12-11来源: eefocus关键字:Keil  uCos  stm32

1、uCOSii V2.52 
   a、加了7个可以配置的钩子函数宏 
    #define OS_TASK_CREATE_HOOK_EN    0    /* 任务创建时调用钩子函数      使能 1 / 禁止 0                    */ 
    #define OS_TASK_STAT_HOOK_EN      0    /* 统计任务运行时调用钩子函数  使能 1 / 禁止 0                    */ 
    #define OS_TASK_SW_HOOK_EN        1    /* 任务调度时调用钩子函数      使能 1 / 禁止 0                    */ 
    #define OS_TIME_TICK_HOOK_EN      1    /* 滴答中断时调用钩子函数      使能 1 / 禁止 0                    */ 
    #define OS_TCB_INIT_HOOK_EN       0    /* TCB初始化时调用钩子函数     使能 1 / 禁止 0                    */ 
    #define OS_TASK_IDLE_HOOK_EN      0    /* 统计任务运行时调用钩子函数  使能 1 / 禁止 0                    */ 
    #define OS_INIT_BEGIN_HOOK_EN     0    /* OS初始化开始时调用钩子函数  使能 1 / 禁止 0                    */ 
    #define OS_INIT_END_HOOK_EN       0    /* OS初始化结束时调用钩子函数  使能 1 / 禁止 0                    */ 
    b、加了创建任务是自动分配栈接口OSSetupTask和宏,也可以用原生的OSTaskCreate(),OSSetupTask(任务名, 优先级); 
    #define  OS_TASK_AUTO_STK_SIZE   128  /* 默认用户任务栈大小 单位类型:OS_STK                             */ 
    #define  OS_MAX_TASK_AUTO_STK      2  /* 使用默认栈的任务数,0 不使用,必须小于等于 OS_MAX_TASKS          */ 
                                          /* 使用默认分配栈,每个栈大小都是OS_TASK_STK_SIZE                  */ 
    OS_MAX_TASK_AUTO_STK 定义为0要自行定按照uCos标准接口写应用代码; 
    c、应用程序无需定义main(),无需对SysTick初始化(在OS_CPU_C.c中完成),定义MainTask即可 
    void  MainTask (void *pArg) 
    { 
        //这里放入板子硬件初始化代码 
        //创建其他任务 
        OSSetupTask(Task0, 2); 
        while(1) 
        { 
            OSTimeDly(100); 
            pArg = pArg; 
        } 
    } 
    d、系统默认开启任务调度时调用钩子函数和滴答中断时调用钩子函数 
    当LED在任务正常调度时以10:90 个Tick闪烁 
    当LED在任务非正常调度时以1:1 个Tick闪烁 
    #define LED_GPIO        GPIOE                               /*LED IO口                                 */ 
    #define LED_GPIO_PIN    GPIO_Pin_12                         /*LED IO口引脚号                            */ 
    #define LED_GPIO_CLK    RCC_APB2Periph_GPIOE                               /*LED IO时钟名                   */ 
    #define LED_ON()        LED_GPIO->ODR &= ~LED_GPIO_PIN      /*LED开 低电平                              */ 
    #define LED_OFF()       LED_GPIO->ODR |=  LED_GPIO_PIN      /*LED开 高电平                              */ 
    #define LED_REV()       RevBit(LED_GPIO->ODR, 12)           /*LED 状态反转                              */ 
2、stm32 Lib V3.5 
    a.startup_stm32f10x_md.s 把默认的软件中断和定时器中断名改为: OS_CPU_PendSVHandler  和  OS_CPU_SysTickHandler 
    b、stm32f10x.h库检测关闭,定义为:#define assert_param(a)

3、在工程设置选项卡C/C++ 定义cpu类型 STM32F10X_MD

4、测试环境Keil MDK 4。7a  stm32f103vb

 

 

应用Demo:

#include "includes.h" 
void Task0 (void *pArg);

/*   主任务 
*/ 
void  MainTask (void *pArg) 

     OSSetupTask(Task0, 2); 
    while(1) 
    { 
         OSTimeDly(100); 
        pArg = pArg; 
    } 
}

/*   其他任务 
*/ 
void Task0 (void *pArg) 

    int cnt; 
  cnt = 0; 
    while(1) 
    { 
        OSTimeDly(10); 
        pArg = pArg; 
        cnt++; 
        if(cnt == 100) 
            while(1); 
    } 
}


关键字:Keil  uCos  stm32 编辑:什么鱼 引用地址:http://news.zjgsmm.com/mcu/ic482601.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:stm32_CAN总线知识
下一篇:OSStartHighRdy()一去不复返【worldsing笔记】

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

MDK(KEIL5)如何生成.bin文件
最近师傅要求我们利用keil5生成.bin文件,但是在网上查找了很多资料,也按照网上的方法来设计,但是结果都不如意,没有出来。今天早上有折腾了一段时间,历经千辛万苦,终于生成了.bin文件了。虽然写得有点啰嗦,看起来比较繁琐,但一步一步跟着操作,你会发现还是很简单的,下面分享一下,希望能帮到各位小伙伴。由于语言和能力不足,如果有错,还劳烦大佬斧正。生产.bin文件方法有两种,一种是打开安装路径中的中的fromelf.exe,另一种是如我下图所示方法。下面我介绍下我所有的方法。点击User栏,将Run#1打勾,并在后面的方框中填入生成.bin的路径。我的路径为:fromelf(一个空格) --bin(一个空格) --output
发表于 2020-01-19
MDK(KEIL5)如何生成.bin文件
新疆喜乐彩玩法单片机成长之路(51基础篇) - 018 keil51的STARTUP.A51
STARTUP.A51原始文件:  1 $NOMOD51;Ax51宏汇编器控制命令,禁止预定义的8051。使编译器不使能预定义的;8051符号,避免产生重复定义的错误。  2 ;------------------------------------------------------------------------------  3 ;  This file is part of the C51 Compiler package  4 ;  Copyright (c) 1988-2005 Keil Elektronik GmbH and Keil Software
发表于 2020-01-15
STM32 keil4 extern问题
最近一个项目,在stm32 keil中移植了别人的一些库文件,编译时出现如下错误提示 .OBJW5100_SPI.axf: Error: L6218E: Undefined symbol FLAG_comerr (referred from master.o). .OBJW5100_SPI.axf: Error: L6218E: Undefined symbol adcval (referred from master.o). .OBJW5100_SPI.axf: Error: L6218E: Undefined symbol nzval (referred from master.o). 
发表于 2020-01-15
如何使用Keil5开发MSP430及Tiva系列开发板
如何使用keil5开发msp430,Tiva系列Launchpad系列是Ti德州仪器推出的一系列低成本开发评估套件,即使放到现在,这系列的MCU仍旧不失为一款优异的微控制器芯片。Ti Launchpad平台的另一个系列板卡——Tiva C系列的TM4C123G Launchpad评估套件EK-TM4C123GXL,基于高性能的ARM Cortex-M4处理器。由于TI官方提供的CCS用起来很麻烦,安装也很麻烦。故我们想办法在MDK平台上开发对吧。同样大家也可以用IAR for msp430首先需要安装MDK5即Keil5.未安装的同学请转此https://baijiahao.baidu.com/s?id
发表于 2020-01-15
如何使用Keil5开发MSP430及Tiva系列开发板
在KEIL下搭建基于 STM32 和 rt-thread 的开发环境
RT_thread开发人员是用MDK(Keil)进行开发管理的,当然也提供了IAR等开发环境的配置。针对初学者都提供了相关的教程和案例,不过项目开发,还是得讲究一下如何有效搭建开发环境和配置。MDK(Keil)的安装和配置(破解)就略过了。能进行开发移植系统的程序员如果还不会最基础的开发环境搭建,那……去闭关修炼吧。芯片选择:ST(意法半导体)-STM32F103ZE 原因:开发必备。大多单片机爱好者,学习过程基本是:菜鸟52->逐步深入stm32->深度中毒ARM。ST芯片应用广泛。ST的性价比(点赞)和高性能在各领域都发挥着重要作用(好用吖)。ST开发容易。固件库和资料都很全,网上大把教程和学习板(大学
发表于 2020-01-13
在KEIL下搭建基于 STM32 和 rt-thread 的开发环境
keil软件错误总结
KEIL编译错误信息表 错误代码及错误信息 错误释义 error 1: Out of memory 内存溢出 error 2: Identifier expected 缺标识符 error 3: Unknown identifier 未定义的标识符 error 4: Duplicate identifier 重复定义的标识符 error 5: Syntax error 语法错误 error 6: Error in real constant 实型常量错误 error 7: Error in integer constant 整型常量错误 
发表于 2020-01-07
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 zjgsmm.com, Inc. All rights reserved
内蒙古快3 北京两步彩开奖 pk10玩法 六合开奖网址 北京赛车pk10玩法 北京赛车pk10玩法 亚洲十大博彩公司排行 大资本彩票 北京赛车pk10赔率最高的平台 河北11选5开奖