z-stack halprocesspoll与初始化

cc2530入门 与串口中断处理_cc2530串口通信中断(1) 在这个函数中,首先通过一个do-while循环来遍历tasksEvents[],找到第一个具有事件的任务(即具有待处理事件的优先级最高的任务,因为序号低的优先级高),然后跳出循环此时就得到了有事件待处理的具有最高优先级的任务序号idx,然后通过events = tasksEvents[idx]语句,将这个当前具有最高优先级任务的时间取出,接着就调出(tasksArr[idx])(idx,events)函数来执行具体的处理函数了。// 这里会在以后的case中用到,作为一个事件的标致。 阅读详情

在osal的轮训任务只有halprocesspoll()里面只轮询timer和UART,在调试的过程中均没有引起task任务切换的标志出现。因此,鄙人可以大胆的猜想,在操作系统的初始化中是不是设置了定时轮询的任务。先调出所有初始化函数:

osal_int_disable( INTS_ALL );

  // Initialize HAL
  HAL_BOARD_INIT();

  // Make sure supply voltage is high enough to run
  zmain_vdd_check();

  // Initialize stack memory
  zmain_ram_init();

  // Initialize board I/O
  InitBoard( OB_COLD );

  // Initialze HAL drivers
  HalDriverInit();

  // Initialize NV System
  osal_nv_init( NULL );

  // Determine the extended address
  zmain_ext_addr();

  // Initialize basic NV items
  zgInit();

  // Initialize the MAC
  ZMacInit();

#ifndef NONWK
  // Since the AF isn't a task, call it's initialization routine
  afInit();
#endif

  // Initialize the operating system
  osal_init_system();

  // Allow interrupts
  osal_int_enable( INTS_ALL );

  // Final board initialization
  InitBoard( OB_READY );

  // Display information about this device
  zmain_dev_info();

  /* Display the device info on the LCD */
#ifdef LCD_SUPPORTED
  zmain_lcd_init();

在这些初始化函数中,比较有嫌疑的就是InitBoard()了,追踪定义再onboard.c里面。发现在这里初始化了timer,HalTimerConfig()里面一大堆参数,先不管。在最后初始化了key,

    /* Initialize Key stuff */
    OnboardKeyIntEnable = HAL_KEY_INTERRUPT_DISABLE;
    HalKeyConfig( OnboardKeyIntEnable, OnBoard_KeyCallback);

感觉这里有情况果然,追踪HalKeyConfig()的定义(在key.c里面)发现最后一行osal_start_timerEx (Hal_TaskID, HAL_KEY_EVENT, HAL_KEY_POLLING_VALUE);halkey的时钟的任务ID是hal_TaskID,事件是HAL_KEY_EVENT,轮训时间是HAL_KEY_POLLING_VALUE=100ms.也就是说每100ms轮询一次按键。从这里可以看出,timer就是操作系统的心脏。


深入解析YT8521S千兆以太网PHY芯片的设计与调试要点 本文深入解析了YT8521S千兆以太网PHY芯片的设计与调试要点。重点剖析了硬件设计中的电源方案、RGMII接口电平配置(尤其是1.8V电平方案)以及PCB布局布线等关键细节,并提供了从硬件检查、驱动配置到性能测试的完整调试流程,帮助工程师规避常见陷阱,实现稳定可靠的千兆网络连接。 阅读详情

相关推荐

macOS 发票查验全攻略:从证书导入到Safari调试

本文详细介绍了在macOS上进行发票查验的全流程,包括证书下载、钥匙串访问导入、Safari浏览器调试等关键步骤。重点解决了验证码不显示等常见问题,提供了证书信任设置和开发者工具使用的实用技巧,帮助用户顺利完成税务发票在线查验。

weixin_29204749的博客 546

OSAL系统框架专题

OSAL系统框架专题2010-4-15 2:47:00 9. TI协议栈所用系统框架探讨。 51的系统往往不是太大,但是几十K的程序,也足以让一个初学者望而却步。我们首先忽略C语言本身的难度,光是系统框架也让生手读起来很吃力,再加上这种到处是API跟"define"的程序,还

