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就是操作系统的心脏。


USB通讯速度翻倍秘诀:手把手教你用WinUsb替代HID协议(附Zadig驱动配置图解) 本文详细介绍了如何通过WinUsb技术替代传统HID协议,实现USB通讯速度的显著提升。从技术对比、实现原理到Zadig驱动配置图解,手把手教你完成免驱高速通讯方案,适用于数据采集、固件升级等场景,实测速度可达HID协议的2倍以上。 阅读详情

相关推荐

强化学习 之 Actor Critic

简介 Actor Critic是一种结合体算法: (1)Actor 的前生是 Policy Gradients,这能让它毫不费力地在连续动作中选取合适的动作,而 Q-learning 做这件事会瘫痪; (2)Critic 的前生是 Q-learning 或者其他的 以值为基础的学习法,能进行单步更新,而传统的 Policy Gradients 则是回合更新,这降低了学习效率。 算法思想 Actor...

Test_tju的博客 811

OSAL系统框架专题

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

wince--linux的专栏 1278

深入解析STM32H743双精度FPU:从配置误区到三角函数加速技巧

本文深入解析STM32H743双精度FPU的配置与优化技巧,涵盖常见误区、三角函数加速及飞控系统应用。通过实测数据展示如何利用FPU提升数学运算效率,特别适合工业控制、无人机飞控等高精度实时应用场景。

weixin_29190651的博客 641

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

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

城南花已开的博客 5288

基于FPGA的数据采集系统(一)

整体系统设计 本设计主要是对ADC和DAC的使用,主要实现功能流程为:首先通过串口向FPGA发送控制信号,控制DAC芯片tlv5618进行DA装换,转换的数据存在ROM中,转换开始时读取ROM中数据进行读取转换。其次用按键控制adc128s052进行模数转换100次,模数转换数据存储到FIFO中,再从FIFO中读取数据通过串口输出显示在pc上。其整体系统框图如下: 图1:FPGA数据采集系统框图 从图中可以看出,该系统主要包括9个模块:串口接收模块、按键消抖模块、按键控制模块、ROM模块、D..

phflovelt的博客 2万+

SMPTE ST 2110 概论(一)

SMPTE ST 2110 概论(一)前言ST 2110与ST 2022-6ST 2110-10:基本结构与时序ST 2110-20:未压缩的视频流后续 前言 这是一份我在实习期间制作的,关于SMPTE ST 2110的简单介绍。 这篇文章主要以梳理总结 SMPTE ST 2110 的概念为主,关于具体的内容,比如IP数据报的格式、RTP时间戳的具体代码内容等等,大家可以查阅 SMPTE ST 2...

Cidd0422的博客 2万+

zigbee复习笔记

zigbee复习笔记

weixin_51869611的博客 3262

DSP在线升级方案:TMS320C6678使用网络或者串口输出升级数据进行固件升级

下面这段先引用创龙的说明 IBL 运行后, 将从 NOR FLASH 或 NAND FLASH 的 0x00080000 地址引导 ELF/BBLOB 格式 用户程序。 当引导 ELF 格式用户程序时, IBL 会解析用户程序头部信息,并根据头部信息 拷贝不同的代码段至指定 CPU 内存地址,然后将 PC 指针跳转至_c_int00, 再运行用户程 序。当引导 BBLOB 格式用户程序时,由于无头部信息, IBL 会将用户程序拷贝至 0x9E000000 (该内存地址为 IBL 代码指定),并将 PC..

ToneChip的专栏,一个传统的嵌入式码农,裸机编程 1941

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

OPC通信从入门到精通_1_OPC基础知识及简单C#程序编写(OPCDA,OPCUA简介;OPC通信数据流框架图;C#程序编写)

ModbusTCP通信是采用直接方式进行通信,用OPC的方式如何去做呢?PLC作为ModbusTCP服务器,用KepServer作为ModbusTCP客户端,同时作为OPC服务器,PC作为OPC客户端新建项目,加载dll库(利用COM技术写的)添加引用,查看到其中包含了众多方法其中OPCGroups继承于IOPCGroups接口。

分享学习成长历程,Winter is coming! 1万+

ubuntu-emto-cpa 测试和使用(单核运行)

ubuntu-emto-cpa 测试和使用(单核运行)

qq_45834835的博客 1400

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

流体动力学仿真软件:XFlow_(20).案例研究:声学仿真

在流体动力学仿真软件中,声学仿真是一个重要的应用领域。通过数值模拟,工程师和科研人员可以预测和分析流体系统中的声学现象,如气动噪声、声波传播和声场分布。这些仿真结果对于优化设计、降低噪声水平和提高系统性能具有重要意义。本节将详细介绍如何在流体动力学仿真软件中进行声学仿真,包括声学模型的选择、参数设置、后处理分析等内容,并通过具体的案例来说明这些步骤。

kkchenjj的博客 902

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

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

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

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

博客 1499

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

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

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

2401_85012481的博客 1023

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

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、付费专栏及课程。

余额充值