[问题]请教如何将Linux Driver 写成2个*.c file

楼主: greenlinux (GreenLinux)   2015-05-11 15:49:10
请教各位:
因为需要在 driver.c 内多写一些function 而造成 c file 看起来很乱.
我想将 driver.c 内部分 function 移到另一个 *.c file (Ex: drv_func.c)
在不修改 Makefile 及 Kconfig 的前提下可以做到吗.??
THANKS
作者: wens (文思)   2015-05-11 16:04:00
不修改 Makefile, 那你是要从一个 .c #include 另一个吗?
楼主: greenlinux (GreenLinux)   2015-05-11 16:21:00
wens大,可以#include *.c吗.? 不是只能#include *.h?
作者: askacis (ASKA)   2015-05-11 17:00:00
可以include c, kernel source tree 里面有人这样搞,
楼主: greenlinux (GreenLinux)   2015-05-11 20:41:00
a大谢谢.
作者: musicguitar (WOO)   2015-05-12 01:23:00
单纯好奇 为何不改Makefile呢?有何好处吗?
楼主: greenlinux (GreenLinux)   2015-05-12 21:05:00
只是希望只改driver code, 不要动到其他设定而已抱歉那请问大家为何比较建议改Makefile?Makefile改成 obj-$(xx) +=driver.o func.o 这样?
作者: leolarrel (真.粽子无双)   2015-05-13 09:46:00
目前的kernel Makeifle 逻辑确实要照上面说法才行目前的kernel Makefile 逻辑确实要照上面的方法才行
作者: askacis (ASKA)   2015-05-13 20:26:00
改makefile比较正统而且直觉,include C的做法算是特例目的是为了解决一些Kbuild系统linking上的问题
作者: yvb   2015-05-14 01:33:00
其实 include .c 也未必不好. 拉出去的 .c 若是一堆 staticvariables 和 static functions, 又要在 driver.c 中叫用...弄到 Makefile 那边去处理, 也许反而麻烦又可能出错.只不过, 若整理清楚, 依旧全放在 driver.c 有何不可?
楼主: greenlinux (GreenLinux)   2015-05-14 09:52:00
yvb大. 了解.. 谢谢..我将一些全域变量,func宣告在*.h而让driver及func呼叫测试到现在暂时没有问题.(我是用#include "*.c"方法要分开 driver.c 及 func.c 的用意只是想...一些基本driver功能不会改,所以就放在driver.c而一些作为测试或跟 Android NDK 沟通的部分经常要改所以想先分出来..

Links booklink

Contact Us: admin [ a t ] ucptt.com