linux如何配置驱动的内嵌和模块

1.内核编译命令(makefile)

obj-y:把由foo.c 或者 foo.s 文件编译得到foo.o 并连接进内核.

obj-m: 则表示该文件作为模块编译.

除了y、m以外的obj-x 形式的目标都不会被编译。


2.内核编译 (make menuconfig)

make   menuconfig

*标识编译到内核,

M标识作为内核模块编译.

空格,表示该功能不编译到内核中,即新的内核将不支持该功能.




3.模块静态编译到内核和编译成模块实例


【实验目的】
     配置编译支持目标板的Linux-2.6.22.6的内核,熟悉Linux内核的配置选项和编译过程。
熟悉模块静态编译到内核和编译成模块,动态加载的方法和过程。


【实验环境】
1、主  机:Ubuntu 10.10 发行版 [首先得配置好开发环境]
2、目标机:FS2410开发板以及移植好的u-boot-2010.03、内核源码包:linux-2.6.22.6.tar.bz2(打补丁后便支持FS2410)
4、交叉编译器 arm-linux-gnu-gcc-3.4.5

【实验步骤】

一、模块静态编译到内核
(1) 解压内核
$tar xvfz linux-2.6.22.6.tar.bz2

进入解压后的linux-2.6.22.6目录打补丁

$patch -p1 < ../linux-2.6.22.6_jz2440.patch

进入内核目录
$cd linux-2.6.22.6

(2)修改Makefile文件
修改内核目录树根下的的Makefile,指明交叉编译器:
$vim Makefile
找到ARCHCROSS_COMPILE,修改
ARCH = arm
CROSS_COMPILE = arm-linux-gnu-

保存退出

(3)添加程序文件
2410GPIO_TEST_drv.c 文件拷贝到内核代码目录 drivers/char
(4)修改MakefileKconfig文件
进入内核的 drivers/char 目录
$vim Makefile
找到在 obj-$(CONFIG_HANGCHECK_TIMER) += hangcheck-timer.o ,在其下一行添加:
obj-$(CONFIG_2410GPIO_TEST_DRV) += 2410GPIO_TEST_drv.o
保存退出vim
     (5)修改Kconfig文件
$vim Kconfig
在以下代码段下面
menu "Character devices"
加入以下信息:
config 2410GPIO_TEST_DRV
   tristate "S3C2410 test drv Device Support"
   depends on ARCH_S3C2410
    ---help---
   support led test device driver on FS2410 develop board

(6)配置内核将 2410GPIO_TEST_drv.c 静态编译金内核

$cp config_ok   .config (使用提供的配置文件 make s3c2410_defconfig 使用默认的配置文件)
$make menuconfig
 
选择 “Character devices” 菜单项,进入后出现如下:
 
在第一项“S3C2410 test drv Device Support (NEW)”按“空格”键使其前面括号中的出现“*”,<*> 。
 
选“exit”退出,继续选“exit”退出,出现提示:
 
选择 Yes,退出。

(7)编译内核产生uImage文件, 并将uImage拷贝到/tftpboot目录中,复位开发板,重新启动。编译命令:
 $   make uImage
 $ sudo cp -f uImage /tftpboot//uImage
 $ sudo chmod 777 -R /tftpboot

 (8)交叉编译 2410GPIO_TEST_APP.c
     arm-linux-gnu-gcc 2410GPIO_TEST_APP.c –o test

(9)复制 test /opt/filesystem(NFS文件系统)目录下
 $ sudo cp test /opt/filesystem/root
  重新给目标板上电,让它使用新的内核
[注意,以下10,11步骤在目标板的终端窗口中运行]
(10)创建  GPIO_TEST 设备节点,在开发板上运行如下命令:
# mknod -m 666 /dev/GPIO_TEST c 252 0
(11) 运行 test 测试,在开发板上运行如下命令:(此时进入的为/root目录下)
   # ./test

此时,D12LED灯在闪烁。



二、编译成模块

(1) 重新配置编译内核,将GPIO_TESt编译成模块,动态加载
进入到 linux-2.6.22.6目录执行
$make menuconfig
选择 “Character devices” 菜单项,进入后出现如下:
 在第一项“S3C2410 test drv Device Support (NEW)”按“空格”键使其前面括号中的出现“M”,<M> ,如下图:
 
