韦东山驱动代码移植高通平台总论

将韦东山视频的代码在高通平台上移植,所有的代码参考韦东山一期驱动部分以及二期驱动,代码的扩充也是根据韦东山老师视频里的思路逐步的深入,由浅入深

平台:MSM8917 32位

内核版本:3.18.31

操作系统:ubuntu12.04

Android版本:7.1.2

 

1 驱动的编译

1.a 直接编译到内核

修改Makefile,在Makefile里添加(假设源文件名为foo)

obj-y += foo.o

然后编译出bootimage,烧录bootimage,重启机器进行验证

make bootimage -j4

adb reboot bootloader

fastboot flash boot bootimage

 

1.b 编译成模块

同样修改Makefile,在Makefile里添加(假设源文件名为foo)

obj-m += foo.o

可以直接编译bootimage

make bootimage -j4

编译boogimage的同时会编译modules,生成的modules一般在/system/lib/modules目录下

其它编译方法见另一篇文章

 

2 log的查看

添加的log,可以开机识别adb后,用

adb shell dmesg

或者

adb shell dmesg > d:\1\dmesg01.txt (打印到文件里查看)

或者

adb shell cat /dev/kmsg (实时打印log)

或者连接串口线,通过串口工具查看

 

 

3 应用程序编译

3.a在android源代码里编译

编写代码

编写Android.mk

示例(假设编译的源文件名为foo.c,编译出的模块名为foo)

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_SHARED_LIBRARIES := libcutils liblog (链接的共享库)

LOCAL_INCLUDES += $(LOCAL_PATH)

LOCAL_SRC_FILES +=foo.c

LOCAL_MODULE:= foo

include $(BUILD_EXECUTABLE)

 

在android根目录(android源码必须全编译过)

source build/envsetup.sh

lunch工程

mmm Android.mk所在的目录

生成的bin文件一般在目录下 out/target/product/工程/system/bin/

 

3.b 通过arm-linux-gcc静态编译(必须静态编译)

原则:下载的工具链,可以编译,编译出的程序可以执行就可以了

下载工具链

下载网址

https://www.veryarm.com/arm-none-linux-gnueabi-gcc

编写代码

编译源代码

arm-linux-gcc -o foo foo.c -static

 

4 可执行文件的验证

push可执行文件到机器进行验证

adb root

adb remount

adb mkdir /data/my

adb push foo /data/my/foo

adb shell chmod 777 /data/my/foo

adb shell /data/my/foo

 

文章列表

【韦东山驱动代码移植高通平台之一】驱动代码的结构

【韦东山驱动代码移植高通平台之二】创建了一个简单的字符设备驱动

【韦东山驱动代码移植高通平台之三】自动创建设备节点

【韦东山驱动代码移植高通平台之四】创建多个设备节点

【韦东山驱动代码移植高通平台之五】读取按键值

【韦东山驱动代码移植高通平台之六】中断读取按键值

【韦东山驱动代码移植高通平台之七】通过poll机制读取按键值

【韦东山驱动代码移植高通平台之八】通过异步通知读取按键值

【韦东山驱动代码移植高通平台之九】通过ioctl返回值读取按键值

【韦东山驱动代码移植高通平台之十】ioctl通过指针返回按键值

【韦东山驱动代码移植高通平台之十一】 通过input子系统上报按键值

【韦东山驱动代码移植高通平台之十二】通过tasklet上报键值

【韦东山驱动代码移植高通平台之十三】通过工作队列上报键值

【韦东山驱动代码移植高通平台之十四】通过定时器上报键值

【韦东山驱动代码移植高通平台之十五】互斥量

【韦东山驱动代码移植高通平台之十六】信号量

【韦东山驱动代码移植高通平台之十七】原子变量

【韦东山驱动代码移植高通平台之十八】平台设备驱动模型

【韦东山驱动代码移植高通平台之十九】平台设备通过device tree实现

【韦东山驱动代码移植高通平台之二十】结构体的使用

【韦东山驱动代码移植高通平台之二十一】proc节点的创建

【韦东山驱动代码移植高通平台之二十二】sysfs节点的创建

【驱动代码移植高通平台之二十三】高通平台i2c设备驱动

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值