"); //-->
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
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
About vxworks Serial Drivers............
GPU,加速计算光刻
智能型红外遥控器电路设计
采用专用编/解码集成电路的多路遥控开关电路
Apple智能与阿里达成合作,4月上线!
SJA1000T 增强型CAN总线控制器
第二届飞思卡尔智能车比赛全国第5名视频
开发板DEMO-点灯
2025年无线连接七大趋势,你都get到了吗?
采用DTMF编解码的无线抢答器电路
计算机架构和设计的发展方向在哪里?
上海电信和上海网通实现互联互通
第二届飞思卡尔智能车比赛全国第7名视频
SJA1000独立的CAN控制器应用指南 (英)
2028年中国ICT市场规模将超7,517亿美元,五年复合增长率6.5%
出发!和骁龙座舱平台至尊版一起畅享智慧出行新体验
SmartARM2200平台专题报导
第二届飞思卡尔智能车比赛全国第6名视频
SmartARM2200教学实验开发平台
自制简易遥控开关电路
DeepSeek适配国产芯片:差异化表现,商用前景各异
第二届飞思卡尔智能车比赛全国第8名视频
中国将3.5GHz频率无线接入业务频率分配给九企业
三星显示与英特尔携手为智能PC市场
经济高效的AI系统助力语音与图像识别
realTek 8139最新驱动
一款红外线遥控电源插座的电路
历史首次!三星将使用长江存储专利技术
SJA1000独立的CAN控制器应用指南
第二届飞思卡尔智能车比赛全国第9名视频