栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

【Linux】新唐NUC977编译第一个内核驱动程序Hello World

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Linux】新唐NUC977编译第一个内核驱动程序Hello World

Hello World内核驱动程序
  • 前言
  • 一、文件的编写
  • 二、内核的编译及烧录
  • 最后


前言

  
相关简介:
  1,增加驱动文件 hello.c 和对应的 Makefile、Kconfig
  2,修改上一级的 Makefile 与 Kconfig
  3,使用 Make menuconfig 进行配置
  4,编译,烧录和运行

完成目标:
  创建一个 hello 的驱动,在开机的时候加载,并打印"Hello world"


一、文件的编写

接着上一章的LinuxBSP包,进入02.linux_kernel/drivers

cd 02.linux_kernel/drivers

然后我们新建一个文件夹存放我们的驱动文件,在该文件下面分别创建一个.c文件一个Kconfig一个Makefile文件

mkdir hello
cd hello
touch hello.c
touch Kconfig
touch Makeconfig

hello.c文件的内容

#include 
#include 
#include 
#include 

static int __init hello_init(void)
{
        int i;
        for(i = 0;i < 10;i++)
        {
                printk("~~~~~~~~~~~~~~~~~~~~~~hello world  %d~~~~~~~~~~~~~~~~~~~~~~~rn",i);
                mdelay(500);
        }
        return 0;
}

static void __exit hello_exit(void)
{
        printk("~~~hello exit~~~rn");
}

module_init(hello_init);
module_exit(hello_exit);

MODULE_AUTHOR("STYLLE");
MODULE_DESCRIPTION("hello world driver");
MODULE_LICENSE("GPL");

Kconfig文件的内容

config HELLO
        tristate "hello world"
        help
          Hello for Stylle

Makefile内容

obj-$(CONFIG_HELLO)             +=hello.o

然后我们需要配置上一级的Makefile和Kconfig文件,首先是在上一级的makefile文件的最后添加下面这一行内容

obj-y                           += hello/

上一级Kconfig文件添加内容

source "drivers/hello/Kconfig"


到这里我们的文件编写就完成了下面开始编译烧写我们的内核驱动。

二、内核的编译及烧录

首先回到我们的02.linux_kernel文件夹,输入make menuconfig进入图形化配置界面

make menuconfig


使用回车进入该目录,然后使用空格进入将我们刚刚编写的驱动选中成如下界面样式

然后使用左右方向键选择Save报文我们的配置,记住这个保存的名字不要修改

然后选择exit可以退出界面,然后使用上篇文件介绍的编译内核指令编译我们的内核

make uImage

这里附上文章链接:【Linux】新唐NUC977系统编译及烧写流程

最后

对于Linux开发的基本流程都是相同的,这个流程同样可以应用在其他Linux开发板子上使用。

使用的代码分享:https://www.aliyundrive.com/s/x652GWdyhH9

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/882166.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号