uCOS
「已注销」
这个作者很懒,什么都没留下…
展开
-
使用SysTick的普通计数模式对延迟进行管理
/**delay.c#include "delay.h"#include "sys.h"////////////////////////////////////////////////////////////////////////////////// //如果使用ucos,则包括下面的头文件即可.#if SYSTEM_SUPPORT_UCOS#include "inc转载 2014-05-03 22:48:18 · 6531 阅读 · 0 评论 -
操作符new 和函数malloc()的异同及其用法
操作符new 和函数malloc()的异同:1,在内存管理上,C++ 和 C 有着完全不同的两套方案。当然,C++的总是同时兼容 C。C 的那一套方案在 C++里同样可行2,new 是 c++ 的一个关键字。被当作像+、-、* 、/ 一样的操作符。它的操作结果是在申请到一段指定数据类型大小的内存。 3,new/delete 只在 C++里得到支持。在 C 里,内存管理是通过转载 2015-05-07 18:04:08 · 885 阅读 · 0 评论 -
解决代码逻辑嵌套过多的技巧 do{} while(0);
在此过程,遇到以下情况时将放弃后续的操作,认为是操作失败: 1、如果 A 文件不存在; 2、如果B文件已经存在,并且询问用户是否覆盖时,用户回答“不”; 3、无法复制出 B 文件; 4、无法打开 B 文件; 5、无法写入 B 文件; 6、无法正常关闭 B 文件。 用伪代码写该段程序为if( A 文件存在 ) { 执行 A 文件的相转载 2015-05-07 15:09:31 · 2549 阅读 · 0 评论 -
variable argument print function
variable argument print function原创 2015-05-06 23:13:25 · 525 阅读 · 0 评论 -
对堆栈8字节对齐问题的讨论
一.为什么要保证堆栈8字节对齐AAPCS规则要求堆栈保持8字节对齐。如果不对齐,调用一般的函数也是没问题的。但是当调用需要严格遵守AAPCS规则的函数时可能会出错。例如调用sprintf输出一个浮点数时,栈必须是8字节对齐的,否则结果可能会出错。实验验证:#include "stdio.h"#include "string.h"float fff=1.234;cha转载 2015-05-06 21:42:35 · 3388 阅读 · 0 评论 -
ARM启动代码研究
1:PRESERVE8:Reguire8和Preserve8C和汇编有8位对齐的要求,这两个伪指令可以满足此要求,存在REQUIRE8 PRESERVE8的对应关系,但不是说有一个REQUIRE8就要有一个 PRESERVE8,如果是一个c文件和一个汇编文件的调用,也就涉及一个PRESERVE8或者是一个REQUIRE8.另外,REQUIRE8和PRESERVE8并不完成8 byte转载 2015-02-15 17:04:37 · 1005 阅读 · 0 评论 -
arm加载域和运行域的理解
般而言,一个程序包括只读的代码段和可读写的数据段。在ARM的集成开发环境中,只读的代码段和常量被称作RO段(ReadOnly);可读写的全局变量和静态变量被称作RW段(ReadWrite);RW段中要被初始化为零的变量被称为ZI段(ZeroInit)。对于嵌入式系统而言,程序映象都是存储在Flash存储器等一些非易失性器件中的,而在运行时,程序中的RW段必须重新装载到可读写的RAM中。这就涉及到程转载 2015-02-16 16:32:44 · 1084 阅读 · 0 评论 -
startup_stm32f10x_hd.s 讲解
;* 文件名 : startup_stm32f10x_hd.s;* 库版本 : V3.5.0;* 说明: 此文件为STM32F10x高密度设备的MDK工具链的启动文件;* 该模块执行以下操作:;* -设置初始堆栈指针(SP);* -设置初始程序计数器(PC)为复位向量,并在执行main函数前初始化系统时钟;* -转载 2015-02-15 17:10:42 · 1568 阅读 · 0 评论 -
嵌入式实时操作系统μC/OS-II在STM32处理器移植
http://blog.sina.com.cn/s/blog_a79574c6010168rm.html下载代码stm32标准外设库是stm32全系列芯片的外设驱动,有了它可以大大加速我们开发stm32。首先从st公司的网站下载最新的stm32标准外设库,写本文时最新的版本是V3.5.0。解压该zip文件,得到如下文件夹和文件STM32F10x_转载 2015-01-08 22:32:07 · 5063 阅读 · 0 评论 -
one-wire DS2431
#include "stm32f10x_gpio.h"#define DS2431_GPIO GPIOB#define DS2431_GPIO_Pin GPIO_Pin_0#define DS2431_Write_1() GPIO_SetBits( DS2431_GPIO, DS2431_GPIO_Pin ) //写1#define DS转载 2014-05-13 22:12:04 · 2352 阅读 · 1 评论 -
基于arm的fpga加载
PassivePassivehttp://www.eeworld.com.cn/mcu/2012/0521/article_8803_1.html转载 2014-05-06 06:30:11 · 1300 阅读 · 0 评论 -
uCOS创建任务实例---code from《嵌入式实时操作系统uCos-II原理及应用》
/****************test******************/#include "includes.h"#define TASK_STK_SIZE 512 //任务堆栈长度OS_STK MyTaskStk[TASK_STK_SIZE]; //定义任务堆栈区OS_STK YouTaskStk[TASK_STK_SIZE]; //定义任务堆栈INT16S key;转载 2014-04-18 20:29:24 · 1401 阅读 · 0 评论 -
用SysTick值抓取法,实现DelayUS()的微妙延时函数
程序说明:(1)在bsp_timer.c中加入bsp_DelayUS()的微妙延时函数(2)用定时器6实现程序运行时间测量,最小单位0.083us。 下面使用TIM6测量bsp_DelayUS(10)的运行时间,实际测试结果 Time = 10.4us Time = 10.5us Time = 10.5us原创 2014-05-04 23:00:57 · 3993 阅读 · 0 评论 -
如何设置用vs编辑嵌入式项目(用keil 编译)+设置vs编辑器的关键字的颜色
来源于这两个网址:http://blog.csdn.net/gvgarven/article/details/19639719转载 2014-05-03 17:49:36 · 14582 阅读 · 0 评论 -
STM32开发板(小苗板)资料系列之十二——SysTick定时器
五一长假除了旅游 还能做什么? 辅导补习 美容养颜 家庭家务 加班须知 实验例程讲解先前的流水灯实验和按键实验都有用到延时程序,那部分的延时程序都是通过循环执行代码来实现的,延时的精确度不能保证。当我们需要精确延时时,就可以利用滴答定时器来实现了,理论上它的最小计时单位为AHB的时钟周期,即1/72000000秒(AHB最大时钟72M),这基本能满足转载 2014-05-03 21:19:05 · 1369 阅读 · 0 评论 -
ucos精确延时
技术探讨:关于带UCOS的嵌入式系统如STM32微妙级延时和处理方法QQ群中不少学友提出,使用了UCOS,不知道如何实现微秒级别的延时(如100微秒处理一次)困惑主要原因在于:还是想用OSTimeDly,认为应该使用OS的系统服务来做我这里说说我对这个问题的理解:OSTIMETICK是操作系统的时钟滴答服务,如果度过我写的那本《嵌入式实时操作系统μCOS原理转载 2014-05-03 19:25:07 · 6768 阅读 · 3 评论 -
UCOS统一驱动框架:
UCOS统一驱动框架:http://wenku.baidu.com/view/7f853220dd36a32d73758139.html转载 2015-06-15 23:27:54 · 3295 阅读 · 0 评论