驱动移植心得

不同系统间,驱动移植工作流程:

  1. 验证此驱动在原系统上的运行情况, 是否驱动正常,是否满足需求.
  2. 判断驱动原有接口函数是否能与目的系统对接得上, 若不能,则需要实现能对接得上的接口,并在原系统上通过传入假参数的方式进行验证.
  3. 去除驱动代码的所有非本驱动目录下的头文件, 譬如:一般<xxx.h>之类为非本驱动目录下的头文件, “xx.h”则一般为本驱动目录下的.
  4. 补全所有缺失的函数定义.
  5. 去掉所有#if 和#ifdef等开关条件.
  6. 使用ln -s命令, 将驱动目录链接至目的系统上, 测试是否能编译通过.
  7. 在目的系统编译通过后, 即可调用接口函数测试驱动.若驱动出错,修改错误完成后,应先在原系统上进行验证.如此反复.

心得:

        1.将头文件注释时, 定然有许多未定义的函数或宏定义.而在补充所缺少的定义时, 可以将它们都搬运至一个合适的头文件里.

        2.将头文件注释时, 应由下至上一个一个头文件地进行注释.再编译看看有无错误.然后搜索被移植驱动所在的目录,看看是否有其他文件依旧包含此头文件,也将其注释掉.

        3.在原系统确认 #ifdef 与 #if (xxx) 等编译条件的开启情况, 确认后保留会被编译的代码.因为,在移植工作里,目的系统可能并没有定义这些宏.

        4.去掉所有非被移植驱动目录内的所有头文件, 即使是<stdio.h>也不放过.

        5.头文件的去除工作, 函数定义的补充工作, 函数的重新实现工作,都应在原系统的代码上完成, 而非在目的系统上完成. 这样,每完成一次修改工作,可以立即在原系统上验证.

        6.使用命令”ln -s /原系统驱动目录 /目的系统驱动目录” 

        将需要移植的驱动目录连接至目的系统上, 这样每次修改只需一次即可, 便可在原系统和目的系统上联合验证.

        同时, 某些汇编文件也可以通过此方法链接到目的系统驱动目录上, 因为汇编代码不好嵌入c代码内, 只好将汇编文件添加进编译列表中.

        7.使用命令”sed” 为驱动的每一个函数添加函数名打印, 方便追踪代码执行, 获知驱动入口函数.

        8.对于难以移植的函数, 可以试着将它删除, 然后在原系统上测试看看,驱动是否仍运行正常.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值