TQ2440驱动-hello world(入门,注意事项)

本文详细介绍了一种在Ubuntu环境下,使用天嵌公司的交叉编译工具链为TQ2440开发板编译Linux内核模块的方法。该教程涵盖了环境搭建、配置以及驱动模块的编译过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


分类: 入门 703人阅读 评论(0) 收藏 举报

驱动开发使用的是tq2440的开发板,linux内核版本为linux-2.6.30.4。

开发平台:
  虚拟机下UBUNTU,内核2.6.38.10
交叉编译编译器:天嵌公司提供的arm-linux-gcc 4.3.3
  内核树:/opt/EmbedSky/linux-2.6.30.4

目标平台:
TQ2440,内核是ARM9
  OS内核:配套光盘中的linux-2.6.30.4

 

 1.首先将  linux-2.6.30.4解压到  /opt/EmbedSky/  文件夹中

 

 

 2. sudo -s 切换到root下。此时环境变量改变,make时会提示找不到arm-linux-gcc,echo $PATH会看到没有交叉编译器的路径,于是      执行命令export PATH=$PATH:/usr/local/arm/2.95.3/bin,注意,终端关闭后会失效。此时即可找到交叉编译器。

 

 

 3.拷贝配置文件cp -f config_EmbedSky_W35 .config  config_EmbedSky_W35在内核源码包中

 

 4.make menuconfig 退出保存 
    make -j2

 

5. make后可以编译驱动程序

    Makefile为:

  1. KERNELDIR=/opt/EmbedSky/linux-2.6.30.4   
  2. PWD:=$(shell pwd)   
  3. INSTALLDIR=/home/shake/NFS    
  4. CC=arm-linux-gcc  
  5. obj-m := hello.o   
  6. modules:   
  7.     $(MAKE) -C $(KERNELDIR) M=$(PWD) modules   
  8. modules_install:   
  9.     cp hello.ko $(INSTALLDIR)   
  10. clean:   
  11.     rm -rf *.o *.ko *.mod.c *.markers *.order *.symvers   
  12. .PHONY:modules modules_install clean  

 

hello.c 源代码

[c-sharp] view plain copy
  1. #include <linux/init.h>  
  2. #include <linux/module.h>  
  3. MODULE_LICENSE("GPL");           //添加这句话,否则在PC上编译的时候会出现  
  4. #include <linux/kernel.h>               //添加了这个头文件printk函数在里面   
  5. static int hello_init(void)  
  6. {  
  7.   printk(KERN_INFO " Hello World enter/n");  
  8.   return 0;  
  9. }  
  10. static void hello_exit(void)  
  11. {  
  12.   printk(KERN_INFO " Hello World exit/n ");  
  13. }  
  14. module_init(hello_init);  
  15. module_exit(hello_exit);  
  16.   
  17. MODULE_AUTHOR("Song Baohua");  
  18. MODULE_DESCRIPTION("A simple Hello World Module");  
  19. MODULE_ALIAS("a simplest module");  

 

 

/home/shake/NFS目录通过nfs挂载

 

开发板端执行insmod

                  rmmod


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值