RK3399 驱动开发 _ 03 - Android8.1编译自己驱动到内核

c交叉编译成可执行文件在android上运行 平台用的是rk3399-android-10。 以下是一个超级简单的例子:本文是不需要用makefile编译的例子,有时小工具只涉及到一个或极少的c文件时,一条指令编译即可。 单独建一个文件夹名为hello_world,里面就一个c文件。 test@ubuntu-07:~/workspace$ ls hello_world/ hello.c c文件代码: #include<stdio.h> int main(void) { printf("hello world\n"); 阅读详情


前言

在Android系统开发中,经常需要编译自己的驱动到内核。
以helloworld为例,分为以下步骤:

  • 添加驱动文件
  • 关联上下级驱动编译文件
  • 重新编译内核

一、添加驱动文件

  1. 在/kernel/drivers/char/目录下,新建helloworld目录
  2. 在helloworld目录下新建helloworld.c文件:
#include <linux/module.h>
#include <linux/kernel.h> 
static int helloworld_init(void)        
{
	printk("helloworld_init\r\n");
	return 0;
}
static void helloworld_exit(void)    
{
	printk("helloworld_exit\r\n");
}

module_init(helloworld_init);    
module_exit(helloworld_exit); 
  1. 在helloworld目录下新建Kconfig文件:
config helloworld
        bool "hellworld support"
        default y
        help
                helloworld Kconfig
  1. 在helloworld目录下新建Makefile文件
obj-$(CONFIG_helloworld)        += helloworld.o 
  1. 编译内核kernel,观察.config文件,会出现:
    在这里插入图片描述

二、关联上下级驱动编译文件

  1. 在char目录下Kconfig文件里添加:
source "drivers/char/helloworld/Kconfig"
  1. 在char目录下Makefile文件里添加:
obj-$(CONFIG_helloworld)        += helloworld.o 

三、重新编译内核

make distclean
make ARCH=arm64 rockchip_defconfig -j8
make ARCH=arm64 rk3399-xxxx.img -j8  

RK3399安卓系统下的摄像头开发 本文描述了rk3399在安卓系统下摄像头开发的过程、遇到的一些问题及相应的解决思路,希望能帮助到各位。这里需要准备RK3399的开发板,带mipi接口的摄像头,在虚拟机搭建的ubuntu环境下编译,准备好开发板的安卓系统源码。RK3399 开发板分别带有两个 MIPI,一个 DVP 摄像头接口,rk3399平台可以支持多种不同接口的Camera,如MIPI,DVP,UVC,USB camera等。 对于DVP,MIPI接口的,是在文件注册camera,isp控制器接收; 对于UVC,USB接口的只要移除文件 阅读详情

相关推荐

[RK3399] [Android7.1] 调试笔记:TSC2007 触摸屏

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.103 Board: Firefly-AIO-3399C TSC2007 的 Datasheet 给出了它的一个典型应用电路: 我们自己打了几块调试的小板,大概如下图这样

Yumin's Blog 6718

RK3399开发板调试android8.1功能实现

        本次课程将会使用 RK3399 多块开发板,使用 android 8.1 最新代码,带领大家把开发板上面的硬件模块功能都实现了总体课程规划如下;        1准备篇        2.点亮屏幕        3.触摸屏        4.以太网WIF和蓝牙        5.USB功能实现和TF卡        6.GPIO驱动操作及串口        7.camera摄像头        8. audio音频

实战视频教程- RK3399 Android10.0 驱动/内核开发

15年以上嵌入式实战经验。曾工作于某外企,期间由于工作突出,以技术优势被调往集团总部研发部工作,有海外工作的经历。也曾工作于多个上市公司,做过多个欧洲产品,其中包括德国产品,产品品质可媲美于德国工业级产品。此外也曾工作于OPPO系海外高端手机品牌oneplus(一加手机)公司。参与最初的oneplus一代,二代及X代及OPPO多款高端旗舰机的研发。所做项目经手的平台有高通,MTK,RK,展讯,ATMEL,Freescale,Marvell,ST等.人生格言莫向外求!1课程特点实战性比较强。...

butterflyvy的博客 2851

蔡工RK3288_Android7.1驱动开发入门

1、基于RK3288平台,基于Android7.1,kernel4.4的驱动移植、调试和开发,驱动框架分析,跟代码等;2、讲解RK平台的常用外设模块驱动(例如LCD,TP,GPIO,wifi+BT,IR,camera和key等)的调试流程以及一些简单代码跟踪; 3、介绍一些Android底层驱动开发知识等;

瑞芯微 RK3399 android7.1 wifi驱动build in 方式

    RK3399的CPU采用big.LITTLE大小核架构,双Cortex-A72大核+四Cortex-A53小核结构,对整数、浮点、内存等作了大幅优化,在整体性能、功耗及核心面积三个方面都具革命性提升。 RK3399的GPU采用四核ARM新一代高端图像处理器Mali-T860,集成更多带宽压缩技术:如智能迭加、ASTC、本地像素存储等,还支持更多的图形和计算接口,总体性能比上一代提升45%。...

szhebin的博客 1952

瑞芯微 RK3399 android7.1 wifi驱动移植

      RK3399的CPU采用big.LITTLE大小核架构,双Cortex-A72大核+四Cortex-A53小核结构,对整数、浮点、内存等作了大幅优化,在整体性能、功耗及核心面积三个方面都具革命性提升。 RK3399的GPU采用四核ARM新一代高端图像处理器Mali-T860,集成更多带宽压缩技术:如智能迭加、ASTC、本地像素存储等,还支持更多的图形和计算接口,总体性能比上一代提升45...

szhebin的博客 4050

安卓RK3399编译驱动MPU6050,实现内核层与HAL层驱动

