【驱动篇】龙芯LS2K0300之驱动示例

2024-06-21 09:36
文章标签 驱动 示例 龙芯 ls2k0300

本文主要是介绍【驱动篇】龙芯LS2K0300之驱动示例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实验环境

开发板:龙芯LS2K0300久久派

网络配置:配置好ssh连接,通过网口可以scp文件到开发板,参考前一篇文章

串口配置:通过CH340T模块连接好开发板上的UART0

示例程序

驱动代码

#include <linux/init.h>
#include <linux/module.h>static int hello_init(void)
{printk("Hello, this is a simple linux driver!\n");return 0;
}static void hello_exit(void)
{printk("Goodbye\n");
}module_init(hello_init);
module_exit(hello_exit);MODULE_LICENSE("GPL");

Makefile脚本

obj-m += hello.o 
KDIR:=/home/asensing/loongson/linux-4.19
ARCH=loongarch 
CROSS_COMPILE=loongarch64-linux-gnu-
PWD?=$(shell pwd) 
all:make -C $(KDIR) M=$(PWD) modules 

构建和部署脚本

export PATH=$PATH:/home/asensing/loongson/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin
make -j8
FILE=$PWD/$(basename $PWD).ko
scp $FILE root@192.168.137.128:/home/root

验证

先清除内核日志

dmesg -c

在串口终端输入插入模块命令

insmod hello.ko

可以看到终端输出以下日志

[ 1253.139695] Hello, this is a simple linux driver!

然后输入卸载驱动模块命令

rmmod hello.ko

可以看到终端输出以下日志

[ 1350.375171] Goodbye

接口用法

MODULE_LICENSE是一个用于指定模块的开源协议类型的宏,一般有以下几种

  • GPL
  • GPL v2
  • GPL and additional rights
  • Dual MIT/GPL
  • Dual BSD/GPL
  • Dual MPL/GPL
  • Proprietary

module_init用于指定模块初始化回调函数,设置驱动的资源初始化条件:如GPIO、定时器、中断、i2c设备等,函数原型:

typedef int (func)(void);

module_exit用于指定模块卸载回调函数,驱动模块卸载时清理驱动所占用的资源:如内存、GPIO、定时器、中断等,函数原型:

typedef int (func)(void);

这篇关于【驱动篇】龙芯LS2K0300之驱动示例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1080859

相关文章

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

zeroclipboard 粘贴板的应用示例, 兼容 Chrome、IE等多浏览器

zeroclipboard单个复制按钮和多个复制按钮的实现方法 最近网站改版想让复制代码功能在多个浏览器上都可以实现,最近看网上不少说我们的代码复制功能不好用的,我们最近将会增加代码高亮等功能,希望大家多多支持我们 zeroclipboard是一个跨浏览器的库类 它利用 Flash 进行复制,所以只要浏览器装有 Flash 就可以运行,而且比 IE 的

基于SpringBoot的宠物服务系统+uniapp小程序+LW参考示例

系列文章目录 1.基于SSM的洗衣房管理系统+原生微信小程序+LW参考示例 2.基于SpringBoot的宠物摄影网站管理系统+LW参考示例 3.基于SpringBoot+Vue的企业人事管理系统+LW参考示例 4.基于SSM的高校实验室管理系统+LW参考示例 5.基于SpringBoot的二手数码回收系统+原生微信小程序+LW参考示例 6.基于SSM的民宿预订管理系统+LW参考示例 7.基于

Spring Roo 实站( 一 )部署安装 第一个示例程序

转自:http://blog.csdn.net/jun55xiu/article/details/9380213 一:安装 注:可以参与官网spring-roo: static.springsource.org/spring-roo/reference/html/intro.html#intro-exploring-sampleROO_OPTS http://stati

Java http请求示例

使用HttpURLConnection public static String httpGet(String host) {HttpURLConnection connection = null;try {URL url = new URL(host);connection = (HttpURLConnection) url.openConnection();connection.setReq

驱动(RK3588S)第七课时:单节点设备树

目录 需求一、设备树的概念1、设备树的后缀名:2、设备树的语法格式3、设备树的属性(重要)4、设备树格式举例 二、设备树所用函数1、如何在内核层种获取设备树节点:2、从设备树上获取 gpio 口的属性3、获取节点上的属性只针对于字符串属性的4、函数读取 np 结点中的 propname 属性的值,并将读取到的 u32 类型的值保存在 out_value 指向的内存中,函数的返回值表示读取到的

2.3多任务编程示例1

1.CUBEMAX配置  2.CODE void StartTask1(void const * argument){/* USER CODE BEGIN StartTask1 */TickType_t pxPreviousWakeTime=xTaskGetTickCount();/* Infinite loop */for(;;){LED1_Turn();// vTaskDelay

驱动安装注册表指令

HKCR: HKEY_CLASSES_ROOT HKCU: HKEY_CURRENT_USER HKLM: HKEY_LOCAL_MACHINE HKU: HEKY_USER HER: 相对根键

UMDF驱动安装

VS2013 + WDF8.1,UMDF驱动选择User Mode Driver,不要选User Mode Driver 2.0,否则Win7安装有问题,如图 另外,在驱动安装时不要忘记WUDFUpdate_<主版本号><次版本号>.dll文件,具体文件名在INF中查找。此文件可在WDF的安装目录中找到。注意:在WDF的安装目录中会有3个WUDFUpdate_xxx.dll文件,x86,x6

mongodb基本命令和Java操作API示例

1.Mongo3.2 java API示例:http://www.cnblogs.com/zhangchaoyang/articles/5146508.html 2.MongoDB基本命:http://www.cnblogs.com/xusir/archive/2012/12/24/2830957.html 3.java MongoDB查询(一)简单查询: http://www.cnblogs