嵌入式操作系统基础
文章平均质量分 56
黄纸明
有热情,阳光。爱专研
展开
-
欢迎使用CSDN-markdown编辑器
1、调整灯光的频率 默认情况下 SDK PWM波的频率是 600HZ的,有时我们需要将它调整频率,例如调整为4K,只需要更改参数 PMW_MAX_TICK_MULTI 为31 就好了。 计算 PWM 频率公式 freq = CLOCK_SYS_CLOCK_HZ / (PMW_MAX_TICK) PMW_MAX_TICK=PMW_MAX_TICK_BASE*PMW_MAX_TICK_MUL原创 2017-12-09 18:34:57 · 324 阅读 · 0 评论 -
Z-STACK之OSAL_Nv非易失性存储解读上
1、在工程选项设置里的PreprocessoràDefined symbols里添加了NV_INIT和,xNV_INIT (保存设备基本信息到非易失性存储器里)NV_RESTORE,xNV_RESTORE(不保存网络状态信息),(前面加x代表不保存);在这里要需要搞明白的是此处的网络状态信息是具体指哪一类的信息,是否与设备类型有关呢? REFLECTOR:是实现绑定功能,在ZDobjec转载 2014-12-10 10:18:30 · 4374 阅读 · 2 评论 -
zigbee协议及开发(2)- 基础知识
Zigbee可以看成是一种Ad Hoc网络。理论上,IEEE802.15.4中涉及到两种设备:全功能FFD和半功能RFD设备。从相关文档描述,FFD能够完成更多的任务,担当更多的角色,比如协调器和路由器,具有更大的处理能力和更大的内存;而RFD功能较少,通常只担当终端结点,只与一个路由器或者协调器通信。 相应的,IEEE802.15.4中设备的逻辑角色可以分为PAN Cordina转载 2014-12-15 14:45:14 · 778 阅读 · 0 评论 -
zigbee协议及开发(1)- 基础知识
说明:本系列文章中,部分内容来自于网络及图书,版权归原作者所有,其中加入我个人学习的体会及理解,算是个人的学习笔记。 准备学习这个方面内容原因是因为申请了一个学生的课题,本来是由学生做的,但是诸多原因,最后只得由我亲自操刀,既然做就做好吧。本系列相关实验用到的硬件是Feibit公司基于TICC2530开发系列节点。 申请的课题是关于无线传感器网络室内环境监测的,原本转载 2014-12-15 14:31:18 · 965 阅读 · 0 评论 -
Z-STACK之cc2530串口(POLL-DMA)驱动详解下
在http://blog.csdn.net/crystal736/article/details/8541443中已经讲了Z-STACK中串口驱动的ISR方式,本文介绍串口驱动的另一种方式DMA,实际上Z-STACK中就是采用的这种方式,看hal_board_cfg.h文件中如下代码 #if HAL_UART// Always prefer to use DMA over ISR.转载 2014-11-05 11:31:30 · 3795 阅读 · 0 评论 -
ZgiBee2006协议栈按键流程
我使用的协议栈版本及例子信息:ZigBee2006\Texas Instruments\ZStack-1.4.3-1.2.1\Projects\zstack\Samples\SampleApp记录下个人对按键流程的理解在hal_key.c中有一段说明:/***************************************************************转载 2014-10-27 13:46:51 · 745 阅读 · 0 评论 -
信标网络和非信标网络
ZigBee/IEEE 802.15.4的网络所有节点都工作在同一个信道上,因此如果邻近的节点同时发送数据就有可能发生冲突。为此MAC层采用了CSMA/CA的技术,简单来说,就是节点在发送数据之前先监听信道,如果信道空闲则可以发送数据,否则就要进行随机的退避,即延迟一段随机时间,然后再进行监听,这个退避的时间是指数增长的,但有一个最大值,即如果上一次退避之后再次监听信道忙,则退避时间要增倍,这样做原创 2014-07-10 20:38:15 · 1134 阅读 · 0 评论 -
对于信号量,互斥信号量,事件标志组的个人理解
ucos看了也有一周多了,索性源码都能开得懂,并且能去理解。昨天一开始看事件标志组的时候确实不知道怎么回事,后来百度一下,明白了事件标志组的作用以后,再去看书上的讲解和原码就清晰多了,很容易就明白了他的基本运行机理。这也给了我一点启示,学一个东西,看一个东西之前,你最少要知道他干嘛用的,如果连干嘛用的都知道书看的再熟也是枉然。 ucos中提供了好几个用于同步事件以及共享资源访问的机制,目转载 2014-07-09 16:36:27 · 4476 阅读 · 3 评论 -
ZgiBee 工程架构 &IAR常用快捷键
app 应用层文件 进行添加和修改hal 硬件抽象层和你的电路板配置有关的代码,外部的设备放到这里面 mac zmac 数据链路层的文件夹 封装好的库文件 是不开源的mt 串口调试的文件 输入串口的指令集来控制这个网络。OSAL 和操作系统有关的文件,profile 协议栈规范文件,services 一些服务文件,tools .cfg .exl都放在这里的原创 2014-07-07 11:32:47 · 1022 阅读 · 0 评论 -
第1章 ZigBee协议栈初始化网络启动流程
igBee的基本流程:由协调器的组网(创建PAN ID),终端设备和路由设备发现网络以及加入网络。基本流程:main()->osal_init_system()->osalInitTasks()->ZDApp_Init(),进协议栈初始化函数ZDApp_Init()。1.1 进入程序入口main()。ZMain.c中C++ Codeint main( voi转载 2014-12-04 16:41:26 · 2417 阅读 · 0 评论 -
串口修改PAN ID和CHANNEL,广播发送后重启
转载:http://www.feibit.com/forum.php?mod=viewthread&tid=8632想要实现的功能:1.串口修改PAN ID;2.串口修改CHANNEL;3.广播发送给网内节点,重启建立新的网络。实现例程:sampleapp例程修改IAR预编译:ZTOOL_P2MT_TASKMT_AF_FUNCMT_AF_CB_F转载 2014-12-05 14:43:23 · 1116 阅读 · 0 评论 -
flash 与CODE memory ,ROM与Xdata
1、IAR环境会生产下面的map图 112 416 bytes of CODE memory 256falsh 35 bytes of DATA memory (+ 73 absolute ) 6 260 bytes of XDATA memory 8KRAM 194原创 2015-05-23 20:18:12 · 3380 阅读 · 0 评论 -
搜索引擎的使用
找资料时好的方法:有确切的关键字,可以先搜索,搜索后再在资源里找到关键字,再进行搜索,这样子就可以找到你想要 的答案。用电脑搜索和用手机搜索的 方法是不一样的. 用 手机搜索会比电脑搜索好一点!原创 2015-04-20 07:29:40 · 451 阅读 · 0 评论 -
嵌入式系统 Boot Loader 技术内幕
嵌入式系统 Boot Loader 技术内幕Boot Loader的目的就是为了在不适用烧写器的情况下,通过无线或者串口将代码进行升级。1. 引言在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行。一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次:1. 引导加载程序。包括固化在固件(firmware)中的 boot 代码(可选),和 B转载 2015-04-14 17:04:17 · 479 阅读 · 0 评论 -
QT 与 MFC 的区别
给我一份软件的规划说明,让我来开发。其中一些我用Qt来开发,而另外一些我使用MFC来开发。 MFC(微软基础类库)是专门为windows设计的一个用于开发图形用户界面的类库。MFC或多或少使用了面向对象的方法包装了Win32的API,正因如此,这些API有时是C++,有时是C,甚至是C和C++的混合体。Qt这个C++的图形库由Trolltech在1994年左右开发。它可以运行在转载 2015-03-26 21:50:09 · 625 阅读 · 0 评论 -
Qt编写串口通信程序全程图文讲解
(说明:我们的编程环境是windows xp下,在Qt Creator中进行,如果在Linux下或直接用源码编写,程序稍有不同,请自己改动。) 在Qt中并没有特定的串口控制类,现在大部分人使用的是第三方写的qextserialport类,我们这里也是使用的该类。我们可以去http://sourceforge.net/projects/qextserialport/files原创 2015-03-02 20:44:15 · 1088 阅读 · 0 评论 -
sizeof用法汇总
sizeof 可以用来去 数组,指针,结构体,数据类型来求数据类型或者表达式长度符使用方法如下:#include "stdio.h"void main(){ int a =1; int b[]={1,1,1}; struct c { int a; int c; }d;//结构体的使用 //printf原创 2014-12-14 21:18:10 · 592 阅读 · 0 评论 -
ZStack--建立自己的应用程序(API)转载
在TI提供例程中有一个SimpleApp的例程,对于应用开发而言,例程SimpleApp展现了简化的API的使用,减少了一系列的API函数和回调函数,简化了协议栈启动的流程。这里重点介绍这些简化以后的API.1、Z-Stack Simple API总述Z-Stack是TI正对CC2430/CC2431等提供的免费协议栈,简称为ZCP,他由以下单元组成:HAL(硬件抽象层)转载 2014-12-09 11:12:57 · 1833 阅读 · 0 评论 -
z-stack 协议栈修改按
1.修改hal_key.c文件在HAL_Target_CC2530EB_Dribers_hal_key.c修改 SW_6所在IO口#define HAL_KEY_SW_6_PORT P0#define HAL_KEY_SW_6_BIT BV(4)//BV(1)改到P0.4边缘触发模式 #define HAL_KEY_SW_6_EDGE HAL_KEY_RISING_EDGE 中断一些相关标志位。#原创 2014-07-03 10:51:02 · 1027 阅读 · 0 评论 -
串口流控,只有TX/RX2跟线务必关掉流控
我们在串行通讯处理中,常常看到RTS/CTS和XON/XOFF这两个选项,这就是两个流控制的选项,目前流控制主要应用于调制解调器的数据通讯中,但对普通RS232编程,了解一点这方面的知识是有好处的。那么,流控制在串行通讯中有何作用,在编制串行通讯程序怎样应用呢?这里我们就来谈谈这个问题。 1.流控制在串行通讯中的作用 这里讲到的“流”,当然指的是数据流。数据在两个串口之间传转载 2014-07-02 22:26:27 · 3325 阅读 · 0 评论 -
z-stack 回调函数
首先声明,我是纯粹的菜鸟,看zstack有三周了。学习过程中经常来飞比论坛汲取营养。昨天读了xingqing的大作《RemoTI原版按键程序分析》(http://www.feibit.com/bbs/viewthread.php?tid=393),感觉获益匪浅,在他的那篇帖子的基础上,我又自己将思路梳理了一遍,将回调函数这一部分的东西先写出来,算是站在xingqing肩膀上写的吧,呵呵。感谢飞比论转载 2014-07-02 10:45:29 · 854 阅读 · 0 评论 -
keil新建工程及编译报错——invalid redeclaration of type name "s32" 的解决
最新需要用到STM32开开发,当然得从最简单的例子开始下手,但是建立一个最简单的Project原型就出现问题,搞了半天第一个自己建立的工程终于编译成功了!0 背景:MCU芯片型号:STM32F103VETKeil版本:V4.13a固件库版本:STM32F10x_StdPeriph_Lib_V3.5.0操作系统:Window XP SP3转载 2014-01-04 14:55:00 · 2431 阅读 · 0 评论 -
ARM初学者指南
常见的ARM嵌入式学习问答,设计者和学习者最关心的11个问题:1. ARM嵌入式是学习硬件好还是学习软件好?2. 嵌入式软件和硬件,哪一种职位待遇更高?或者说,在设计中哪一个更重要?3. 学完51单片机后,想买ARM开发板继续学习,是买ARM7还是ARM9?4. 到底是学习哪种内核:ARM7、CORTEX-M3、C原创 2013-12-17 17:44:39 · 1405 阅读 · 0 评论 -
牛人对STM32的NVIC_PriorityGroupConfig使用及优先级分组方式理解
STM32有43个channel的settable的中断源;AIRC(Application Interrupt and Reset Register)寄存器中有用于指定优先级的4 bits。这4个bits用于分配preemption优先级和sub优先级,在STM32的固件库中定义如下/* Preemption Priority Group --------------------------转载 2014-01-02 17:13:24 · 728 阅读 · 0 评论 -
宏的用法
1. 简单宏定义简单的宏定义有如下格式:[#define指令(简单的宏)] #define 标识符替换列表替换列表是一系列的C语言记号,包括标识符、关键字、数、字符常量、字符串字面量、运算符和标点符号。当预处理器遇到一个宏定义时,会做一个 “标识符”代表“替换列表”的记录。在文件后面的内容中,不管标识符在任何位置出现,预处理器都会用替换列表代替它。原创 2013-12-17 17:22:25 · 841 阅读 · 0 评论 -
stm32移植ucosⅡ(二)
首先我们要熟悉整个工程架构。这是裸机下的工程结构主要有STARTCODE ,USER,FWLib,CMSIS 四个文件夹。STARTCODE:USER:USER用来存放工程文件和用户代码,包括主函数main.c, stm32f10x_it.h、和stm32f10x_it.c这两个文件里面是中断函数,里面为空,并没有写任何的中断服务程序。stm32f10x_conf.h是用户需要翻译 2013-12-16 15:18:05 · 1745 阅读 · 0 评论 -
STM32移植ucos‖(一)
从官网上下载的就只有这几个文件,appnotes 就是ucos‖的一些说明文件,移植不用看它。licensing是ucos‖的证书,,即使用许可证software是应用软件的意思,我们需要的的文件夹是ucos‖下面的ports(端口,接口我的感觉是硬件和软件的接口)这里面那我们需要进行改变!和source(源代码)。BSP(Board Support Package),BSP是板级翻译 2013-12-12 22:04:45 · 1458 阅读 · 0 评论 -
BSP 概念解析及计算机的组成,外设端口
Drew在这里按照自己的理解来解释一下BSP( Board Support Package),仅供参考: BSP是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。BSP是相对于操作系统而言的,不同的操作系统对应于不同定义形式的BSP,例如VxWorks的BSP和Linux的BSP相对于某一CPU来说尽转载 2013-12-12 22:08:42 · 2462 阅读 · 0 评论 -
return 0 和return 1的区别
return 0 代表程序正常退出,return 1代表程序异常退出!使用return 语句可以返回一个变量内的值或一个指针,也可用return0,表示返回为空。return 代表调到函数外,return 0代表函数正常终止return 1代表函数非正常终止return 关键字的作用是返回程序流程的控制权!其副作用是返回一个值。例如int main(){}则必须返转载 2013-11-26 17:23:46 · 44869 阅读 · 1 评论 -
USART总结。
三种方式:查询,中断,DMA通用同步异步收发器(USART)提供了一种灵活的方法来与使用工业标准NR 异步串行数据格式的外部设备之间进行全双工数据交换。 USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信。它也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信转载 2014-01-09 16:11:18 · 1046 阅读 · 0 评论 -
USART串口总结2
前言:开始学USART+DMA的时候看到帖子《STM32 UART DMA实现未知数据长度接收》,觉得方法妙极了。此下出自此帖子——(整体的思路是这样的,一开始设置好DMA接收,可以把缓冲区长度设置为帧最大长度,我们可以把RX连接到定时器的管脚输入端,并且一开始设置输入并且使能引脚下降沿中断,当帧的第一个字节发送时,因为起始位为低电平,空闲时UART为高电平,满足条件,进入中断,禁止中断,并且在中转载 2014-01-09 16:13:44 · 4506 阅读 · 0 评论 -
电子信息工程就业方向及薪资标准
如果从工程师和研究生的专业方向来看,电子信息专业的方向大概有 ) 1)数字电子线路方向。从事单片机(8位的8051系列、32位的ARM系列等等)、FPGA(CPLD)、数字逻辑电路、微机接口(串口、并口、USB、PCI)的开发,更高的要求会写驱动程序、会写底层应用程序。 单片机主要用C语言和汇编语言开发,复杂的要涉及到实时嵌入式操作系统(ucLinux,VxWorks,uC-OS,Wind原创 2014-04-01 09:25:15 · 8155 阅读 · 0 评论 -
msp40 PLL
/* --COPYRIGHT--,BSD_EX * Copyright (c) 2012, Texas Instruments Incorporated * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are原创 2014-03-19 20:46:10 · 928 阅读 · 0 评论 -
常数发生器
经常使用的常数可以用常数发生器产生,而不必占用一个16位字。所用常数的数值由寻址位As来定义,硬件完全自动地产生数字:-1、0、1、2、4、8,如下 常 数 发 生 器 C G 1 和 C G 2 的 值寄存器 As 常数 说明R2 00原创 2014-03-17 11:53:48 · 2006 阅读 · 0 评论 -
STM32调试错误
1.led.c(29): error: #20: identifier "RCC_APB2Periph_GPIOC" is undefined 你发现你的所有有关时钟都有错误,那么做法应该是在:stm32f10x_conf.h 应该将rcc.h注释去掉哦2.stm32f10x_it.c(146): error: #20: identifier "OFF" is undefined原创 2014-01-04 17:24:48 · 2803 阅读 · 0 评论 -
IBM大数据战略
IBM的大数据战略以其在2012年5月发布智慧分析洞察“3A5步”动态路线图作为基础。所谓“3A5步”,指的是在“掌握信息”(Align)的基础上“获取洞察”(Anticipate),进而采取行动(Act),优化决策策划能够救业务绩效。除此之外,还需要不断地“学习”(Learn)从每一次业务结果中获得反馈,改善基于信息的决策流程,从而实现“转型”(Transform)。基于“3A5步”动态转载 2014-01-16 11:17:15 · 1341 阅读 · 0 评论 -
I2C基础知识
IIC总线一般串行数据通讯都有时钟和数据之分,有异步和同步之别.有单线,双线和三线等.I2C肯定是2线的(不算地线).I2C协议确实很科学,比3/4线的SPI要好,当然线多通讯速率相对就快了.I2C的原则是:在SCL=1(高电平)时,SDA千万别忽悠!!!否则,SDA下跳则"判罚"为"起始信号S",SDA上跳则"判罚"为"停止信号P".在SC原创 2014-01-24 20:57:55 · 1231 阅读 · 0 评论 -
STM32 粗延时总结
1.普通延时法 这个比较简单,让单片机做一些无关紧要的工作来打发时间,经常用循环来实现,不过要做的比较精准还是要下一番功夫滴下面的代码是在网上搜到的,经测试延时比较精准。//粗延时函数,微秒void delay_us(u16 time){ u16 i=0; while(time--) { i=10; //尹工用的17原创 2014-01-16 11:43:15 · 2966 阅读 · 0 评论 -
MG323-GPRS小节()数据透传测试
//每条AT命令后不能有空格,但是记得要有回车()AT^SICS=0,conType,GPRS0AT^SICS=0,apn,cmnetAT^SISS=0,conId,0AT^SISS=0,srvType,Socketat^siss=0,address,socktcp:// 115.158.112.55:10000IP号号和服务器端口号AT^SISO=0(回复时间长点)这句经原创 2014-01-23 20:56:21 · 2231 阅读 · 0 评论 -
ucosii操作系统基础知识
1.什么是系统软件?系统软件是应用软件的基础,所有应用软件都要在系统软件上运行 Windows系列:windows98 windows2000 windows xp... Dos Linux Unix 等 应用软件:能够实现某种特定任务的软件,例如: office系列 金山WPS 杀毒软件 工具软件等 支持系统运行的软件叫:系统软件。 完成特定任务的软件叫:应用软件。各原创 2013-11-22 14:47:25 · 2187 阅读 · 0 评论