当前位置: 首页 > news >正文

在 RISC-V Linux 内核中添加模块

在 RISC-V Linux 内核中添加模块

flyfish

本例以添加helloworld字符设备为例

一 源码配置

1 源码

源码文件helloworld.c拷贝到 drivers/char 目录中
源码主要是输出Hello world init

2 Kconfig

打开drivers/char 目录下的Kconfig文件
在这里插入图片描述

在endmenu之前加上

config HELLOWORLDtristate "HELLOWORLD driver to output user messages"default nhelpI am here

3 makefile

打开drivers/char 目录下的makefile文件
最后加上

obj-$(CONFIG_HELLOWORLD)+= helloworld.o 

二 编译配置

在编译Linux内核文件时,先要配置.config文件。

命令说明

生成.config文件

make ARCH=riscv  defconfig 

修改配置

make ARCH=riscv    menuconfig 

将当前.config变成defconfg默认配置文件

make ARCH=riscv  savedefconfig

上述命令可以加上编译环境 CROSS_COMPILE=riscv64-linux-gnu-
例如

make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- defconfig

配置项的值有(星号、M、空) 三项,可以理解成(Y、M、N)三项
以下针对helloworld来说
Y: 编译时会将.c文件编译成.o文件并链接到内核
M: .o文件链接成模块。
N:就是不编译.文件
如果helloworld要编译就会在.config文件中看到

CONFIG_HELLOWORLD=y

配置方法

可以先用make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- defconfig

生成一个.config文件,然后执行命令make ARCH=riscv menuconfig修改
如果是buildroot中配置Linux内核可以执行命令 make linux-menuconfig
配置时出现如下界面
在这里插入图片描述本例是字符设备
在这里插入图片描述
可以看到我们的helloworld配置了在这里插入图片描述生成镜像后启动
在这里插入图片描述
命令参考

https://www.kernel.org/doc/makehelp.txt
http://www.lryc.cn/news/59543.html

相关文章:

  • 利用AOP实现统一功能处理
  • 会话技巧---英文单词
  • VS中解决方案和项目的区别
  • MyBatis的parameterType传入参数类型和resultType返回结果类型
  • 什么是Android FrameWork,请你介绍一下?
  • 【SQL 必知必会】- 第十六课 更新和删除数据
  • 常见哈希算法及其应用
  • PHP快速入门02-PHP语言基础
  • FSCapture - 长截图工具
  • [ 云计算 | Azure ] Chapter 05 | 核心体系结构之管理组、订阅、资源和资源组以及层次关系
  • 【算法LearnNO.1】算法介绍以及算法的时间复杂度和空间复杂度
  • 013:Mapbox GL添加marker
  • 智慧工厂可视化合集,推动行业数字化转型
  • 工作流调度系统 Azkaban介绍与安装(一)
  • 【Python基础入门学习】Python工具Pycharm的安装与使用
  • 【版本控制】Github同步Gitee镜像仓库自动化脚本
  • 索引的分类
  • 【整理九】
  • 钢网是SMT生产使用的一种工具,如何制作?
  • 如何创建自己的gym环境
  • 使用Marshaller 将Java对象转化为XML格式和字符串转为xml
  • NumPy 秘籍中文第二版:八、质量保证
  • [ 应急响应篇基础 ] 日志分析工具Log Parser配合login工具使用详解(附安装教程)
  • 什么是MVVM?
  • Java 企业电子招投标采购系统源码:采购过程更规范,更透明
  • 1384:珍珠(bead)
  • 34岁本科男,做了5年功能测试想转行,除了进厂还能干什么?
  • 一文理解Transformer整套流程
  • 04、SpringBoot运维实用篇
  • 3.Java运算符