微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > 怎样看库已经被编绎到KERNEL中啦

怎样看库已经被编绎到KERNEL中啦

时间:10-02 整理:3721RD 点击:
怎样将一个编好的库放进KERNEL中,等KERNEL可以连接到,库一般放在什么地方.有什么办法可以看到库的函数名!

在 内核的 makefile 里面加入库文件,例如:
obj-$(CONFIG_TOUCHSCREEN_ICN838X) +=icn838x_ts_iic.o
icn838x_ts_iic-objs := icn838x_iic_ts.o icn838x_iic_slave.o lib.a

[DESCRIPTION]
有些第3方驱动只释放了lib库文件,因此编译上需要额外处理

[KEYWORD]
kernel
第3方lib库
编译
build

[SOLUTION]
注意:只能讲lib库放在kernel编译到的地方,如下:
alps/kernel/
alps/mediatek/custom/common/kernel/
alps/mediatek/custom/$platform/kernel/
alps/mediatek/custom/$proj/kernel/
alps/mediatek/kernel/
alps/mediatek/platform/$platform/kernel/core/
alps/mediatek/platform/$platform/kernel/drivers/
假设第3方库名称为test.a
(1). 如果存放的目录存在Makefile,那么只需在该Makefile最后添加:
    obj-y += test.a
    然后将test.a文件复制到该目录下,
    重新命名为test.a_shipped,目的是防止clean kernel阶段把该库给清除掉!
    重新编译kernel即可。
(2). 如果存放的目录不存在Makefile,比如在alps/mediatek/custom/目录下的kernel目录都没有Makefile,这时需要自行添加一个Makefile,内容和第1种方法差不多:
    obj := xxx.o yyy.o test.a
    以上表示将xxx.c/yyy.c和test.a编译到kernel
    然后将test.a文件复制到该目录下并重新命名为test.a_shipped
    重新编译kernel即可。

说明:对于kernel的Makefile编写规则说明,可以到网络搜索相关材料参考,比如obj-y表示要编译到kernel,而obj-m表示要编译成module,obj-n或obj-表示不编译

问题按上述方法解决

obj-y += ft_gesture_lib.a
$(obj)/ft_gesture_lib.a:$(srctree)/../$(obj)/ft_gesture_lib
        cp $(srctree)/../$(obj)/ft_gesture_lib $(obj)/ft_gesture_lib.a

makefile位置
mediatek\custom\common\kernel
obj-y += ft_gesture_lib.a
$(obj)/ft_gesture_lib.a:$(srctree)/../$(obj)/ft_gesture_lib
        cp $(srctree)/../$(obj)/ft_gesture_lib $(obj)/ft_gesture_lib.a

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top