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

📄 embedded_services.h

📁 at91rm9200的一级bootloader
💻 H
📖 第 1 页 / 共 3 页
字号:
/* 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_BASE_ROM + 0x20))) )



/*----------------------------------------------------------------------------	*/

/* End of ROM Entry Service							*/

/*----------------------------------------------------------------------------	*/





/*----------------------------------------------------------------------------	*/

/*----------------------------------------------------------------------------	*/

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -