`
java-mans
  • 浏览: 11415104 次
文章分类
社区版块
存档分类
最新评论

tiny6410上第一个hello module驱动程序

 
阅读更多

买了tiny6410的开发板很久了,一直没有开始弄,现在想学了又没有了时间,只有利用周末的时间来学习,也打算开始用博客记录自己的学习过程,要不然就都忘了。这个是最简单的hello的驱动程序,自己按照友善之臂的例子一点点来的,写一点遇到的问题。

1.首先在驱动目录下建立模块的源文件,这里命名为 my_mini6410_hello_module.c

假设linux目录为linux-2.6.38 则文件存放在linux-2.6.38/drivers/char/

按照例子中的程序照着写了个代码 分别是 模块的加载和卸载。

/* file begin my_mini6410_hello_module.c */

static int __init my_hello_module_init(void) /* init 前面有两个下划线 装载时调用的函数*/

{

printk("hello ! \n");

return 0;

}

static void __exit my_hello_module_cleanup(void) /* 卸载时调用的函数 */

{

printk("bye !\n");

}

module_init(my_hello_module_init); /* 这里应该是挂接函数 */

module_exit(my_hello_module_cleanup);

MODULE_LICENSE("GPL");

/* file end */

2 将新的module加入编译的内核代码树,

在char目录下打开Kconfig配置文件 vi Kconfig

看到有类似 config XXXX

XXXX 的地方按照同样的方式为自己的module添加一个配置。

代码如下 :

config MY_MINI6410_HELLO_MODULE /* 这个名字会在下面的makefile中使用到,和具体的代码文件关联 */

tristate “my mini6410 hello module” /* 这个名字是在使用 make menuconfig配置时显示的模块的名字 */

depends on CPU_S3C6410

help

this is my hello module

保存退出,在linux-2.6.38 目录下 使用make menuconfig命令打开图形菜单,在Device Drivers -> Character Drivers菜单中看到刚刚添加的项了,

使用空格键切换到M模式,选择编译为模块方式, “*”是编译为内核中。确定保存。

3.修改makefile文件

在上面修改后添加了编译选项,但是还需要修改makefile文件,使得真正的将my_mini6410_hello_module.c这个文件编译进去。使得内核的编译选项和真正的源文件真正联系起来。

在char目录下打开Makefile文件 : vi Makefile

按照同样的格式 添加:

obj -$(CONFIG_MY_MINI6410_HELLO_MODULE) += my_mini6410_hello_module.o /* 这里可以看出括号里的大写部分是kconfig中的配置项名,=后面则为文件名 相同的.o文件名*/

4 。执行make ,在执行make modules。

这时my_mini6410_hello_module.ko就应该出现在 char目录下了。通过ftp下载到开发板上,放在开发板 /lib/modules/ 'uname -r' / 下。

uname -r 根据单板使用的内核不同而不同,必须使用这个目录,没有的话新建这样的目录。我的是2.6.38-FriendlyARM

5 按照说明书上的指示,我直接使用下面命令

modprobe my_mini6410_hello_module 并没有出现意料中的打新hello,呵呵 而是出现了错误信息: modprobe: module './my_mini6410_hello_module' not found,

通过在网上搜索知道在编译并准备好一个内核模块后,使用modprobe装载之前需要更新依赖关系:

depmod

这个命令会重新生成 modules.dep 这个依赖文件

这时再运行 modprobe my_mini6410_hello_module 即出现了期待的打印信息。

使用 rmmod my_mini6410_hello_module 出现了卸载模块的打印信息。

至此我的第一个hello的驱动就这样结束了。

分享到:
评论

相关推荐

    Tiny6410led驱动程序及测试程序

    Tiny6410led驱动程序及测试程序

    tiny6410触摸屏加LCD驱动程序

    此程序为tiny6410触摸屏 LCD驱动程序,此程序实现了点击触摸屏查看图片的功能,有左右功能键

    tiny6410 lcd裸机程序

    友善之臂tiny6410 lcd裸机程序 s70屏幕的亲测通过可画圆直线和十字

    Tiny/mini6410 SPI驱动源码及测试代码

    Tiny/mini6410 SPI驱动源码及测试代码

    Tiny6410按键驱动程序

    Tiny6410按键驱动程序,仿照韦东山老师写的

    tiny6410上的定时器程序

    在tiny6410上实现的定时器timer程序

    tiny6410上的串口程序

    在tiny6410上实现的串口通信程序,包括轮询与中断方式的程序

    Tiny6410 Ubuntu用户手册

    Tiny6410 Ubuntu用户手册 01- Tiny6410硬件手册.pdf https://download.csdn.net/download/elliotcs/10374084 02- Tiny6410功能测试指南.pdf https://download.csdn.net/download/elliotcs/10374097 03- Tiny6410刷机...

    tiny6410GPIO驱动程序

    友善之臂tiny6410GPIO驱动程序 定义了GPE GPQ几个管脚 测试程序也有

    Tiny6410裸机程序

    Tiny6410的裸机程序,arm-linux-gcc环境: 系统时钟 DDR nand uart 其他的正在完善

    Tiny6410刷机指南

    Tiny6410刷机指南 01- Tiny6410硬件手册.pdf https://download.csdn.net/download/elliotcs/10374084 02- Tiny6410功能测试指南.pdf https://download.csdn.net/download/elliotcs/10374097 03- Tiny6410刷机指南....

    tiny6410 适用于win7 64bit的dnw 的USB下载驱动

    win7-64-FriendlyArm tiny6410 适用于win7 64bit的dnw 的USB下载驱动 。

    Tiny6410官方PDF资料合集

    此文档为友善之臂Tiny6410官方文档,其中包含: 01-Tiny6410硬件手册 02-Tiny6410功能测试指南 03-Tiny6410刷机指南 04-Tiny6410 Linux开发指南 05-Tiny6410 Android开发指南 06-Tiny6410WinCE开发指南 07-...

    Tiny6410 Linux开发指南

    Tiny6410 Linux开发指南 01- Tiny6410硬件手册.pdf https://download.csdn.net/download/elliotcs/10374084 02- Tiny6410功能测试指南.pdf https://download.csdn.net/download/elliotcs/10374097 03- Tiny6410刷机...

    tiny6410裸机程序示例

    抽取u-boot的相关代码做成一个tiny6410的裸机程序示例,基本功能是是用串口不断打印出"Hello World".该程序涉及看门狗的操作、时钟初始化操作、UART初始化操作等。使用arm-linux-gcc编译。

    tiny6410_64位dnw驱动程序

    tiny6410_64位dnw驱动程序,在使用这个驱动时可能会出现安装不了,我是在打开了win7测试模式才能用的,打开方式在cmd中输入:bcdedit /set testsigning on

    tiny6410的nand裸机程序

    tiny6410 --板上资源内存256M,nandflash为2G 支持串口下载更新程序 支持nand write/read/erase测试

    tiny 6410 开发手册

    tiny 6410 开发手册 tiny 6410 开发手册 tiny 6410 开发手册 tiny 6410 开发手册 tiny 6410 开发手册

    Tiny6410内核移植及多种驱动移植

    Tiny6410内核移植及多种驱动移植。欢迎大家下载学习

    Tiny6410资料合集PDF+SDflash.zip

    友善之臂tiny6410配套资料, 包括PDF文档和SD-flash.exe烧写软件. 01- Tiny6410硬件手册.pdf 02- Tiny6410功能测试指南.pdf 03- Tiny6410刷机指南.pdf 04- Tiny6410 Linux开发指南.pdf 05- Tiny6410 Android开发指南....

Global site tag (gtag.js) - Google Analytics