wince--linux的专栏 1278

电子货架标签应用浅析(ESL)

​【 关注与分享,是对原创最大的鼓励 】 年底了,会断续介绍几个主要的BLE的应用及市场情况,这篇文章介绍的是电子货架标签, ESL (Electronic Shelf Label)。 文章将从应用简介,市场规模,产业链,头部玩家及系统框架进行介绍。只对技术感兴趣的可以直接拉到底。 ESL简介 ESL,是一种显示产品,其主要是替代传统的纸质标签,应用于大型商超,...

iotthings的博客 4691

Zigbee实现两个节点间的串口通信

“串口终端1”的数据,如何被“节点 1”所接收,并且发送出去的? 串口数据是由哪层来负责的呢?--HAL。 。 。恩,猜对了。但这个肯定不是靠猜的,其中的过程 就不讲了。 让我们从主循环 (osal_start_system) 的Hal_ProcessPoll函数找下去 (用source insight 的同学可以用 ctrl +) ,Hal_ProcessPoll ==> HalU...

城南花已开的博客 5288

手把手教你用ROS2控制PX4无人机画个圆:从C++代码到Gazebo仿真全流程解析

本文详细解析了如何使用ROS2控制PX4无人机实现圆形轨迹飞行,涵盖从C++代码编写到Gazebo仿真的全流程。重点介绍了Offboard模式下的控制算法实现、圆形轨迹生成的数学原理,以及解决通信延迟和坐标系转换等常见问题的实用技巧。通过实战案例,帮助开发者快速掌握无人机轨迹跟踪仿真的核心技术。

weixin_30839881的博客 95

基于 国产USRP B210 的通信+侦测+干扰三合一实验平台,解锁无线攻防全场景!

在当代复杂电磁环境与多样化通信需求并存的背景下,软件定义无线电(SDR)技术正展现出前所未有的系统灵活性与功能可重构性。由两台USRP-LW B210软件无线电设备模拟无线链路通信过程,能够模拟多种无线通信信号传输及图像传输场景,适用于通信协议验证、抗干扰测试及教学实验。,支持"通信-侦测-干扰-优化"的闭环实验流程,为无线通信领域的教学科研与工程应用提供了一套经济高效、功能完备的解决方案。系统可对通信链路信号进行快速、自动化侦测、识别、告警,并支持多种干扰信号生成、模式切换及效果评估功能。

luowave2012的博客 832

zigbee复习笔记

zigbee复习笔记

weixin_51869611的博客 3262

生成式引擎优化(GEO):启动GEO优化的5个有效策略

随着生成式AI的普及,传统SEO正被GEO(生成式引擎优化)取代。本文提出GEO五大核心策略:用户意图解析、结构化内容设计、语义关键词优化、对话式内容创作和权威信源建设。研究表明,优化后的内容在AI答案中的引用率提升300%,点击率增长27%。文章还介绍了BERT模型、Schema标记等关键技术工具,并指出未来GEO将向多模态优化、实时数据更新方向发展。企业需避免简单堆砌关键词,应建立长期内容策略,通过结构化、权威性内容在AI时代保持竞争优势。

解锁AI流量新红利!🚀 GEO优化(生成引擎优化)助您掌控AI搜索,让AI成为您的品牌最佳代言人! 2786

ZigBee_CC2530_08H_HAL层分析

Zigbee的HAL层提供了开发板所有硬件设备(例如LED、LCD、KEY、UART等)的驱动函数和接口。HAL文件夹为硬件平台的抽象层,包含common、include和target三个文件夹。 1 Common文件夹   common文件夹下包含有hal_assert.c和hal_drivers.c两个文件。其中hal_assert.c是声明文件,用于调试,hal_drivers.c是驱动

博客 4019

告别过热焦虑:用Ansys Icepak给你的电子设备做个“水冷体检”(附冷板案例全流程)

