原创 ZStack-1.4.3-1.2.1学习(4)

2010-3-19 22:08 2729 9 9 分类: MCU/ 嵌入式

以下讨论如何修改Hal层或增加新的驱动函数使Z-Stack适应目标硬件。对于修改,include文件夹下不得修改,target文件夹中的驱动函数可按需修改,硬件驱动配置在hal_board_cfg.h中修改。对于添加新驱动功能函数,头文件置于include中,驱动文件置于target中,如果GPIO引脚冲突或不需要,则可通过编译标志放弃某些驱动的编译,GPIO的特殊配置在hal_board_cfg.h定义,同时工程中应添加文件夹容纳新增驱动函数。在options中选择Exclude from build停止某些目标驱动的编译。GPIO的配置分布在不同的位置,需要修改的话要修改hal_board_cfg.h


中断响应宏定义为HAL_ISR_FUNCTION(f,v),具体看hal_mcu.h。使用示例如下:


HAL_ISR_FUNCTION(prototype, vector)


{


       /*Do something when this interrupt happens!!!*/


}


其中,prototype为程序名,vector为中断向量,有如下定义,


#define  RFERR_VECTOR   VECT(  0, 0x03 )   /*  RF TX FIFO Underflow and RX FIFO Overflow   */<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


#define  ADC_VECTOR     VECT(  1, 0x0B )   /*  ADC End of Conversion                       */


#define  URX0_VECTOR    VECT(  2, 0x13 )   /*  USART0 RX Complete                          */


#define  URX1_VECTOR    VECT(  3, 0x1B )   /*  USART1 RX Complete                          */


#define  ENC_VECTOR     VECT(  4, 0x23 )   /*  AES Encryption/Decryption Complete          */


#define  ST_VECTOR      VECT(  5, 0x2B )   /*  Sleep Timer Compare                         */


#define  P2INT_VECTOR   VECT(  6, 0x33 )   /*  Port 2 Inputs                               */


#define  UTX0_VECTOR    VECT(  7, 0x3B )   /*  USART0 TX Complete                          */


#define  DMA_VECTOR     VECT(  8, 0x43 )   /*  DMA Transfer Complete                       */


#define  T1_VECTOR      VECT(  9, 0x4B )   /*  Timer 1 (16-bit) Capture/Compare/Overflow   */


#define  T2_VECTOR      VECT( 10, 0x53 )   /*  Timer 2 (MAC Timer)                         */


#define  T3_VECTOR      VECT( 11, 0x5B )   /*  Timer 3 (8-bit) Capture/Compare/Overflow    */


#define  T4_VECTOR      VECT( 12, 0x63 )   /*  Timer 4 (8-bit) Capture/Compare/Overflow    */


#define  P0INT_VECTOR   VECT( 13, 0x6B )   /*  Port 0 Inputs                               */


#define  UTX1_VECTOR    VECT( 14, 0x73 )   /*  USART1 TX Complete                          */


#define  P1INT_VECTOR   VECT( 15, 0x7B )   /*  Port 1 Inputs                               */


#define  RF_VECTOR      VECT( 16, 0x83 )   /*  RF General Interrupts                       */


#define  WDT_VECTOR     VECT( 17, 0x8B )   /*  Watchdog Overflow in Timer Mode             */

要修改中断响应函数可直接在定义处修改,要添加新的中断响应则需要目标微控制器的头文件。
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
9
关闭 站长推荐上一条 /3 下一条