专栏中心

EEPW首页 > 专栏 > Uclinux Hello Module Drivers

Uclinux Hello Module Drivers

发布人:0750long 时间:2010-02-10 来源:工程师 发布文章
Uclinux Hello Module Drivers

 

Uclinux Hello Module Drivers
By panasonic.lin@163.com


由于linux2.4和linux2.6的区别,ldd第三版讲的都是linux2.6内核的驱动,linux2.4最好参考ldd第二版的。
linux2.6中,hello模块的Makefile:
obj-m := hello.o
然后只需在此目录下执行:
make -C /<your 2.6 kernel's dir> M=`pwd` modules
下面是linux2.4内核的方法,也适用uclinux2.4

1.新建目录hello,建立hello.c和Makefile如下
/*                                                    
 * $Id: hello.c,v 1.5 2009/10/26 03:32:21  $
 */                                                   
#ifndef MODULE
#define MODULE
#endif

#ifndef __KERNEL__
#define __KERNEL__
#endif


#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>


MODULE_LICENSE("GPL");

static int hello_init(void)
{
    printk(KERN_ALERT "Hello,Uclinux world\n");
    return 0;
}

static void hello_exit(void)
{
    printk(KERN_ALERT "Goodbye, Uclinux world\n");
}

module_init(hello_init);
module_exit(hello_exit);


/**********************************************************************************/
/* $Id: Makefile,v 1.5 2009/10/26 03:32:21 $ */
/***********************************************************************************/

# Change it here or specify it on the "make" command line
CC=arm-elf-gcc
KERNELDIR = /home/panasonic/Data/uClinux-dist20050311/linux-2.4.x
#include $(KERNELDIR)/.config

CFLAGS = -D__KERNEL__ -DMODULE -I$(KERNELDIR)/include -O -Wall


all: hello.o
hello.o:hello.c
    $(CC) $(CFLAGS) -c hello.c
clean:
    rm -f hello.o

2.配置内核,Enable loadable module support,然后重新make生成uclinux_rom.bin,然后再拷贝到tftp下载目录。

点击看大图

3.配置busybox支持insmod,lsmod,rmmod命令,然后make dep,make user_only,make romfs生成romfs目录,把里面bin目录下的文件拷贝到nfs根目录下的bin,因为我们仅仅是比以前多了module的几个程序而已,其他东西大可不必要动。

点击看大图


4.准备好内核和根文件系统后,只需在hello目录下执行make生成hello.o,把它拷贝到nfs文件系统的任意位置。

点击看大图


5.打开minicom,
$tftpboot 0xc500000下载内核到内存0xc500000
$bootm 0xc500000启动内核

点击看大图


如果出现如下错误提示,需要在lib目录新建modules/内核版本目录
# insmod ./hello.o
# lsmod
# rmmod hello
rmmod: chdir(2.x.x): No such file or directory
# cd /     
# mkdir -p /lib/modules/`uname -r`
# rmmod hello

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

GPU,加速计算光刻

智能计算 2025-02-25

Apple智能与阿里达成合作,4月上线!

智能计算 2025-02-25

第二届飞思卡尔智能车比赛全国第5名视频

视频 2010-02-01

2025年无线连接七大趋势,你都get到了吗?

计算机架构和设计的发展方向在哪里?

智能计算 2025-02-25

第二届飞思卡尔智能车比赛全国第7名视频

视频 2010-02-01

SJA1000独立的CAN控制器应用指南 (英)

2028年中国ICT市场规模将超7,517亿美元,五年复合增长率6.5%

出发!和骁龙座舱平台至尊版一起畅享智慧出行新体验

SmartARM2200平台专题报导

第二届飞思卡尔智能车比赛全国第6名视频

视频 2010-02-01

SmartARM2200教学实验开发平台

DeepSeek适配国产芯片:差异化表现,商用前景各异

第二届飞思卡尔智能车比赛全国第8名视频

视频 2010-02-01

三星显示与英特尔携手为智能PC市场

光电显示 2025-02-25

经济高效的AI系统助力语音与图像识别

历史首次!三星将使用长江存储专利技术

SJA1000独立的CAN控制器应用指南

第二届飞思卡尔智能车比赛全国第9名视频

视频 2010-02-01
更多 培训课堂
更多 焦点
更多 视频

技术专区