广州致远电子有限公司 VxWorks BSP移植技术笔记 VxWorks技术笔记
void sysSerialHwInit2 (void) {
(void)intConnect(INUM_TO_IVEC(devParas[0].vector), __uartIsr,
(int)(SIO_CHAN *)&__GsamsungsiochanUart0 ); }
? sysSerialChanGet()
此函数主要是从通道号得到该通道的设备描述符。实现很简单。如程序清单3.19所示:
程序清单3.19 sysSerialChanGet
SIO_CHAN *sysSerialChanGet (int iChan) {
if (iChan < 0 || iChan >= N_SIO_CHANNELS) { return (SIO_CHAN *)ERROR; }
return (sysSioChans[iChan]); }
4. 对target agent的支持
目标板与主机的在线调试往往是通过串口通讯的。所以为了支持对target agent,我们有必要做一些驱动函数。一般情况下target与主机之间通讯模式有三种: ? ? ?
中断模式(interrupt mode):支持任务级的调试。 查询模式(polled mode):支持系统级别的调试。 双模式(bi-mode):支持两种模式之间的切换。
要支持查询模式,我们必须进一步实现两个设备的驱动函数-xxPollInput、xxPollOutput,然后修改Ioctl()相应的项。一般情况下建议支持查询模式。
5. 总结
从上面的叙述里我们可以总结出完成一个串行设备的驱动我们要做如下的一些工作: ? ? ? ? ? ? ? ?
config.h中修改NUM_TTY 修改sysSerial.c中的函数:sysSerialHwInit()、sysSerialHwInit2()、sysSerialChanGet()。
编写底层入口函数的安装函数xxDevInit() 编写具体的驱动入口函数: xxCallBackInstall( ) xxPollOutput( ) xxPollInput( ) xxIoctl( )
xxTxStartup( )
VxWorks中串行设备驱动系统各个模块(函数)之间的关系如图3.12:
移植技术笔记 ?2009 Guangzhou ZHIYUAN Electronics CO., LTD.
21
广州致远电子有限公司 VxWorks BSP移植技术笔记 VxWorks技术笔记
图3.12 vxWorks中串行设备驱动个模块的关系图
3.5 编译链接
移植技术笔记 ?2009 Guangzhou ZHIYUAN Electronics CO., LTD.
22
广州致远电子有限公司 VxWorks BSP移植技术笔记 VxWorks技术笔记
4. 参考资料
移植技术笔记 ?2009 Guangzhou ZHIYUAN Electronics CO., LTD.
23
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库vxWorks_BSP移植笔记(6)在线全文阅读。
相关推荐: