嵌入式爱好者

1028单独编译模块

2022-11-30 09:23| 发布者: hai| 查看: 682| 评论: 0|原作者: hai

类目: 知识库  >  LS1012A/LS1043A/LS1046A系列产品     文档编号: 830

一、编写Hello world驱动

创建hello文件夹,在文件夹中创建helloWorld.c文件,输入一下内容。
  #include <linux/init.h>
#include <linux/module.h>

static int hello_init(void)
{
   printk("hello world");
   return 0;
}

static void hello_exit(void)
{
   printk("goodbye world");
}

module_init(hello_init);      //入口函数
module_exit(hello_exit);      //出口函数

MODULE_LICENSE("GPL");

二、编写Makefile

  
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-   //设置环境变量
obj-m += helloWorld.o   //把驱动编译成模块
KDIR:=/home/forlinx/work/ls1028/OK1028-linux-fs/build/linux/linux/arm64/LS/output/ //编译生成的内核文件存在此目录
/* /home/forlinx/work/ls1028/OK1028-linux-fs/packages/linux/linux //内核源码路径,但是编译时所依赖的内核文件不在此目录   */
PWD:=$(shell pwd) //获取当前路径
all:
make -C $(KDIR) M=$(PWD) modules

​ 在引用目录时要使用自己的源码的路径,不可照搬。 编写完成后直接在hello文件夹内执行make即可,会生成helloworld.ko模块。

三、验证

将生成的helloworld.ko拷贝到开发板中,进行加载,并查看效果。
  
root@forlinx:~# rmmod helloworld.ko
root@forlinx:~# insmod helloworld.ko
root@forlinx:~# dmesg | grep hello    
[ 172.948012] hello world
root@forlinx:~# dmesg | grep goodbye
[ 174.251172] goodbye world



已解决

未解决

只是看看

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-11-24 19:19

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部