• Main Page
  • Related Pages
  • Data Structures
  • Files
  • File List
  • Globals

Util_spe.c

Go to the documentation of this file.
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