?? po_kernel.h
字號:
// ----------------------------------------------------------------------------
// ATMEL Microcontroller Software Support - ROUSSET -
// ----------------------------------------------------------------------------
// DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
// DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
// OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// ----------------------------------------------------------------------------
// File Name : po_kernel.h
// Object : Encapsulation of specific kernel functions
// Creation : JCB 15/apr/2005
// Modif :
// ----------------------------------------------------------------------------
#ifndef _PO_KERNEL_H
#define _PO_KERNEL_H
// **************************************************
// Typedef
// **************************************************
typedef int KERNEL_LOCK;
typedef KERNEL_LOCK* PKERNEL_LOCK;
// **************************************************
// Internal structure
// **************************************************
typedef struct {
char *first;
char *free;
char *current;
char *last;
int NbOctetsLibres;
int status;
} RING_ID;
extern RING_ID fw_fifoId;
// **************************************************
// Internal functions
// **************************************************
// Memory functions
extern void* po_malloc(ULONG size);
extern void po_free(void* buffer);
#ifdef ADS_COMPIL
// Critical section functions
extern void po_unlock(void);
extern void po_lock(void);
extern void po_memcpy( void *dest, void *src, unsigned int len );
extern void AT91F_enable_interrupt(void);
extern void AT91F_disable_interrupt(void);
#else
// Critical section functions
extern __ramfunc void po_unlock(void);
extern __ramfunc void po_lock(void);
extern __ramfunc void po_memcpy( void *dest, void *src, unsigned int len );
extern __ramfunc void AT91F_enable_interrupt(void);
extern __ramfunc void AT91F_disable_interrupt(void);
#endif
extern int po_strcmp(const char* s1, const char* s2);
// FIFO functions
extern int po_rngBufPut(RING_ID* pRingId,char* buffer,int len);
extern int po_rngBufGet(RING_ID* pRingId,char* buffer,int len);
extern RING_ID po_rngCreate(int len);
extern int po_rngDelete(RING_ID* pRingId);
extern int po_rngNBytes(RING_ID* pRingId);
#ifdef ADS_COMPIL
extern void po_rngFlush(RING_ID* pRingId);
#else
extern __ramfunc void po_rngFlush(RING_ID* pRingId);
#endif
extern int po_rngIsEmpty(RING_ID* pRingId);
extern int po_rngBufPut(RING_ID* pRingId,char* buffer,int len);
extern int po_rngBufGet(RING_ID* pRingId,char* buffer,int len);
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -