00001 /****************** COPYRIGHT (C) 2007-2010 RAISONANCE S.A.S. *****************/ 00010 /******************************************************************************/ 00011 00012 /* Includes ------------------------------------------------------------------*/ 00013 #include "circle.h" 00014 00016 00017 /* Private defines -----------------------------------------------------------*/ 00018 00019 /* Private typedef -----------------------------------------------------------*/ 00020 00021 /* Private variables ---------------------------------------------------------*/ 00022 00023 /* Private function prototypes -----------------------------------------------*/ 00024 00025 /* Private functions ---------------------------------------------------------*/ 00026 void fct_dummy() {;} 00027 00028 /* External variables ---------------------------------------------------------*/ 00029 00030 /* Public functions ----------------------------------------------------------*/ 00031 00032 /******************************************************************************* 00033 * 00034 * delayms 00035 * 00036 *******************************************************************************/ 00045 /******************************************************************************/ 00046 void Delayms( u32 nTime ) 00047 { 00048 TimingDelay = nTime; 00049 00050 while ( TimingDelay != 0 ); 00051 } 00052 00053 void delay( s32 count ) 00054 { 00055 volatile s32 i, j; 00056 for ( i = 0; i < count; i++ ) 00057 for ( j = 0; j < 1300; j++ ) 00058 fct_dummy(); 00059 } 00060 00061 /******************************************************************************* 00062 * 00063 * starting_delay 00064 * 00065 *******************************************************************************/ 00071 /*******************************************************************************/ 00072 void starting_delay( void ) 00073 { 00074 delay( 100 ); 00075 } 00076 00077 /****************************************************************************** 00078 * 00079 * Sleep_Call 00080 * 00081 ******************************************************************************/ 00082 /* To respect Misra rule 3 : */ 00083 /*"Assembly language functions that are called from C should be written as C functions containing only in-line assembly language. */ 00084 /*In-line assembly language should not be embedded in normal C code." */ 00085 00086 void Sleep_Call( void ) 00087 { 00088 asm( "wfi" ); 00089 } 00090 00091 /******************************************************************************* 00092 * 00093 * UTIL_LoadApp 00094 * 00095 *******************************************************************************/ 00103 /********************************************************************************/ 00104 void UTIL_LoadApp( index_t app ) 00105 { 00106 } 00107 00108 00109 /******************************************************************************* 00110 * 00111 * my_strlen 00112 * 00113 *******************************************************************************/ 00122 /******************************************************************************/ 00123 len_t my_strlen( const u8* p ) 00124 { 00125 len_t len = 0; 00126 00127 for ( ; *p; p++ ) 00128 { 00129 len++; 00130 } 00131 00132 return len; 00133 } 00134 00135 00137 00138 /******************************************************************************* 00139 * 00140 * UTIL_GetUsb 00141 * 00142 *******************************************************************************/ 00150 /******************************************************************************/ 00151 u8 UTIL_GetUsb( void ) 00152 { 00153 return ( GPIO_ReadInputDataBit( USB_DISCONNECT_PORT, USB_DISCONNECT_PIN ) == Bit_SET ); 00154 } 00155 00156 00157 /******************************************************************************* 00158 * 00159 * UTIL_SetIrqHandler 00160 * 00161 *******************************************************************************/ 00170 /********************************************************************************/ 00171 void UTIL_SetIrqHandler( s32 Offs, tHandler pHDL ) 00172 { 00173 if ( ( Offs >= 8 ) && ( Offs < 0x180 ) ) // YRT20110627 - Changed for F200 00174 *( tHandler* )( CIRCLEOS_RAM_BASE + Offs ) = pHDL; 00175 } 00176 00177 /******************************************************************************* 00178 * 00179 * UTIL_GetIrqHandler 00180 * 00181 *******************************************************************************/ 00192 /********************************************************************************/ 00193 tHandler UTIL_GetIrqHandler( s32 Offs ) 00194 { 00195 if ( ( Offs >= 8 ) && ( Offs < 0x180 ) ) // YRT20110627 - Changed for F200 00196 return *( tHandler* )( CIRCLEOS_RAM_BASE + Offs ); 00197 else 00198 return 0; 00199 } 00200 00201 /******************************************************************************* 00202 * 00203 * UTIL_GetAppAddress 00204 * 00205 *******************************************************************************/ 00214 /********************************************************************************/ 00215 uint_t UTIL_GetAppAddress( const u8* AppName ) 00216 { 00217 s32 i; 00218 00219 for ( i = 0; i < MAXAPP; i++ ) 00220 { 00221 tMenuItem* curapp; 00222 long unsigned addr; 00223 00224 if ( ( *ApplicationTable )[ -i ] == APP_VOID ) 00225 { 00226 break; 00227 } 00228 else 00229 { 00230 addr = ( long unsigned )( *ApplicationTable )[ -i ] ; 00231 addr &= 0x00FFFFFF; 00232 addr |= 0x08000000; 00233 curapp = ( tMenuItem* ) addr; 00234 if ( !strcmp( curapp->Text, AppName ) ) 00235 { 00236 return addr; 00237 } 00238 } 00239 } 00240 00241 return 0; 00242 } 00243