选“exit”退出,继续选“exit”退出,出现提示:
 
选择 Yes,退出。
(2)编译内核产生uImage文件, 并将arch/arm/boot/uImge拷贝到/tftpboot目录中,复位开发板,重新启动:
 $ make uImage modules
 $sudo cp -f uImage /tftpboot/uImage

(3)复制 linux-2.6.22.6/drivers/char/2410GPIO_TEST_drv.ko/opt/filesystem/lib
  $ sudo cp drivers/char/2410GPIO_TEST_drv.ko /opt/filesystem/lib
 
  重新给目标板上电,让它使用新的内核

[注意,以下4, 5, 6步骤在目标板的终端窗口中运行]
(4)加载模块 2410GPIO_TEST_drv,在开发板上运行如下命令:
    #insmod /lib/2410GPIO_TEST_drv.ko
(5)创建  GPIO_TEST 设备节点,在开发板上运行如下命令:
  # mknod -m 666 /dev/GPIO_TEST c 252 0
(6) 在/root/目录下运行 test 测试,在开发板上运行如下命令:
  # ./test
此时,D12LED灯在闪烁。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
详细说明 U8300无线模块是一款适用于FDD-LTE/TDD-LTE/TD-SCDMA/EDGE/GPRS/GSM多种网络制式的无线终端产品,U8300模块支持多种频段: Tri-Band TDD-LTE:Band38/39/40; Single-Band FDD-LTE :Band7; Tri-Band TD-SCDMA:Band34/39/40; Dual-Band EDGE/GPRS/GSM:GSM900/DCS1800。 在FDD-LTE网路下,U8300接入速度下行可达100Mbps,上行可达50Mbps,在TDD-LTE网络下,U8300接入速度下行可达61Mbps,上行可达18Mbps,在没有LTE网络覆盖的情况下,U8300还可以通过TD-SCDMA接入,速率可达下行4.2Mbps和上行2.2Mbps,EGDE接入速率可达237kbps,GPRS接入速率可达85.6kbps。 U8300在提供高速数据接入的同时,可提供**讯簿等功能,可广泛应用于移动宽带接入、视频监控、手持终端、车载设备等产品。 U8300采用先进的高度集成设计方案,将射频、基带集成在一块PCB上,完成无线接收、发射、基带信号处理和音频信号处理功能,采用双面布局,模块结构尺寸为:51.0×30.0×4.6mm。 U8300支持AT命令扩展,可以实现用户个性化定制方案。 U8300无线模块是一款适用于FDD-LTE/TDD-LTE/TD-SCDMA/EDGE/GPRS/GSM多种网络制式的无线终端产品,U8300模块支持多种频段: Tri-Band TDD-LTE:Band38/39/40; Single-Band FDD-LTE:Band7; Tri-Band TD-SCDMA:Band34/39/40; Dual-Band EDGE/GPRS/GSM:GSM900/DCS1800。 在FDD-LTE网路下,U8300接入速度下行可达100Mbps,上行可达50Mbps,在TDD-LTE网络下,U8300接入速度下行可达61Mbps,上行可达18Mbps,在没有LTE网络覆盖的情况下,U8300还可以通过TD-SCDMA接入,速率可达下行4.2Mbps和上行2.2Mbps,EGDE接入速率可达237kbps,GPRS接入速率可达85.6kbps。 U8300在提供高速数据接入的同时,可提供**讯簿等功能,可广泛应用于移动宽带接入、视频监控、手持终端、车载设备等产品。 U8300采用先进的高度集成设计方案,将射频、基带集成在一块PCB上,完成无线接收、发射、基带信号处理和音频信号处理功能,采用双面布局,模块结构尺寸为:51.0×30.0×4.6mm。 U8300支持AT命令扩展,可以实现用户个性化定制方案。 优势 ● 支持多种网络制式,FDD-LTE/TDD-LTE/TD-SCDMA/EDGE/GPRS/GSM ● 宽带无线通讯模块,FDD_LTE:100Mbps(DL)/50Mbps(UL),TDD_LTE:61Mbps(DL)/18Mbps(UL),TD-SCDMA:4.2Mbps(DL)/2.2Mbps(UL) ● Mini PCI-E标准连接器,便于调试和售后维护 ● 支持GPS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值