当前位置: 技术问答>linux和unix
关于44B0的串口中断方式
来源: 互联网 发布时间:2016-04-20
本文导语: 我最近的项目有一个问题,想请教各位高手一下。 项目用的开发板CPU是ARM7的S3C44B0,操作系统采用uClinux,现在开发板已经实现与外部设备的485串口的通信了, 但是现在板上的串口数据采集程序是用查询方式...
我最近的项目有一个问题,想请教各位高手一下。
项目用的开发板CPU是ARM7的S3C44B0,操作系统采用uClinux,现在开发板已经实现与外部设备的485串口的通信了, 但是现在板上的串口数据采集程序是用查询方式去采集485串口数据的,为了提高效率,我们想看看能否用中断方式来采集485串口数据,请问CPU的工作环境是否需要做什么配置,或者该如何实现。谢谢!
项目用的开发板CPU是ARM7的S3C44B0,操作系统采用uClinux,现在开发板已经实现与外部设备的485串口的通信了, 但是现在板上的串口数据采集程序是用查询方式去采集485串口数据的,为了提高效率,我们想看看能否用中断方式来采集485串口数据,请问CPU的工作环境是否需要做什么配置,或者该如何实现。谢谢!
|
首先要确保你硬件支持中断方式!
然后到具体驱动中,你需要调用request_irq()来绑定中断号和一个中断函数; 建议看看内核串口驱动部分的实现吧(比如参考:8250.c),在这个框架中做,不要全部都自己实现。
PS: 如果你串口驱动是不是你自己写的,而是系统自带的,也许已经是中断方式了,建议在用户空间编程用select()试试
good luck!
然后到具体驱动中,你需要调用request_irq()来绑定中断号和一个中断函数; 建议看看内核串口驱动部分的实现吧(比如参考:8250.c),在这个框架中做,不要全部都自己实现。
PS: 如果你串口驱动是不是你自己写的,而是系统自带的,也许已经是中断方式了,建议在用户空间编程用select()试试
good luck!