|
从单片机转到ARM才几个月,现在马上要动手写驱动程序,虽然查阅了大量的资料,但是对Linux内核的机制还是一知半解,所以跑来请教各位!
我现在要编写的驱动程序相对简单,是将我们原来在单片机上实现的ModBus通讯协议移植到ARM上。在单片机和arm上分别实现,我分析了一下区别就在两个方面:一是最底层用串口驱动和中断,另外一个方面就是操作系统的运行机制和模块化程序结构的区别。前者,实现基本的接收和发送功能,这些串口的操作在网上有很多资料,我也细细阅读过,基本没有多大的问题;但是后者近两天看书看的头晕,因为涉及的内容包括:进程调度,中断,定时器的使用这几个方面。
现在主要是理不出一个清晰的头绪出来,我在串口接收每一个字符时需要系统产生一个中断信号,告诉我的Modbus进程,然后在串口中断中将一个定时器复位(重新开始计数),然后在时间定时器的中断中调用一个子程序来处理我接收到的字符串。
现在我的疑问是,该怎么把这几个模块组合起来构成我的modbus进程,运行在由linux调度的环境下?
今天是圣诞节,顺祝大家圣诞快乐!!!! |
|