安卓RK3399编译驱动MPU6050,实现内核层与HAL层驱动,今天我们一起学习一下如何实现对一款有驱动代码的传感器适配安卓系统 DTS即Device Tree Source 设备树源码, Device Tree是一种描述硬件的数据结构,它起源于 OpenFirmware (OF)。 其主要目的是定义MCU各个引脚的接线功能,通过修改这个文件实现同一芯片适配不同板卡方案。

666小奇的博客 2779

[RK3399 Android7.1.2]新增wifi&bt模块:rtl8822cs驱动以及解决所遇问题

Platform: ROCKCHIP Chip: RK3399 OS: Android7.1.2 Kernel: 4.4.126 背景 硬件替换芯片rtl8822cs;未改代码情况下,WIFI:点pown on立即跳到off bt:点on 无反应,串口打印 [ 875.649281] ret = 0 [ 875.704811] [BT_RFKILL]: bt shut off power [ 875.726554] [BT_RFKILL]: rfkill_rk_set_power: set bt wa

但行前路 无问西东 8072

视频教程-RK3399开发板调试android8.1功能实现-驱动/内核开发

RK3399开发板调试android8.1功能实现 2017年毕业于五邑大学...

weixin_32925305的博客 1257

[RK3399][Android7.1] USB模块中的控制器和PHY

RK3399平台上有两个Type-C USB3.0和两个USB2.0 Host。 USB控制器和PHY: rk3399平台控制器和PHY的连接示意图如下: 两个Type-C USB3.0控制器都可以⽀持OTG(USB2.0 OTG功能是通过连接到USB2.0 PHY实现),并且向下兼容USB2.0/1.1/1.0。但由于Kernel同一时间只能使用一个OTG,所以RK3399 SDK...

Kris Fei's blog 1万+

RK3399 android7.1 wifi无法打开问题排查

   RK3399的CPU采用big.LITTLE大小核架构,双Cortex-A72大核+四Cortex-A53小核结构,对整数、浮点、内存等作了大幅优化,在整体性能、功耗及核心面积三个方面都具革命性提升。 RK3399的GPU采用四核ARM新一代高端图像处理器Mali-T860,集成更多带宽压缩技术:如智能迭加、ASTC、本地像素存储等,还支持更多的图形和计算接口,总体性能比上一代提升45%。 ...

szhebin的博客 3657

[RK3399][Android7.1]编写一个安卓的GPIO驱动

1、在kernel/drivers目录下新建ioctrl文件夹 # cd kernel/drivers # mkdir ioctrl 在/driver/ioctrl目录下,新建ioctrl.c ,ioctrl.h , Kconfig, Makefile 等4个文件。 2、在Kconfig下添加代码: config IOCTRL tristate "io Control"...

小杜的专栏 2846

[RK3399]移植工具i2c-tools

Platform: ROCKCHIP Chip: RK3399 OS: Android7.1.2 Kernel: 4.4.126 简介 i2c-tools 是一款免费开源的工具,是linux系统下一款i2c调试利器,方便对i2c总线和i2c设备调试,i2ctools工具支持的功能包括: 检测cpu i2c总线:一般用于cpu i2c总线驱动调试,但是一般情况下,cpu原厂已经提供i2c总线驱动,除非是原厂驱动开发,否则大多数驱动编写场景都是基于i2c总线驱动开发i2c设备驱动。 检测i2c总线挂载的设备

但行前路 无问西东 2767

20211123-RK3399的Android10的原生编译

20211123-RK3399的Android10的原生编译

南岭笑笑生之家 6470

RK3568平台开发:深入解析Android的Makefile

Makefile是一个重要的构建工具,用于自动化构建和管理Android应用程序的编译过程。Makefile是一种文本文件,其中包含一系列规则,用于描述软件项目的构建过程。在Android开发中,Makefile是一个重要的构建工具,用于自动化构建和管理Android应用程序的编译过程。本文将详细讲解RK3568平台上Android开发中的Makefile,并提供相应的源代码示例。除了上述示例中的基本规则,Makefile还支持其他功能,如条件判断、循环、变量操作等。使用上述Makefile可以通过执行。

CyberGenius的博客 258

[RK3568 Android11] 教程之kernel Makefile和Kconfig使用示例

目录 前言 一、新建haha驱动目录 二、haha目录创建Makefile和Kconfig文件 三、上层目录配置haha目录 前言 前面几篇文章已介绍了Makefile和Kconfig文件,此篇文章讲解在实际开发中是怎么新建一个新的驱动目录,并编译里面的驱动文件; 一、新建haha驱动目录 1、创建haha目录 在kernel/driver目录下新建haha目录: cd kernel/driver mkdir haha 2、h...

~未来可期~ 879

RK3399上编译riffa驱动

      最近买了友善的rk3399开发板NanoPC-T4,主要是看中它的pcie,想作为主机来开发FPGA的pcie接口,因此走了上了折腾的道路。     友善提供的系统还是很多的,有安卓7.0、lubuntu、ubuntu core,以及三方支持的DietPi。开始安装的lubuntu,预装了很多常用的软件,wifi工具、浏览器等都有,装上基本就能满足使用需求,这里折腾的是locale和t...

u011356594的博客 2164

RK3399平台入门到精通系列讲解 - 总目录

欢迎大家来到内核笔记的《RK3399平台开发入门到精通系列讲解》,开始前博主先列出RK3399平台学习的大纲,同时这也可以作为大家学习RK3399内核与安卓框架的参考。下面蓝字都是传送门,点击进入即可:...

内核笔记 10万+
上一篇: RK3399 驱动开发 | 02 - Android8.1 系统生成默认GPIO
下一篇: win10系统中指令保存JLink-RTT调试log
chenkanuo
博客等级 码龄12年 1140粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值