123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- /**************************************************************************************************
- Filename: OSAL_SampleApp.c
- Revised: $Date: 2008-02-07 12:10:00 -0800 (Thu, 07 Feb 2008) $
- Revision: $Revision: 16360 $
- Description: This file contains all the settings and other functions
- that the user should set and change.
- Copyright 2007 Texas Instruments Incorporated. All rights reserved.
- IMPORTANT: Your use of this Software is limited to those specific rights
- granted under the terms of a software license agreement between the user
- who downloaded the software, his/her employer (which must be your employer)
- and Texas Instruments Incorporated (the "License"). You may not use this
- Software unless you agree to abide by the terms of the License. The License
- limits your use, and you acknowledge, that the Software may not be modified,
- copied or distributed unless embedded on a Texas Instruments microcontroller
- or used solely and exclusively in conjunction with a Texas Instruments radio
- frequency transceiver, which is integrated into your product. Other than for
- the foregoing purpose, you may not use, reproduce, copy, prepare derivative
- works of, modify, distribute, perform, display or sell this Software and/or
- its documentation for any purpose.
- YOU FURTHER ACKNOWLEDGE AND AGREE THAT THE SOFTWARE AND DOCUMENTATION ARE
- PROVIDED 揂S IS?WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
- INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE,
- NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL
- TEXAS INSTRUMENTS OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER CONTRACT,
- NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR OTHER
- LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES
- INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE
- OR CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT
- OF SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
- (INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS.
- Should you have any questions regarding your right to use this Software,
- contact Texas Instruments Incorporated at www.TI.com.
- **************************************************************************************************/
- /*********************************************************************
- * INCLUDES
- */
- #include "ZComDef.h"
- #include "hal_drivers.h"
- #include "OSAL.h"
- #include "OSAL_Tasks.h"
- #if defined ( MT_TASK )
- #include "MT.h"
- #include "MT_TASK.h"
- #endif
- #include "nwk.h"
- #include "APS.h"
- #include "ZDApp.h"
- #if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT )
- #include "ZDNwkMgr.h"
- #endif
- #if defined ( ZIGBEE_FRAGMENTATION )
- #include "aps_frag.h"
- #endif
- #include "SampleApp.h"
- /*********************************************************************
- * GLOBAL VARIABLES
- */
- // The order in this table must be identical to the task initialization calls below in osalInitTask.
- const pTaskEventHandlerFn tasksArr[] = {
- macEventLoop,
- nwk_event_loop,
- Hal_ProcessEvent,
- #if defined( MT_TASK )//如果定义串口任务
- MT_ProcessEvent,
- #endif
- APS_event_loop,
- #if defined ( ZIGBEE_FRAGMENTATION )
- APSF_ProcessEvent,
- #endif
- ZDApp_event_loop,
- #if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT )
- ZDNwkMgr_event_loop,
- #endif
- SD_App_ProcessEvent//应用层处理函数
- };
- const uint8 tasksCnt = sizeof( tasksArr ) / sizeof( tasksArr[0] );
- uint16 *tasksEvents;
- /*********************************************************************
- * FUNCTIONS
- *********************************************************************/
- /*********************************************************************
- * @fn osalInitTasks
- *
- * @brief This function invokes the initialization function for each task.
- *
- * @param void
- *
- * @return none
- */
- void osalInitTasks( void )
- {
- uint8 taskID = 0;
- // 分配内存,返回指向缓冲区的指针
- tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt);
- // 设置所分配的内存空间单元值为0
- osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt));
- // 任务优先级由高向低依次排列,高优先级对应taskID 的值反而小
- macTaskInit( taskID++ ); //macTaskInit(0) ,用户不需考虑
- nwk_init( taskID++ ); //nwk_init(1),用户不需考虑
- Hal_Init( taskID++ ); //Hal_Init(2) ,用户需考虑
- #if defined( MT_TASK )
- MT_TaskInit( taskID++ );
- #endif
- APS_Init( taskID++ ); //APS_Init(3) ,用户不需考虑
- #if defined ( ZIGBEE_FRAGMENTATION )
- APSF_Init( taskID++ );
- #endif
- ZDApp_Init( taskID++ ); //ZDApp_Init(4) ,用户需考虑
- #if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT )
- ZDNwkMgr_Init( taskID++ );
- #endif
- //用户创建的任务
- SD_App_Init( taskID ); // SampleApp_Init _Init(5) ,用户需考虑
- }
- /*********************************************************************
- *********************************************************************/
|