📄 bspface.h
字号:
/*------------------------------------------------------------------------
Module: bspface.h
Author: AmineChen[amine@263.net]
Project: BOOT
State:
Creation Date:
Description: BSP对外接口说明
------------------------------------------------------------------------*/
/*------------------------------------------------------------------------
$Log: bspface.h,v $
Revision 1.0 2001-09-19 17:09:41+08 amine
Initial revision
------------------------------------------------------------------------*/
/*------------------------------------------------------------------------
提供BSP对外接口说明,应用参照本文件,应完全了解各驱动的使用
每种驱动的接口说明包括3部分: 设备名,控制功能码,函数原型;
外部应用可由统一接口访问,或具体驱动接口访问;
建议使用统一接口, 可提高代码的移植性和定制性,如对串口的引用;
具体驱动的函数原型本不应该暴露在应用前面,但为了信息的集中,也放在这里;
添加新驱动,先在这里添加说明,并在bspInit()中注册即可.
简化Fmem的接口,代码以后也可重用,为了简化,不使用统一驱动接口.
------------------------------------------------------------------------*/
#ifndef _BSPFACE_H
#define _BSPFACE_H
/*----------------*/
/* Standard types */
/*----------------*/
typedef unsigned int u_int ;
typedef unsigned short u_short ;
typedef unsigned char u_char ;
/* 16-bit Flash Data type */
typedef volatile unsigned short flash_word ;
/* AT91 Register type */
typedef volatile unsigned int at91_reg ;
/*----------------*/
/* Boolean values */
/*----------------*/
#define TRUE 1
#define FALSE 0
#define DQ7 0x0080
#define DQ6 0x0040
#define DQ5 0x0020
#define DQ3 0x0008
#define SECTOR_NUM 39
/*------------------------------------------------------------------------
一般接口
------------------------------------------------------------------------*/
void BspInit(void);
void BspLightTurn(BOOL on_off);
void BspDogTurn(BOOL on_off);
/*------------------------------------------------------------------------
10时钟驱动接口
------------------------------------------------------------------------*/
void STimerInit(void);
/*------------------------------------------------------------------------
Usart驱动接口
------------------------------------------------------------------------*/
/*minor不起作用*/
/*init[0]:任务号, init[1]:波特率;*/
void SerialSetup(UINT baud_rate); /*串行通道初始化*/
void SerialPollOn(void); /*关闭SCI中断*/
void SerialPollOff(void); /*打开SCI中断*/
void SerialPollConout(UCHAR ch); /*查询输出字符*/
void SerialIntRxion(void); /*打开接收中断*/
void SerialIntRxioff(void); /*关闭接收中断*/
void SerialIntTxion(void); /*打开发送中断*/
void SerialIntTxioff(void); /*关闭发送中断*/
UINT SerialIntBaud(UINT baud_rate); /*设置波特率*/
UINT SerialIntRead(UCHAR *ch_ptr); /*从串行通道中断读取字符*/
UINT SerialIntWrite(UCHAR ch); /*中断写入字符到UART*/
int UsartInit(UCHAR minor, ULONG init[4]);
int UsartRead(UCHAR minor, UCHAR *pbuf, ULONG count);
//函数声明
void Usart0_init(INT32U Mode, INT32U BAUD);
void Usart1_init(INT32U Mode, INT32U BAUD);
void UsartOpen(INT16U Port);
void UsartClose(INT16U Port);
/*fun选项定义*/
#define COMM_INT_RX 1 /*ctrl[0]=1: 打开*/
#define COMM_INT_TX 2 /*ctrl[0]=1: 打开*/
#define COMM_TIMER_10MS 3 /*定时扫描*/
#define COMM_MODEM_IN 4 /*ctrl[0]返回MODEM状态: MODEM_CTS,MODEM_DCD*/
#define MODEM_CTS 0x01
#define MODEM_DCD 0x02
#define COMM_MODEM_OUT 5 /*ctrl[0]定义MODEM状态: MODEM_DTR,MODEM_RTS*/
#define MODEM_RTS 0x01
#define MODEM_DTR 0x02
#define COMM_CLEAN_RXBUF 6
#define FLASHBIT 0xA8
/*------------------------------------------------------------------------
FLASH存储器驱动接口
------------------------------------------------------------------------*/
/*FLASH基地址,与bsp.h中的BSP_FMEM_WORK同*/
#define INODE_SECTOR 7 //文件头的存放最后扇区
BOOL FlashisEmpty(u_int base,u_char sector);
BOOL FlashErase(u_int base,u_char sector);
BOOL FlashEraseCore(u_int base, u_int offset, BOOL flag);
int FlashWrite(u_int base,u_int offset, u_char *pbuf, u_int count);
int FlashRead(u_int base,u_int offset, u_char *pbuf, u_int count);
void IDExit(u_int base);
void SetCFG(u_int base);
int Read_Manufactuer_Code(u_int base);
int SectorCpy(u_char DSector, u_char SSector);
int FlashCpy(u_int Daddr, u_int Saddr, u_int Length);
void ReadCFI(u_int base, INT16U* pData);
#endif /*_BSPFACE_H*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -