⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 po_kernel.h

📁 ATMEL公司的demo程序,USB驱动程序,与识别片上flash,并进行枚举和操作.
💻 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 + -