📄 embedded_services.h
字号:
extern char AT91F_PipeMsgReceived(AT91PS_Pipe pPipe, char const *pVoid);
#ifdef DBG_DRV_PIPE
// This function parse the error number and return a string
// describing the error message
extern char const *AT91F_PipeGetError(AT91S_PipeStatus msgId);
#endif
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// End of Pipe structure
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// DataFlash service
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include "AT91C_SPI_DataFlash.h"
/************************************************************************************************************************/
typedef unsigned int AT91S_SvcDataFlashStatus;
/************************************************************************************************************************/
typedef struct _AT91PS_SvcDataFlash {
void (*Handler) (struct _AT91PS_SvcDataFlash *, unsigned int );
AT91S_SvcDataFlashStatus (*Status) (struct _AT91S_DataflashDesc *);
void (*AbortCommand) (struct _AT91S_DataflashDesc *);
AT91S_SvcDataFlashStatus (*PageRead) (struct _AT91PS_SvcDataFlash *, unsigned int, unsigned char *, int);
AT91S_SvcDataFlashStatus (*ContinuousRead) (struct _AT91PS_SvcDataFlash *, int, unsigned char *, int);
AT91S_SvcDataFlashStatus (*ReadBuffer) (struct _AT91PS_SvcDataFlash *, unsigned char, unsigned int, unsigned char *, int);
AT91S_SvcDataFlashStatus (*MainMemoryToBufferTransfert) (struct _AT91PS_SvcDataFlash *, unsigned char,unsigned int);
AT91S_SvcDataFlashStatus (*PagePgmBuf) (struct _AT91PS_SvcDataFlash *, unsigned char, unsigned char *, unsigned int, unsigned int);
AT91S_SvcDataFlashStatus (*WriteBuffer) (struct _AT91PS_SvcDataFlash *, unsigned char, unsigned char *, unsigned int, int);
AT91S_SvcDataFlashStatus (*WriteBufferToMain) (struct _AT91PS_SvcDataFlash *, unsigned char, unsigned int);
AT91S_SvcDataFlashStatus (*PageErase) (struct _AT91PS_SvcDataFlash *, unsigned int);
AT91S_SvcDataFlashStatus (*BlockErase) (struct _AT91PS_SvcDataFlash *, unsigned int);
AT91S_SvcDataFlashStatus (*MainMemoryToBufferCompare) (struct _AT91PS_SvcDataFlash *, unsigned char, unsigned int);
AT91S_DataflashDesc DataFlashDesc; // dataflash descriptor
AT91PS_Dataflash pDevice; // Pointer on a dataflash features array
char *pData; // private data
}AT91S_SvcDataFlash, *AT91PS_SvcDataFlash;
/************************************************************************************************************************/
typedef AT91PS_SvcDataFlash (*AT91PF_OpenSvcDataFlash) (const AT91PS_PMC, AT91PS_SvcDataFlash);
/************************************************************************************************************************/
extern AT91PS_SvcDataFlash AT91F_OpenSvcDataFlash (const AT91PS_PMC, AT91PS_SvcDataFlash);
extern void AT91F_DataFlashHandler (AT91PS_SvcDataFlash , unsigned int);
extern AT91S_SvcDataFlashStatus AT91F_DataFlashGetStatus (AT91PS_DataflashDesc);
extern void AT91F_DataFlashAbortCommand (AT91PS_DataflashDesc);
extern AT91S_SvcDataFlashStatus AT91F_DataFlashPageRead (AT91PS_SvcDataFlash,unsigned int,unsigned char *,int);
extern AT91S_SvcDataFlashStatus AT91F_DataFlashContinuousRead (AT91PS_SvcDataFlash ,int ,unsigned char *,int);
extern AT91S_SvcDataFlashStatus AT91F_DataFlashReadBuffer (AT91PS_SvcDataFlash, unsigned char, unsigned int, unsigned char *, int);
extern AT91S_SvcDataFlashStatus AT91F_MainMemoryToBufferTransfert (AT91PS_SvcDataFlash ,unsigned char ,unsigned int );
extern AT91S_SvcDataFlashStatus AT91F_DataFlashPagePgmBuf (AT91PS_SvcDataFlash,unsigned char,unsigned char*,unsigned int,unsigned int);
extern AT91S_SvcDataFlashStatus AT91F_DataFlashWriteBuffer (AT91PS_SvcDataFlash, unsigned char, unsigned char *, unsigned int, int);
extern AT91S_SvcDataFlashStatus AT91F_WriteBufferToMain (AT91PS_SvcDataFlash, unsigned char, unsigned int);
extern AT91S_SvcDataFlashStatus AT91F_PageErase (AT91PS_SvcDataFlash, unsigned int);
extern AT91S_SvcDataFlashStatus AT91F_BlockErase (AT91PS_SvcDataFlash, unsigned int);
extern AT91S_SvcDataFlashStatus AT91F_MainMemoryToBufferCompare (AT91PS_SvcDataFlash, unsigned char, unsigned int);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// End of DataFlash service
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// CRC service
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
extern const unsigned char bit_rev[256];
extern void CalculateCrc32(const unsigned char *,unsigned int, unsigned int *);
extern void CalculateCrc16(const unsigned char *, unsigned int , unsigned short *);
extern void CalculateCrcHdlc(const unsigned char *, unsigned int, unsigned short *);
extern void CalculateCrc16ccitt(const unsigned char *, unsigned int , unsigned short *);
/************************************************************************************************************************/
typedef const unsigned char* AT91PS_SVC_CRC_BIT_REV ;
typedef void (*AT91PF_SVC_CRC32) (const unsigned char *, unsigned int, unsigned int *);
typedef void (*AT91PF_SVC_CRC16) (const unsigned char *, unsigned int, unsigned short *);
typedef void (*AT91PF_SVC_CRCHDLC) (const unsigned char *, unsigned int, unsigned short *);
typedef void (*AT91PF_SVC_CRCCCITT)(const unsigned char *, unsigned int , unsigned short *);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// End of CRC service
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Sinus service
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
typedef short (*AT91PF_Sinus) (int angle);
typedef const short * AT91PS_SINE_TAB;
/************************************************************************************************************************/
extern short AT91F_Sinus(int angle);
extern const short AT91C_SINUS180_TAB[256];
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// End of Sinus service
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ROM Entry service
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
typedef void (TypeAICHandler) (void) ;
/************************************************************************************************************************/
// ROM BOOT Structure Element Definition (liv v2)
typedef struct _AT91S_MEMCDesc
{
AT91PS_MC memc_base ; /* Peripheral base */
unsigned char periph_id ; /* MC Peripheral Identifier */
} AT91S_MEMCDesc, *AT91PS_MEMCDesc ;
typedef struct _AT91S_Pio2Desc
{
AT91PS_PIO pio_base ; /* Base Address */
unsigned char periph_id ; /* Peripheral Identifier */
unsigned char pio_number ; /* Total Pin Number */
} AT91S_Pio2Desc, *AT91PS_Pio2Desc ;
typedef struct _AT91S_SPIDesc
{
AT91PS_SPI spi_base ;
const AT91PS_PIO pio_base ;
unsigned char periph_id ;
unsigned char pin_spck ;
unsigned char pin_miso ;
unsigned char pin_mosi ;
unsigned char pin_npcs[4] ;
} AT91S_SPIDesc, *AT91PS_SPIDesc ;
typedef struct _AT91S_USART2Desc
{
AT91PS_USART usart_base ; /* Peripheral base */
const AT91PS_PIO pio_base ; /* IO controller descriptor */
unsigned int pin_rxd ; /* RXD pin number in the PIO */
unsigned int pin_txd ; /* TXD pin number in the PIO */
unsigned int pin_sck ; /* SCK pin number in the PIO */
unsigned int pin_rts ; /* RTS pin number in the PIO */
unsigned int pin_cts ; /* CTS pin number in the PIO */
unsigned int pin_dtr ; /* DTR pin number in the PIO */
unsigned int pin_ri ; /* RI pin number in the PIO */
unsigned int pin_dsr ; /* DSR pin number in the PIO */
unsigned int pin_dcd ; /* DCD pin number in the PIO */
unsigned int periph_id ; /* USART Peripheral Identifier */
} AT91S_USART2Desc, *AT91PS_USART2Desc ;
typedef struct _AT91S_TWIDesc
{
AT91PS_TWI TWI_base ;
const AT91PS_PIO pio_base ;
unsigned int pin_sck ;
unsigned int pin_sda ;
unsigned int periph_id;
}AT91S_TWIDesc, *AT91PS_TWIDesc;
typedef struct _AT91S_STDesc
{
AT91PS_ST st_base ; /* Peripheral base address */
TypeAICHandler *AsmSTHandler ; /* Assembly interrupt handler */
unsigned char PeriphId ; /* Peripheral Identifier */
} AT91S_STDesc, *AT91PS_STDesc;
/************************************************************************************************************************/
typedef struct _AT91S_RomBoot {
const unsigned int version;
// Peripheral descriptors
const AT91S_MEMCDesc MEMC_DESC;
const AT91S_STDesc SYSTIMER_DESC;
const AT91S_Pio2Desc PIOA_DESC;
const AT91S_Pio2Desc PIOB_DESC;
const AT91S_USART2Desc DBGU_DESC;
const AT91S_USART2Desc USART0_DESC;
const AT91S_USART2Desc USART1_DESC;
const AT91S_USART2Desc USART2_DESC;
const AT91S_USART2Desc USART3_DESC;
const AT91S_TWIDesc TWI_DESC;
const AT91S_SPIDesc SPI_DESC;
// Objects entry
const AT91PF_OpenPipe OpenPipe;
const AT91PF_OpenSBuffer OpenSBuffer;
const unsigned int reserved1;
const AT91PF_OpenSvcXmodem OpenSvcXmodem;
const AT91PF_OpenCtlTempo OpenCtlTempo;
const unsigned int reserved2;
const unsigned int reserved3;
const AT91PF_OpenSvcDataFlash OpenSvcDataFlash;
const AT91PF_SVC_CRC16 CRC16;
const AT91PF_SVC_CRCCCITT CRCCCITT;
const AT91PF_SVC_CRCHDLC CRCHDLC;
const AT91PF_SVC_CRC32 CRC32;
const AT91PS_SVC_CRC_BIT_REV Bit_Reverse_Array;
const AT91PS_SINE_TAB SineTab;
const AT91PF_Sinus Sine;
} AT91S_RomBoot, *AT91PS_RomBoot;
#define AT91C_ROM_BOOT_ADDRESS ((const AT91S_RomBoot *) ( *((unsigned int *) (AT91C_IROM + 0x20))) )
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// End of ROM Entry Service
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -