基于s3c6410开发板helloworld驱动模块开发
【开发环境】
PC:win7 x64
VMware:Ubuntu14.04
s3c6410开发板:linux-2.6.28.6
【源代码】
hello.c
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//Defining __KERNEL__ and MODULE allows us to access kernel-level code not usually available to userspace programs.
#undef __KERNEL__ //为了引用内核数据结构
#define __KERNEL__
#undef MODULE
#define MODULE
// Linux Kernel/LKM headers: module.h is needed by all modules and kernel.h is needed for KERN_INFO.
#include <linux/module.h> // included for all kernel modules
#include <linux/kernel.h> // included for KERN_INFO
#include <linux/init.h> // included for __init and __exit macros
MODULE_LICENSE("Dual BSD/GPL");
static int __init hello_init(void)
{
printk(KERN_INFO "Hello world!\n");
return 0; //Non-zero return means that the module couldn't be loaded
}
static void __exit hello_cleanup(void)
{
printk(KERN_INFO "Cleaning up module! this is exit\n");
}
module_init(hello_init);
module_exit(hello_cleanup);
MODULE_AUTHOR("andrew yue");
MODULE_DESCRIPTION("A hello word module for testing module parameters");
MODULE_VERSION("V1.0");
Makefile
---------------------------------------------------------------------------------------------------------------
ifneq ($(KERNELRELEASE),)
obj-m := hello.o
else
KDIR := /home/yzli/yzli_lib/s3c-linux-2.6.28.6-TOP6410//移植的linux源码目录
all:
make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=/home/yzli/yzli_lib/arm-2008q3/bin/arm-none-linux-gnueabi-//交叉编译路径
clean:
rm -f *.ko *.o *.mod.o *.mod.c *.symvers
endif
【问题】
1.error: linux/bounds.h: No such file or directory
-------------------------------------------------------------------------------------
在linux-2.6.28.6源码目录,执行make重新编译一遍(拷贝过来,未编译过)。
2.执行模块卸载时(rmmod hello)提示"rmmod: module 'hello' not found",其实模块已经卸载
---------------------------------------------------------------------------------------------------------------------------
个人理解,是由于移植文件系统时,编译busybox的原因,暂不考虑。详见
http://www.cnblogs.com/feisky/archive/2010/05/29/1746888.html
3.编译后的驱动模块是hello.ko,加载和卸载模块操作如下
-------------------------------------------------------------------------------
加载模块:insmod hello.ko
卸载模块 rmmod hello
基于s3c6410开发板helloworld驱动模块开发相关推荐
- 基于stm32mp157 linux开发板ARM裸机开发教程4:Cortex-A7 内核存储系统与流水线(连载中)
前言: 目前针对ARM Cortex-A7裸机开发文档及视频进行了二次升级持续更新中,使其内容更加丰富,讲解更加细致,全文所使用的开发平台均为华清远见FS-MP1A开发板(STM32MP157开发板) ...
- 基于stm32mp157 linux开发板ARM裸机开发教程3:Cortex-A7 架构与工作模式(连载中)
前言: 目前针对ARM Cortex-A7裸机开发文档及视频进行了二次升级持续更新中,使其内容更加丰富,讲解更加细致,全文所使用的开发平台均为华清远见FS-MP1A开发板(STM32MP157开发板) ...
- ESP32 入门笔记01:乐鑫ESP32-DevKitC开发板信息、开发环境搭建以及学资料准备
文章目录 一.ESP32-DevKitC 开发板介绍 二.ESP32 开发环境 1. Arduino IDE 1.1 开发环境搭建步骤 1.2 实验:使用 Arduino IDE 将代码上传到 ESP ...
- 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十五)驱动程序基石
文章目录 1.1 休眠与唤醒 1.1.1 适用场景 1.1.2 内核函数 1.1.2.1 休眠函数 1.1.2.2 唤醒函数 19.1.3 驱动框架 1.1.4 编程 1.1.4.1 驱动程序关键代码 ...
- 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(八)IMX6ULL开发板编译第一个程序以及驱动
文章目录 1. IMX6ULL开发板初次操作 1.1 100ask_imx6ull开发板硬件资源简介 1.1.1 100ask imx6ull mini开发板 1.2 100ask_imx6ull开发 ...
- android开发板那种好,学嵌入式用哪个开发板好?嵌入式开发板推荐
学习嵌入式,必不可少的工具就是一块开发板.对新手而言,学嵌入式用哪个开发板好,下面为大家推荐一款比较好的嵌入式开发板. 嵌入式开发板要推荐的是:fs4412开发板,是当前前沿的ARM Cortex-A ...
- 【开源STC15开发板】STC15F2K60S2开发板
[开源STC15开发板]STC15F2K60S2开发板 2022-7-6 补充说明: STC15系列单片机最多有62个I/0口(如64-pin单片机):P0.0 ~ P0.7,P1.0-Pl.7,P2 ...
- 分析2440开发板和4412开发板的性价比_初学者你们怎么看?
嵌入式与物联网开发板系列-4412开发板,如果了解当前IT和物联网的趋势,就会发现Android工程师越来越瘦欢迎,而且相比之下单纯的Linux工程师却逊色不少, 当然Android系统的内核也是Li ...
- ZCU104开发板MIPI摄像头开发(详细介绍移植ZCU102example design)
花了将近2周移植了ZCU102的MIPI example工程到ZCU104板子,记录一下我的移植过程. 首先这位哥们的详细讲解给予了很大的帮助,我也是根据他的方法进行移植,不过遇到了一些问题:(34条 ...
最新文章
- python 类的执行中保部存值_python函数名称空间与作用域、闭包
- 技术系列课回顾 | 网易云信线上万人连麦技术大揭秘
- 将txt文件的编码格式进行修改
- DCMTK:将标准图像格式转换为DICOM的实用程序
- 怎样分组教学计算机学生才有兴趣,学生计算机论文,关于如何激发职业中专学生学习计算机的兴趣相关参考文献资料-免费论文范文...
- 卸载wrapt_[python] 安装TensorFlow问题 解决Cannot uninstall 'wrapt'. It is a distutils installed project...
- spring mysql事物级别_mysql事务级别和spring中应用
- WPF 利用键盘钩子来捕获键盘,做一些不为人知的事情...完整实例
- Object中的clone方法
- JSON金额解析BUG的解决过程
- SDL2.0超简单入门 100行代码实现播放wav声音文件
- 前端架构设计第四课 Babel构建公共库实战
- sht20中写用户寄存器_谁用过sht20这块温湿度传感器,有调通的程序分享下吧
- SATA硬盘分区设置与安装详解
- 从产品角度看滴滴事件,滴滴顺风车业务存在的问题
- 【书影观后感 八】《周期》万事皆周期
- python arp断网攻击_arp断网攻击,手把手教你arp断网攻击怎么解决
- 29岁华为员工工资曝光,揭露残酷真相:职场下半场,拼的就是这项能力!
- 基于Rsyslog的日志文件采集办法
- 庸殖状恐剐雷善菊囟蕾