FreeCalypso > hg > freecalypso-sw
view gsm-fw/L1/include/l1_macro.h @ 899:ab20a5e9dbf3
gsm-fw/L1/dsp code made into a library in preparation for adding patch codes
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Sun, 05 Jul 2015 02:50:49 +0000 |
parents | 30f2e994fcb0 |
children |
line wrap: on
line source
/************* Revision Controle System Header ************* * GSM Layer 1 software * L1_MACRO.H * * Filename l1_macro.h * Copyright 2003 (C) Texas Instruments * ************* Revision Controle System Header *************/ #include "l1_confg.h" #if(L1_DYN_DSP_DWNLD == 1) #include "../dyn_dwl_include/l1_dyn_dwl_const.h" #endif #include "l1_types.h" #if (TRACE_TYPE==5) && NUCLEUS_TRACE //WARNING : this type of trace takes a lot of space in data RAM (~16kB) // switch for Nucleus debugging messages. #define NU_ALLOC_ERR 0 #define NU_DEALLOC_ERR 1 #define NU_RCVE_QUEUE_ERR 2 #define NU_SEND_QUEUE_ERR 3 #define NU_OBTA_SEMA_ERR 4 #define NU_RLSE_SEMA_ERR 5 // Nucleus debug function. #define DEBUGMSG(status,type) \ if(status) switch(type) \ { \ case NU_ALLOC_ERR: \ printf("NU mem. allocation error %d file %s line %d\n", status,__FILE__,__LINE__); \ exit(0); \ break; \ \ case NU_DEALLOC_ERR: \ printf("NU mem. deallocation error %d file %s line %d\n", status,__FILE__,__LINE__); \ exit(0); \ break; \ \ case NU_RCVE_QUEUE_ERR: \ printf("NU rcve queue error %d file %s line %d\n", status,__FILE__,__LINE__); \ exit(0); \ break; \ \ case NU_SEND_QUEUE_ERR: \ printf("NU send queue error %d file %s line %d\n", status,__FILE__,__LINE__); \ exit(0); \ break; \ \ case NU_OBTA_SEMA_ERR: \ printf("NU obtain semaph. error %d file %s line %d\n", status,__FILE__,__LINE__); \ exit(0); \ break; \ \ case NU_RLSE_SEMA_ERR: \ printf("NU release semaph. error %d file %s line %d\n", status,__FILE__,__LINE__); \ exit(0); \ break; \ \ default: \ printf("Unknown error %d file %s line %d\n", status,__FILE__,__LINE__); \ exit(0); \ break; \ } #else #define DEBUGMSG(status,type) #endif /************************************************************/ /* Macros for FAST INTEGER MODULO implementation. */ /************************************************************/ #define IncMod(operand, increment, modulo) \ if( (operand += increment) >= modulo ) operand -= modulo // Define MACRO for selecting the min. time to next task. #define Select_min_time(Task_Time, Min_Time) \ if(Task_Time < Min_Time) Min_Time = Task_Time; /************************************************************/ /* Macros for MCU/DSP API address conversion . */ /************************************************************/ #define API_address_dsp2mcu(dsp_address) \ (MCU_API_BASE_ADDRESS + ((API)((dsp_address) - DSP_API_BASE_ADDRESS) * 2)) #define API_address_mcu2dsp(mcu_address) \ (DSP_API_BASE_ADDRESS + ((UWORD32)((mcu_address) - MCU_API_BASE_ADDRESS) / 2)) /* Added temporirly for RF_KEypad build */ #if (L1_RF_KBD_FIX == 1) #if(OP_L1_STANDALONE == 1) #if 0 typedef struct { // T_RVF_MB_ID prim_id; // T_RVF_ADDR_ID addr_id; // BOOL swe_is_initialized; // T_RVM_RETURN (*error_ft)(T_RVM_NAME swe_name, // T_RVM_RETURN error_cause, // T_RVM_ERROR_TYPE error_type, // T_RVM_STRING error_msg); #if ((CHIPSET == 12) || (CHIPSET == 15)) // T_KPD_RECEIVED_KEY_INFO received_key_info[KPD_MAX_DETECTABLE]; //UINT8 nb_active_keys; UWORD16 repeat_time; UWORD16 long_time; #endif } T_KPD_ENV_CTRL_BLK_L1; #endif // typedef unsigned char KPD_CORRECTION_RATIO; //UWORD8 //omaps00090550 void kpd_timer_modify(UWORD8 ratio,UWORD32 frameNumber); //omaps00090550 #define KBR_DEBOUNCING_TIME (MEM_KEYBOARD + 0x02) /* KBR debouncing time reg */ #define KPD_DEBOUNCING_TIME (0x3F) #define KBR_LONG_KEY_TIME (MEM_KEYBOARD + 0x04) /* KBR long key time reg */ #define KBR_TIME_OUT (MEM_KEYBOARD + 0x06) /* KBR Time out reg */ #define KBR_CTRL_REG (MEM_KEYBOARD + 0x00) /* KBR control reg */ #define KBR_STATE_MACHINE_STATUS (MEM_KEYBOARD + 0x0E) /* KBR state machine status reg */ #define KPD_CLK_DIV32 4 #define KPD_CLOCK_DIVIDER KPD_CLK_DIV32 #define SetGroupBits16(registre,position,number,value) {\ UINT16 tmp=registre;\ volatile UINT16 tmpvalue;\ tmpvalue = (value<<(16-(number)));\ tmpvalue = (tmpvalue>>(16-(number)));\ tmp&=~((0xFFFF>>(16-(number)))<<(position));\ tmp|=((tmpvalue&(0xFFFF>>(16-(number))))<<(position));\ registre=tmp;\ } #endif/* #if(OP_L1_STANDALONE == 1) */ #endif /* #if (L1_RF_KBD_FIX == 1) */ /* Added temporirly for RF_KEypad build */