1、对现有驱动进行拷贝,然后进行局部修改
2、不必过多深入系统内核驱动的调用过程,区分好哪些是需要修改的,哪些是内核驱动自带的
3、对于要修改的内容,参考别人成功的例子,看哪些需要修改的
4、必要时,可以先把原拷贝先不加载进驱动,把自己拷贝的驱动加载进去
5、谨记要实现的功能,按步骤实现
6、知道每个模块的作用与功能,哪些是涉及硬件,哪些是涉及系统的,一般来说,进行设备、驱动的注册时,一般不涉及驱动,只有应用层调用时才进行硬件的相关调用。
7、对串口驱动程序的改造时如果是采用外部模块加载的方式,即insmod方式,而不是内置于内核生成vmlinux,则不能使用console驱动,否则编译会出现
error: redefinition of ‘__inittest‘ /opt/kangear/hello/hello.c:16: note: previous definition of ‘__inittest‘ was here错误,会出现重定义的情况。 解决方法:去除console的相关驱动,屏蔽console_initcall()函数的调用
时间: 2024-10-14 05:22:58