Zigbee使用小结

Event Driven Class OSAL 基于事件驱动的模拟操作系统 事件驱动类的OSAL,顾名思义此OSAL完全由事件进行驱动,没有事件任务就没有事干,那么OSAL就会调度空闲任务,等待事件的发生. 阅读详情

一、关于OSAL系统

由于使用freeRTOS操作系统导致的观念不同,对OSAL有一定的误解。RTOS是基于任务调度机制的多任务操作系统,任务优先级高的任务会剥夺任务优先级低的CPU使用权。
而OSAL是基于事件轮询机制,通过不断的轮询事件是否发生,发生则执行相应的处理事件处理程序。
所以一般事件会对应一个处理函数。
任务开启流程:

osal_init_system();									//初始化操作系统
		> osalInitTasks();							//初始化任务,分配任务taskID
				> SampleApp_Init( taskID );			//初始化APP相应任务
osal_start_system();			//执行操作系统
		> osal_run_system();	//轮询事件

任务切换过程:

void osal_run_system( void )
{
	uint8 idx = 0;

	osalTimeUpdate();
	Hal_ProcessPoll();

	do {
		if (tasksEvents[idx]) //是否有事件发生
		{
			break;
		}
	} while (++idx < tasksCnt);

	if (idx < tasksCnt)
	{
	    uint16 events;
	    halIntState_t intState;
	
	    HAL_ENTER_CRITICAL_SECTION(intState);
	    events = tasksEvents[idx];		//tasksEvents存放任务事件列表
	    tasksEvents[idx] = 0;  //清除此任务的事件
	    HAL_EXIT_CRITICAL_SECTION(intState);
	
	    activeTaskID = idx;
	    events = (tasksArr[idx])( idx, events );	//tasksArr存放了事件对应的处理函数
	    activeTaskID = TASK_NO_TASK;
	
	    HAL_ENTER_CRITICAL_SECTION(intState);
	    tasksEvents[idx] |= events;  // Add back unprocessed events to the current task.
	    HAL_EXIT_CRITICAL_SECTION(intState);
	}
#if defined( POWER_SAVING )
	else  // Complete pass through all task events with no activity?
	{
		osal_pwrmgr_powerconserve();  // Put the processor/system into sleep
	}
#endif

  /* Yield in case cooperative scheduling is being used. */
#if defined (configUSE_PREEMPTION) && (configUSE_PREEMPTION == 0)
	{
		osal_task_yield();
	}
#endif
}

二、关于硬件驱动

TI的库支持了LED,KEY,LCD。但是自己的硬件的话可能会发生引脚冲突,比如TI定义的LED引脚在自己的硬件上连接了KEY。默认这些功能是开启的,可以在hal_board_cfg.h中失能。然后根据需要重新使能,修改。
硬件初始化流程:

InitBoard( OB_COLD );	//失能中断,检测RESER引脚
HalDriverInit();		//硬件IO初始化
InitBoard( OB_READY );	//初始化板级任务,可能涉及到任务ID,应放到osal_init_system()后执行
ZigBee自学笔记总结 ZigBee自学笔记总结 ,详细介绍了ZigBee技术的产生,发展,组网原理,等具体的使用情况 阅读详情

相关推荐

TIRTOS的zigbee代码

ti的物联网操作系统,内有基于cc2630的zigbee平台源码

ZigBee学习——浅析协议栈

学习Zigbee中的OSAL,并浅析Z-stack协议栈运行机制

struggle_success的博客 2717

osal操作系统详解

osal操作系统详解,对于刚学操作系统的小白很有帮助,他详细得介绍了这个系统,同时感谢他的提供

实现一个类OSAL系统

一天心血来潮,看到freeRtos\usos\rt-thread这些优秀系统,自己也想造个轮子。但是这些rtos实现困难无比,尤其这对于我这个知识储备可怜至极的人。真rtos太难,现在把目光聚焦到ble、zigbee协议中的osal系统,基于轮询的一个系统,可以说完美符合我的心态。不要求低开销,不要求多功能,不要求能用,甚至不要求能用(其实是懒得debug,如果有人觉得有用,我会继续写下去),希望各位在看我代码的时候手下留情不要骂太狠。

time_grid的博客 479

服务器测试之GPU基础汇总

GPU英文全称Graphic Processing Unit,中文翻译为“图形处理器”。一个专门的图形核心处理器。GPU是显示卡的“大脑”,决定了该显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。可以形象的理解为90%的ALU(运算单元),5%的Control(控制单元)、5%的Cache(缓存单元)GPU的设计原理——总结为大量的简单运算。

qq_41897488的博客 2万+

Error: dependent ‘..\..\..\..\Qt\5.15.2\msvc2019\include\QtWidgets\QMainWindow‘ does not exist.

核心问题:修改 Build 目录为源码子目录后,MSVC 编译报错,本质是变量设置异常,导致 qmake 生成多余回溯路径;临时解决:在 .pro 文件添加;最优解决:将上述配置写入 Qt 的 msvc 对应 qmake.conf 全局文件,一劳永逸;禁止 qmake 计算路径时向上回溯,避免生成异常路径。

mumufan05的专栏 877

eOSAL3.x

本文介绍了EventDrivenClassOSAL3.x(eOSAL3.x,一个轻量级的、基于事件驱动的模拟操作系统,适用于低端MCU。该系统采用C语言编写,具有小内存占用和简洁代码的特点。eOSAL提供了任务、事件、定时器和消息队列等核心功能,通过事件调度实现任务的执行。此外,还介绍了OSAL与RTOS的区别,并强调了其在资源有限的设备上的适用性。文章还涵盖了系统移植、硬件抽象层(DRF)和内存管理等内容。

yuleying的博客 846

机器学习——笔记整理(原理、python代码)——反反复复,出精活!

回顾知识,检查自我,开拓新域。 机器学习1.监督学习 机器学习简介: 机器学习是实现人工智能的手段,其主要研究内容是如何利用数据或经验进行学习,改善具体算法的性能。 多领域交叉,涉及概率论、统计学,算法复杂度理论等多门学科 广泛应用于网络搜索、垃圾邮件过滤、推荐系统、广告投放、信用评价、欺诈检测、股票交易和医疗诊断等应用。 机器学习分类: 机器学习一般分为下面几种类别 监督学习 ( Supervised Learning) 无监督学习 ( Unsupervised Learning) 强化学习(

weixin_45666566的博客 6485

CC2530/Zigbee协议栈之OSAL事件触发详解——保姆级别的入坑教程

ZIGBEE/CC2530之OSAL事件创建、处理详解一、OSAL事件二、创建OSAL事件1、定时器2、消息传递三、OSAL事件处理 一、OSAL事件 二、创建OSAL事件 1、定时器 osal_start_timerEx osalAddTimer osalFindTimer osalTimeUpdate osalTimerUpdate osal_set_event( freeTimer->task_id, freeTimer->event_flag ); 2、消息传递 osal_msg_all

weixin_41118203的博客 7435

Zemax热分析实战:5分钟搞定双胶合透镜温度漂移优化(附操作数详解)

本文详细解析了使用Zemax进行光学系统热分析的全流程,以双胶合透镜为例,重点阐述了如何通过多重结构编辑器模拟温度变化,并利用关键操作数优化系统以抵抗温度漂移。文章提供了从基础设置到高级优化的实战技巧,帮助工程师快速掌握无热化设计方法,确保系统在宽温范围内保持稳定成像性能。

n4o5p6q7r的博客 396

基于STM32的智能衣柜系统开发实战(附完整源码与硬件设计)

本文详细介绍了基于STM32的智能衣柜系统开发实战,包括硬件设计、软件架构和云端功能实现。系统具备实时温湿度监控、自动加热除湿、紫外线杀菌等核心功能,通过STM32F103C8T6主控芯片和ESP8266无线模块实现智能控制。附完整源码与硬件设计,适合科技爱好者和开发者参考。

peach的博客 779

CC2530模块进行ZigBee实验小结

1.写在前面 今天是做了一天的实验的,真的是做了一天,从早上8点到12点,再从下午2点半整到了晚上8点,这其间进行了不厌其烦的调试与安装,可谓是困难重重,因为资料给的开发软件和光盘上的开发软件不同,所以不得不将IAR装了卸装了卸;还有连线方面上,由于是独立完成实验,而且资料上讲的的也晦涩难懂,所以一直有接线错误的问题;最令人头疼的是明明将线接好了,却在烧录软件上找不到反应,最后又不知道怎么弄得,突...

小昭的博客 1万+

Unity如何实现数字人口型同步

SALSA LipSync v2是一款实时唇音同步系统,无需音素映射即可根据音频自动生成口型动画。系统提供三大核心功能:基于音频波形分析的智能口型同步、EmoteR表情随机化工具以及Eyes眼睛/头部追踪系统。配置流程简单快捷,只需导入模型后通过一键配置完成基础设置,再添加A/E/I/O/U等基本口型混合变形即可实现基础功能。进阶功能支持表情池管理(手动/随机/强调/重复触发)和眼部动作配置(骨骼旋转或混合变形)。系统支持三种输入方式:本地音频文件分析、麦克风实时输入和文本转语音,为数字人角色提供完整的表情

TxNet 759

小白也能读懂的 ZigBee 3.0 简介

小米资深IoT工程师带您全面了解ZigBee技术!

水果篮 4万+

3、深入了解响应式扩展(Reactive Extensions)

本文深入探讨了响应式扩展(Reactive Extensions,Rx)的起源、核心概念及其在客户端和服务器端的应用。从Volta项目谈起,解析了Rx如何解决事件传输问题,并介绍了可观察对象(IObservable)和观察者(IObserver)的设计与实现机制。文章还详细讲解了Rx操作符、弹珠图的使用、拉模型与推模型的对偶性原理,并通过代码示例展示了如何将枚举转换为可观察对象。最后总结了Rx的优势,并展望其在未来软件开发中的广泛应用前景。

m2n3b4v5c6的博客 112

uniapp+renderJS+google map开发安卓版APP非小程序

uniapp+renderJS+google map开发安卓版APP非小程序,google map小叉号不显示,google map自定义marker右上角的小叉号如何去掉,uniapp+google map不显示

renkai721的专栏 667

基于ZigBee的工业废气监测系统

基于ZigBee的工业废气监测系统 摘 要 本文主要对工业现场中排放的工业废气浓度进行检测。并根据国内外气体监测技术的发展现状,提出了基于ZigBee的工业废气监测系统的设计方案。 本系统主要由单片机、气体浓度检测模块、模数转换模块、显示模块、按键、蜂鸣器和无线通信模块等组成。本文首先介绍了工业废气检测系统的研究背景意义,同时结合国内外气体检测技术的发展现状,提出了基于ZigBee的工业废气监测...

qq_34229228的博客 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ZigBee组网总结

设备类型:设备角色:ZigBee中的第一个设备,一个ZigBee只能有一个协调器;在传感器网络中也称为汇聚节点,协调器也能执行路由器的功能功能:路由功能:信息转发:ZigBee路由:Cluster-Tree AODVJr协调器建立新网络,给自己分配地址0,网络深度d0=0;如果节点i与k连接,那么节点k称为i的父节点;节点根据自身的地址Ak和网络深度dk,为节点i分配网络地址Ai和网络深度(di=dk+1)节点k为第一个与它关联的路由节点分配比自己大1的地址,之后与之关联的路由节点的地址,与前一个地址之间相

interval_package的博客 3274

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Zigbee学习(二)认识Profile和Cluster

Zigbee学习(二)认识Profile和Cluster 文章目录Zigbee学习(二)认识Profile和Cluster前言一、zigbee的江湖发展二、ZigBee Profile三、ZigBee Cluster四、小结 前言     上回书说到Zigbee的架构以及入网,这次我们来再深入了解应用层的两个重要概念,这篇文档不是实战开发手册,但是可以让我们将标准文档和代码连起来,有一些编程逻辑感。 注:本次博客参考规范文档是ZigBee联盟公开的Profile和

言午木夕的博客 2947

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

zigbee CC2530一些知识小结~~~少了点,但是很有用的~~~

1.由于目前的模块,大多数在出厂时也配备了一套ZigBee串口通讯协议,这套协议将复杂的ZigBee应用,转换为简单的,具有ZigBee网络功能的AT命令集,例如加入网络,配置网络,数据收发等功能,都可以通过单片机向串口发送简单的操作命令来完成,用户只要会单片机串口编程,无需要深入研究ZigBee协议栈,就可以轻松使用ZigBee技术。  2.协议栈里面本来就有那些功能,具体看MT开头的文件 ...

爆板乐园-BBLZONE 4391

ZigBee路由器

  ZigBee路由节点在没有入网的情况下处理游离状态,此时不能用来做数据跳转,其实,路由节点也是可以创建网络的,只是创建的网络是一个分布式网络,这就是和协调器不同的地方, 在这里不对分布式网络进行探讨。ZigBee路由节点只有在加入协调器创建的网络才能体现出它的价值,当然路由节点可以通过其他路由节点加入到网络中,也就是说,路由节点的父节点不一定是协调器,可以是其他的路由节点。路由最大的特点就是可...

不懂叫什么名字好 2697

cc2530单片机的内核是什么_ZigBee技术开发:CC2530单片机原理及应用

《ZigBee技术开发:CC2530单片机原理及应用》从ZigBee技术硬件资源出发,主要讲解支撑ZigBee技术的核心芯片CC2530的开发与应用。全书共分为6章,第1章为ZigBee技术概述,主要讲解ZigBee基础知识及应用,介绍了常用的ZigBee芯片和协议栈;第2章为开发环境,讲解了CC2530开发的软硬件环境,以及调试方法;第3章为硬件设计,讲解了硬件设计方法及开发板的使用;第4章为C...

weixin_30416493的博客 2173

ZigBee无线传感器的网络协议栈

目录1.Z-Stack协议栈1.1.ZigBee与Z-Stack的关系1.2.协议与协议栈1.3.使用Z-Stack协议栈传输 1.Z-Stack协议栈 1.1.ZigBee与Z-Stack的关系 ZigBee:基于IEEE802.15.4的RF无线接收协议标准 Z-Stack:TI公司实现ZigBee协议标准的具体代码 CC2530: 8051 + 2.4GRF     CC2530外设控制、RF应用 Z-Stack协议栈: 用OSAL来管理外设(任务轮询方式)和RF无线应用的软件系统 组成: OS.

m0_54355172的博客 2521

基于OPNET的Zigbee网络仿真(支持资料参考_相关定制)

2、通信节点:通信节点只能存在于某个子网,它是一个小的子网结构,代表了可以在一个网络中的网络设备的类型,如路由器、交换机、工作站等。目前在ZigBee网络的应用中,主要关注具体的实现过程,对网络性能的关注较少,原因在于很难将ZigBee网络集成到一个完美的环境中进行测试。但是与现实中的真实信道有差距 由于现实中的很多信道都是处于连续相的系统,因此与OPNET仿真策略中的实时仿真有很大的不同,在OPNET仿真平台下找到 真实无线连接仿真更难,另一个问题是不同网络模型的兼容性,这也可能导致通信连接不可靠。

qq_40828705的博客 533

【Zigbee智慧厕所门方案】实现App实时查看开关门状态

简介:智慧厕所门锁方案是由涂鸦Zigbee门磁SoC免开发方案改造而来,使用涂鸦ZTU模组作为主控,不但可以大大降低设备的能耗而且效率高,不易脱落,也检测不到人体,不用担心隐私问题。

三明治开发社区的博客 1049

基于GP691与GPM6000的ZigBee低功耗组网实战指南

物联网设备选型时,通信协议往往决定产品功耗、组网规模与成本。ZigBee作为低功耗无线Mesh组网技术的典型代表,凭借IEEE 802.15.4标准下的自组织网络与微安级睡眠电流,成为智能家居和工业传感器网络的高性价比选择。内容从协议选型逻辑切入,分析ZigBee在节点容量、低功耗和抗干扰方面的优势,并围绕国产GP691 SoC芯片与GPM6000模块,详细解读其射频指标、低功耗设计要点、模块天线选型、协议栈开发、OTA升级及硬件调试实战经验,帮助工程师快速搭建稳定可靠的ZigBee物联网节点。

weixin_30784501的博客 435
上一篇: win子系统Linux作为ESP32编译器
下一篇: MAKEFILE学习(1) gcc命令
萌哒兽
博客等级 码龄10年 192粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值