1.4 LS2K0300简单驱动编写和验证(小试牛刀)

1、理顺思路

1.1 章节:在ubuntu上配置龙芯工具链和编译内核源码

1.2 章节: 将ubuntu和板子,在同一WiFi下进行连接

1.3 章节:将内核源码中开启的PWM在板子上进行同步更新 

1.4 章节:简单理解驱动,会修改和编译即可(需要和测试文件搭配使用)

2、对简单驱动的理解

编写一个demo_drv.c

#include <linux/init.h>
#include <linux/module.h>

static int demo_init(void)
{
    printk(KERN_INFO "Demo module loaded\n");
    return 0;
}

static void demo_exit(void)
{
    printk(KERN_INFO "Demo module unloaded\n");
}

//下面3行(必选),括号中函数,需要自己写

module_init(demo_init);//进入函数--挂载
module_exit(demo_exit);//退出函数--卸载

MODULE_LICENSE("GPL");//不用修改

//下面2行(可选)
MODULE_AUTHOR("Your Name");
MODULE_DESCRIPTION("A simple demo module");

3、使用makefile验证

编写一个Makefile

obj-m += demo_drv.o //demo_drv就是上面的.c文件通过内核编译生成的
KERNEL_DIR := /home/user/Desktop/linux-4.19/   //内核路径
ARCH = loongarch //龙芯架构
CROSS_COMPILE = loongarch-linux-gnu- //龙芯工具链
PWD ?= $(shell pwd) //当前路径--pwd

all:
    make -C $(KERNEL_DIR) M=$(PWD) modules   //使用内核编译

    scp ./*.ko root@192.168.159.15:/home/root/app  //传输文件到板子上
    make clean //清除内核编译生成的其它文件

clean:
    make -C $(KERNEL_DIR) M=$(PWD) clean
    rm -f *.o *.mod.c *.mod.o Module.symvers modules.order

下面是ubuntu执行make之后生成的效果

下面是ubuntu执行make之后,传输到板子上的效果

4、对ko文件执行的效果

两图打印的日志相同,符合要求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值