本文详细介绍了如何利用Ansys Icepak进行电子设备水冷系统的热仿真分析,帮助工程师解决设备过热问题。通过冷板案例全流程演示,展示了从几何处理、材料设定到求解器设置和后处理的关键步骤,提升散热设计效率与准确性。

weixin_29299807的博客 441

PCIe Gen4眼图测试实战:如何用示波器快速定位信号完整性问题(附避坑指南)

本文详细解析了PCIe Gen4眼图测试中的信号完整性诊断方法,通过示波器操作技巧和实战案例,帮助工程师快速定位抖动、反射等信号问题。特别针对眼图闭合、阻抗失配等常见问题提供了避坑指南和解决方案,提升高速信号调试效率。

weixin_29230773的博客 372

Z-stack之OSAL初始化流程

转自点击打开链接 我使用的协议栈版本及例子信息: ZigBee2006\Texas Instruments\ZStack-1.4.3-1.2.1\Projects\zstack\Samples\SampleApp OSAL作为操作系统抽象层,是整个Z-Stack运行的基础,用户自己建立的任务和应用程序都必须在此基础上运行,那我们知道整个Z-S...

weixin_30826095的博客 494

Allegro172版本DFM功能介绍

Allegro172版本提供了实时DFM检查的功能,让违反要求的地方实时以DRC的形式报出来,让加工不可加工因素在设计的时候同步避免。打开Constraint,选择Manufacturing, 所有DFM相关DRC都在这。把所有下面DRC开关(DFM,DFA,DFT)都选择on,选择OK。这个规则和物理和间距规则等等都没有关系,单独的一个加工规则。这些DRC大部分是正常的,正常的可以去修改规则来消除。等待DRC刷新,板子上会出现很多DRC,类似下图。下面介绍如何调用和产生DFM规则。一直往下点击next。

weixin_54787054的博客 1339

ZSTACK协议栈--OSAL主循环流程

OSAL系统主循环函数:void osal_start_system( void ){#if !defined ( ZBIT ) //不知道是什么东西for(;;) // Forever Loop#endif{uint8 idx = 0;Hal_ProcessPoll(); // This replaces MT_SerialPoll() and osal_check_timer().//轮询TI

河北正定欢迎您-少占鱼 1921

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

OV9734 DATASHEET,完整规格书

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

ZigBee_CC2530_0DH_关于协议栈时钟的一些记录

关于CC2530芯片,ZStack-CC2530-2.5.1a协议栈中系统时钟、定时器、定时器2的溢出寄存器的函数调用关系和逻辑

博客 1499

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

cc2530入门 与串口中断处理_cc2530串口通信中断

在OSAL框架中,Hal_ProcessPoll()函数是在一个死循环中,所以每过一定的时间就会执行到。这是MT程序包中URAT接收数据的代码,在这里面需要修改的地方是,在数据接收完毕后需要添加一个回车,便于我们区分不同传输数据,具体的代码为UartRxBuf.RxBuf[count]=‘\n’;这几句是关键,在接收数据完毕后,为时间消息分配缓存,设置事件标志,保存状态,最后一句最重要,将包含该消息的指针发送到App_TaskID任务ID中,使得在下一次轮询时能够检测到此状态的变化,执行相应的后续操作。

2401_85012481的博客 1023

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Zigbee协议栈z-stack学习之串口透明传输(SerialApp)数据的收发过程

 一、串口终端1的数据,如何被节点1所接收,并且发送出去的? 串口数据是由HAL层来负责的,让我们从主循环 (osal_start_system) 的Hal_ProcessPoll函数找下去 ,Hal_ProcessPoll ==> HalUARTPoll ==> HalUARTPollDMA。在这个 HalUARTPollDMA 函数里最后有这样一句话:dmaCfg.uartCB

u013243314的专栏 5457

Zstack协议栈--系统时钟定时器

我使用的协议栈版本及例子信息:ZigBee2006\Texas Instruments\ZStack-1.4.3-1.2.1\Projects\zstack\Samples\SampleApp ……OOXX……~~~~个人觉得,在协议栈里面涉及到两类定时器:一类是硬件定时器,对应cc2430上的几个Timer。系统时钟定时器为硬件定时器另一类是软件定时器,通过osal_start_timer()添

河北正定欢迎您-少占鱼 3121

Z-STACK之cc2530串口驱动详解上

Z-STACK中串口采用DMA和ISR两种方式,本章主要讲解ISR方式的串口驱动。在OASL操作系统轮询时调用了Hal_ProcessPoll ()函数,在此函数中如果定义了HAL_UART=TRUE,则轮询串口,看时候有数据要发送或有数据要接收。定位到HalUARTPoll()函数中,如果是采用ISR方式即HAL_UART_ISR为1或2时,调用ISR串口轮询函数HalUARTPollISR()

crystal736的专栏 1万+

TI BLE STACK - OSAL

TI 的OSAL做的很不错,不过看起来也挺费劲可能自己水平太差吧,网上买的谷雨的开发板觉得确实挺不错的。 做点学习笔记,首先是记录OSAL里执行的顺序流程,主要是task ,event,message 1, APP_Main.c: /* Initialize the operating system */ osal_init_system(); 其中初始化了 // In...

weixin_30293135的博客 175

zigbee协议栈初使用(四)无线串口透传

zigbee协议栈初使用(四)无线串口透传 串口透传意思是通过Zigbee实现两个PC通讯,两个Zigbee模块地位应该是一样的。   在void MT_UartInit(),有代码如下: 1#if defined (ZTOOL_P1) || defined (ZTOOL_P2) uartConfig.callBackFunc = MT_UartProcessZTo...

云垂大鹏翻的博客 4646

ZigBee串口说明

一、串口的初始化 //系统初始化 byte osal_init_system( void ) { …… osalInitTasks();//系统任务初始化 …… }   //任务初始化 void osalInitTasks( void ) { …… #if defined( MT_TASK )//如果定义了MT_TASK

逍遥l天的博客 2979

Z-Stack中OSAL定时器事件触发流程分析---转载

写在前面:之所以会注意到定时器事件是因为在做断点调试的时候会进入osal_start_timerEx这个函数,而且这个函数之后还会涉及到hal_uartpoll有关DMA之类的函数,于是发现了这篇文章,写得很详细。      我们先看一下osal_start_timerEx()函数,是怎么调用到最后的osal_set_event()函数,触发事件处理的。下面是osal_start_timer

tanqiuwei的专栏 7020

浅谈 OSAL中的事件捕获

按键的事件捕获 1.HAL\Commen\ hal_drivers.c”中     if (events & HAL_KEY_EVENT)         {                 #if (defined HAL_KEY) && (HAL_KEY == TRUE)                 /* Check for keys */                 Ha

yd820392779的专栏 1637

Z-Stack 软件架构分析

Z-Stack 软件架构分析 分类: ZigBee2012-02-22 17:07 79人阅读 评论(0) 收藏 举报 Z-Stack的main函数在Zmain.c中,总体上来说,它一共做了两件工作,一个是系统初始化,即有启动代码来初始化硬件系统和软件架构需要的各个模块,另一个作用就是开福寺执行操作系统实体。 1.系统初始化    系统启动代码需要完成初始化硬件平台

海纳百川 9416

串口透传(SerialApp)的数据发送过程

一、串口终端1的数据,如何被节点1所接收,并且发送出去的? 串口数据是由HAL层来负责的,让我们从主循环 (osal_start_system) 的Hal_ProcessPoll函数找下去 ,Hal_ProcessPoll ==> HalUARTPoll ==> HalUARTPollDMA。在这个 HalUARTPollDMA 函数里最后有这样一句话:dmaCfg.uartCB(HAL_U

al86866365的专栏 8200
上一篇: z-stack初始化物理地址
下一篇: z-stack 数据传输AF层application frame
cucmakeit
博客等级 码龄14年 30粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值