以串口驱动为例:整个驱动程序分为三部分:
1、板级相关部分:
Serial_SAM9263EK.cpp 中实现内容有:
(1)连接引脚的初始化工作,如:
{"TXD0", AT91C_PIN_PA(26), 0, PIO_DEFAULT, PIO_PERIPH_A},
{"RXD0", AT91C_PIN_PA(27), 0, PIO_DEFAULT, PIO_PERIPH_A},
{"RTS0", AT91C_PIN_PA(28), 0, PIO_DEFAULT, PIO_OUTPUT},
{"CTS0", AT91C_PIN_PA(29), 0, PIO_DEFAULT, PIO_PERIPH_A},
(2)RTS引脚的置位与清除函数
2、9263—cpu相关部分:
Serial_SAM9263.cpp 中实现内容有:
BSPGetSerialID (T_SERIAL_INIT_STRUCTURE *pInitContext)//获取串口ID
BSPGetSerialBaseAddress (T_SERIAL_INIT_STRUCTURE *pInitContext)//获取相应串口的基地址
BSPGetSerialPdcBaseAddress (T_SERIAL_INIT_STRUCTURE *pInitContext)//设置pInitContext所指结构体中的dwPDCBaseAddress
BSPGetSerialPmcBaseAddress (T_SERIAL_INIT_STRUCTURE *pInitContext)//设置pInitContext所指结构体中的dwPMCBaseAddress
3、926x—cpu相关部分
串口驱动程序主要在第三部分实现:
rts为低时,表示可以接收。
cts为低时,表示可以发送。