STM32 UCOS所需最小空间参考

发布者:悦耳旋律最新更新时间:2017-02-16 来源: eefocus关键字:STM32  UCOS  最小空间 手机看文章 扫描二维码
随时随地手机看文章

利用STM32跑UCOS 写了个很简单的程序,编译如下

Program Size: Code=24562 RO-data=746 RW-data=88 ZI-data=7456 

以此推算,小于FLASH小于24K RAM小于8K 根本不能考虑STM32的UCOS,只能祼奔,

STM32的FLASH到还好满足些,一般都有64K,主要是RAM,看来STM32F0XX STM32F100上估计是没多大希望的了

----------------------以下为main.c-----------------------


#define MAIN_C
#include "includes.h"

 
                  
void first_task(void *pdata);
void task_2(void *pdata);
void task_3(void *pdata);


 
int main()
{
 RCC_ClocksTypeDef OS_Clocks;
 bsp_Ini();      //初始化各个驱动,放于bsp_ini.c中
 OSInit();      //ucos的系统初始化  
 RCC_GetClocksFreq(&OS_Clocks);     
 OS_CPU_SysTickInit( OS_Clocks.HCLK_Frequency / OS_TICKS_PER_SEC ); //设置时钟滴答,1ms
 OSTaskCreate(first_task,0,&stk1[99],task1_sn);  //创建第一个任务
 OSStart();         //任务开始
}

void first_task(void *pdata)     //在第一个任务里面创建其他任务(官方的推荐)
{
 INT8U err;
 int AD_value;
 pdata=pdata;

 flag1=OSFlagCreate(0,&err);      
 OSTaskCreate(task_2,0,&stk2[99],task2_sn);
 OSTaskCreate(task_3,0,&stk3[99],task3_sn);

   
 while(1)         
 { 
  AD_value=(int) ( (double) ADC_GetConversionValue(ADC1) *3/4096 * 100 ) ;
  DEBUG_COM_STREAM("\r\nAD=%L",(u8*)&AD_value);//USART_SendData(USART1, test);
  OSTimeDly(1000);
 }
}

void task_2(void *pdata)     //在第一个任务里面创建其他任务(官方的推荐)
{
 INT8U err1;
 char test;
 pdata=pdata;
 while(1)         
 {
  OSFlagPend(flag1,EVENT_1,OS_FLAG_WAIT_SET_ALL+OS_FLAG_CONSUME,0,&err1);
  test = (char)USART_Date;
  DEBUG_COM_STREAM("\r\n收到:%c",(u8*)&test);//USART_SendData(USART1, test);
  DAC_SetChannel1Data(DAC_Align_12b_R, test*16);
 }
}


u8 count;
void task_3(void *pdata)     //在第一个任务里面创建其他任务(官方的推荐)
{
 pdata=pdata;
 GPIO_INITIAL();
 EXTI_INITIAL(ENABLE);
 while(1)         
 {  
  OSTimeDly(1000);
  count++;  
  if(count==3000)
   {PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);
   RCC_Ini();//bsp_Ini();
   count=0;
   }
  else if(wake_id!=0)
   {DEBUG_COM_STREAM("wake_id=%x",(u8*)&wake_id);
   wake_id=0;
   }
  DEBUG_COM_STREAM("  我是任务3=%x",&count);
 }
}


关键字:STM32  UCOS  最小空间 引用地址:STM32 UCOS所需最小空间参考

上一篇:STM32 HSE LSE晶振官方推荐
下一篇:终于我也可以对STM32低功耗进行总结

推荐阅读最新更新时间:2024-03-16 15:33

STM32最小系统组成详解
经常使用STM32开发的工程师对于它的开发环境的最小系统是必须要有所了解的,特别是硬件工程师在设计硬件的时候对这个最小系统就要更加的深入了解了,如果最小系统的搭建都有问题,那以后的使用很难避免不出现问题。 话不多说,进入正题说说STM32的最小系统的基本组成! 1、STM32最小系统硬件组成包括哪些? STM32的最小系统的硬件组成主要有:电源电路、复位电路、时钟电路、调试接口电路、启动电路。 电源 : 一般是3.3V输入作为STM32芯片的工作电压,实际中很多采用LDO将5V转换为3.3V进行供电,另外电路上还要加多个0.01uf去耦电容对输入电压进行滤波,稳定输入电压。 复位:STM32中有三种复位方式,分别
[单片机]
<font color='red'>STM32</font><font color='red'>最小</font>系统组成详解
stm32基础实验2(按键输入—查询模式)
一、实验原理 1、实现步骤 (1)使能按键对应IO口时钟。调用函数:RCC_APB2PeriphClockCmd(); (2) 初始化IO模式:上拉/下拉输入。调用函数:GPIO_Init(); (3)扫描IO口电平(库函数/寄存器/位操作)。 读取IO口输入电平三种方式 uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);(库函数) GPIOx_IDR:端口输入寄存器(寄存器) PEin(4)-读取GPIOE.4口电平(位操作) Static申明的局部变量,存储在静态存储区。它在函数调用结束之后,不会被释放。它的
[单片机]
<font color='red'>stm32</font>基础实验2(按键输入—查询模式)
STM32的硬件SPI驱动LCD例子
前言:每学一个新知识,都会出现很多出错的情况,百度也查不出来,耗费很多时间,主要是不理解底层原理,没太多时间去理解,催得紧。SPI嘛,是人都知道干嘛用的,我一时半会也不知道怎么表达,百度最不缺的就是定义。缺的是实现过程,本少爷花了几十个积分搞了n多个实例,终于总结了要成功实现SPI要哪些奇葩的步骤。 历史:今天17年9月1,前几天我导师嫌我刷新屏幕太慢,给我做了代码的调整,发现速度杠杠的,屏幕蹭蹭蹭的刷屏,翻一下笔记,大概要处理几处小细节:1.LCD的CS片选做优化 2.DC也优化3.直接操作寄存器4.我下文中加了Delay(1);后来也优化了。有时间另写优化的链接给大家 正文: -----------------------
[单片机]
STM32之SWD
一、简介 本文以JLINK为例,介绍如何硬件连接SWD、MDK中配置SWD。 二、实验平台 库版本:STM32F10x_StdPeriph_Lib_V3.5.0 编译软件:MDK4.53 硬件平台:STM32开发板(主芯片stm32f103c8t6) 仿真器:JLINK 三、版权声明 四、基础知识 1、SWD是什么? 答:SWD类似于JTAG,是一种下载接口。 不同仿真器上需要的线数是不同的,有些硬件上使用4线、有些硬件上使用5线(多一个RST)。 因此香瓜建议接5根线的方式使用,以保证兼容性: VCC、GND、RST、SWDIO、SWDCLK。 2、SWD与JTAG的区别? 答
[单片机]
<font color='red'>STM32</font>之SWD
stm32软件触发的按键长按与短按区分
/* ------------------------------------------------------------------------------------------------ * @fn KeyCoolPressTimeHandle * * @brief 按键的检测 * * @param none * * @return none ************************************************************************************************** */ uint8_t KeyCoolPr
[单片机]
STM32 GPIO的外部中断设计
一、前言 在之前针对 STM32 的G PI O相关API函数及配置使用进行了详细的介绍,GPIO作为输入引脚时,调用相关读 信号 引脚函数接口就可以在程序的循环中,轮询的对输入信号进行读取 检测 操作,除了轮询的方式访问输入引脚,还可以通过另外一种叫做外部中断的方式来对引脚的输入信号进行检测,本篇首先介绍下EX TI 的结构,接着介绍外部中断的相关概念, 对STM32的IO外部中断EXTI有个初步的了解,在此基础上重点围绕IO外部中断EXTI的使用展开分析。 图1 外部中断设计 二、EXTI结构 EXTI(Ex te rnal interrupt/event controller)—外部中断/事件控制器,管理了控制器的
[单片机]
<font color='red'>STM32</font> GPIO的外部中断设计
STM32高级开发(15)-使用eclipse开发STM32
在最起初的时候,我刚刚接触linux上单片机的开发,最喜欢的就是 eclipse + arm-plug-in + arm-none-eabi 的开发环境,因为这是在Linux上最接近于windows下keil、IAR等IDE的开发方式,然而那是由于对eclipse亦或是makefile等编译过程中的工具的不甚了解,很多时候会遇到一些莫名的错误,也导致了那是觉得这样的环境很鬼畜,现在看来多是一些很浅显的问题,直到最近我再一次的尝试了eclipse开发环境的搭建和使用,我才很顺利的完成了程序的配置。现在也把这个方法推荐给大家,不过在使用这个方式前,还是建议大家先把之前的文章内容看懂了,否则很多时候遇到问题都会不知道怎么解决。 安装
[单片机]
<font color='red'>STM32</font>高级开发(15)-使用eclipse开发<font color='red'>STM32</font>
STM32串口通信中使用printf发送数据配置方法
STM32串口通信中使用printf发送数据配置方法(开发环境 Keil RVMDK) 标签: STM32 串口通信 printf方法 2011-06-29 23:29 在STM32串口通信程序中使用printf发送数据,非常的方便。可在刚开始使用的时候总是遇到问题,常见的是硬件访真时无法进入main主函数,其实只要简单的配置一下就可以了。 下面就说一下使用printf需要做哪些配置。 有两种配置方法: 一、对工程属性进行配置,详细步骤如下 1、首先要在你的main 文件中 包含“stdio.h” (标准输入输出头文件)。 2、在main文件中重定义函数 如下: // 发送数据 in
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved