【开发环境】
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驱动模块开发相关推荐

  1. 基于stm32mp157 linux开发板ARM裸机开发教程4:Cortex-A7 内核存储系统与流水线(连载中)

    前言: 目前针对ARM Cortex-A7裸机开发文档及视频进行了二次升级持续更新中,使其内容更加丰富,讲解更加细致,全文所使用的开发平台均为华清远见FS-MP1A开发板(STM32MP157开发板) ...

  2. 基于stm32mp157 linux开发板ARM裸机开发教程3:Cortex-A7 架构与工作模式(连载中)

    前言: 目前针对ARM Cortex-A7裸机开发文档及视频进行了二次升级持续更新中,使其内容更加丰富,讲解更加细致,全文所使用的开发平台均为华清远见FS-MP1A开发板(STM32MP157开发板) ...

  3. ESP32 入门笔记01:乐鑫ESP32-DevKitC开发板信息、开发环境搭建以及学资料准备

    文章目录 一.ESP32-DevKitC 开发板介绍 二.ESP32 开发环境 1. Arduino IDE 1.1 开发环境搭建步骤 1.2 实验:使用 Arduino IDE 将代码上传到 ESP ...

  4. 嵌入式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 驱动程序关键代码 ...

  5. 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(八)IMX6ULL开发板编译第一个程序以及驱动

    文章目录 1. IMX6ULL开发板初次操作 1.1 100ask_imx6ull开发板硬件资源简介 1.1.1 100ask imx6ull mini开发板 1.2 100ask_imx6ull开发 ...

  6. android开发板那种好,学嵌入式用哪个开发板好?嵌入式开发板推荐

    学习嵌入式,必不可少的工具就是一块开发板.对新手而言,学嵌入式用哪个开发板好,下面为大家推荐一款比较好的嵌入式开发板. 嵌入式开发板要推荐的是:fs4412开发板,是当前前沿的ARM Cortex-A ...

  7. 【开源STC15开发板】STC15F2K60S2开发板

    [开源STC15开发板]STC15F2K60S2开发板 2022-7-6 补充说明: STC15系列单片机最多有62个I/0口(如64-pin单片机):P0.0 ~ P0.7,P1.0-Pl.7,P2 ...

  8. 分析2440开发板和4412开发板的性价比_初学者你们怎么看?

    嵌入式与物联网开发板系列-4412开发板,如果了解当前IT和物联网的趋势,就会发现Android工程师越来越瘦欢迎,而且相比之下单纯的Linux工程师却逊色不少, 当然Android系统的内核也是Li ...

  9. ZCU104开发板MIPI摄像头开发(详细介绍移植ZCU102example design)

    花了将近2周移植了ZCU102的MIPI example工程到ZCU104板子,记录一下我的移植过程. 首先这位哥们的详细讲解给予了很大的帮助,我也是根据他的方法进行移植,不过遇到了一些问题:(34条 ...

最新文章

  1. python 类的执行中保部存值_python函数名称空间与作用域、闭包
  2. 技术系列课回顾 | 网易云信线上万人连麦技术大揭秘
  3. 将txt文件的编码格式进行修改
  4. DCMTK:将标准图像格式转换为DICOM的实用程序
  5. 怎样分组教学计算机学生才有兴趣,学生计算机论文,关于如何激发职业中专学生学习计算机的兴趣相关参考文献资料-免费论文范文...
  6. 卸载wrapt_[python] 安装TensorFlow问题 解决Cannot uninstall 'wrapt'. It is a distutils installed project...
  7. spring mysql事物级别_mysql事务级别和spring中应用
  8. WPF 利用键盘钩子来捕获键盘,做一些不为人知的事情...完整实例
  9. Object中的clone方法
  10. JSON金额解析BUG的解决过程
  11. SDL2.0超简单入门 100行代码实现播放wav声音文件
  12. 前端架构设计第四课 Babel构建公共库实战
  13. sht20中写用户寄存器_谁用过sht20这块温湿度传感器,有调通的程序分享下吧
  14. SATA硬盘分区设置与安装详解
  15. 从产品角度看滴滴事件,滴滴顺风车业务存在的问题
  16. 【书影观后感 八】《周期》万事皆周期
  17. python arp断网攻击_arp断网攻击,手把手教你arp断网攻击怎么解决
  18. 29岁华为员工工资曝光,揭露残酷真相:职场下半场,拼的就是这项能力!
  19. 基于Rsyslog的日志文件采集办法
  20. 庸殖状恐剐雷善菊囟蕾

热门文章

  1. python官网下载和安装指南
  2. asp.net汽车保养美容店维修管理系统
  3. C语言实现状态机(一)
  4. 机器视觉解决方案提供商TOP 10—2016
  5. 百度智能云实现文字转语音
  6. 挖掘机技术到底哪家强
  7. JAVA山地车deca_JAVA 2020 款山地车盘点
  8. sql统计各科成绩大于平均分的人_求解: sql 数据库 检索各科成绩均大于等于该科平均成绩的学生的学号和姓名...
  9. 接口测试(http协议,get和post请求和响应)
  10. 两台电脑在同一局域网下不能ping通