驱动开发环境搭建与驱动开发流程

本文详细介绍了一种基于2410开发板的嵌入式Linux开发环境搭建流程,包括硬件准备、上位机和开发板配置、交叉编译工具安装、内核编译及uImage生成等关键步骤。此外,还提供了驱动开发与加载测试的方法。

一,开发环境
1,硬件:2410开发板,h-jtag,PC虚拟机ubuntu

2,配置上位机
a,安装ufs
b,配置ufs
sudo vi/etc/exports
在下面添加文件系统所在的路径,如:/opt/filesystem *(subtree_check,rw,no_root_squash,async)
c,重启服务
sudo /etc/init.d/nfs-kernel-server restart
sudo exportfs -a

3,配置开发板
a,准备uboot
用jtag烧写与开发板匹配的uboot.bin到开发板。一般烧写到nand flash。uboot自带引导和网卡驱动,并提供基本的配置接口。
b,设置uboot
启动开发板。uboot提供串口配置界面。uboot的设置命令可自行搜索。
1)设置目标板设置目标板设置目标板ip
setenv ipaddr 192.168.1.xxx 
保存
saveenv
2)设置服务器ip
/*这个ip是上位机的ip地址*/
setenv serverip 192.168.1.xxx
saveenv
3)设置网关
      setenv gatewayip ip 192.168.1.1
      saveenv
4)设置启动命令
/*将PC机上的uImage(内核镜像)通过tftp协议下载到目标板的内存SDRAM的30800000的位置(注意:这个位置是可改变的)。"\;"表示两条命令同时分隔符,也 可以只用一个";"号,后面的那条命令表示从目标板SDRAM的30800000的地方运行*/
      setenv bootcmd tftp 30800000 uImage\;bootcm 30800000 
      saveenv
      5)设置开发板自动加载的上位机的文件系统的路径
      setenv bootargs root=nfs nfsroot=<服务器IP>:<文件系统路径> console=ttySAC0,115200 ip=<开发板IP>
      saveenv
    4,安装交叉编译工具
    a,下载交叉编译工具,解压
    b,配置环境变量
    vim .bashrc
    在上面文件中加入export PATH=$PATH:/<交叉编译工具的bin路径>
    source .bashrc
   
二,编译内核成uImage
1,内核下载源码包,解压到上位机的某一目录如/home/linux_src
2,修改源码包的顶层makefile文件
vim Makefile
修改两行:
ARCH ?=arm
CROSS_COMPILE ?=arm-linux-gun- #注意与自己的交叉编译工具匹配
3,修改.config文件
cp arch/arm/configs/s3c2410_deconfig .config #选择相应的deconfig文件生成
4,剪裁内核
make menuconfig
进入图形化配置菜单进行配置。如需加载额外的驱动,则先将驱动文件.c和.h拷贝到相应的目录下
5,将mkimage放在ubuntu的/usr/bin目录下,注意修改权限。这是各用来生成uImage的工具。
6,编译uImage。
make uImage
生成的uImage在/arch/arm/boot目录下,将其拷贝到/tftpboot目录下
三,加载内核和文件系统
1,进入uboot
启动/复位开发板,进入uboot,输入print会打印之前在uboot里设置的相关信息
2,下载uImage
确定没问题后,输入res重启,uboot会通过tftp协议自动下载uImage
下载玩uImage内核后,会启动内核,挂载文件系统,进入命令提示符(用户名密码默认为root:123456)。
如内核不能启动,注意查看uboot里面文件系统和网卡驱动的相关配置


注意,先安装tftp服务和nfs服务。



四:驱动开发与加载测试
1,驱动的makefile文件格式
		KERN_DIR =/home/matt/share/linux_src/linux-2.6.22.6
	
		all:
			make -C $(KERN_DIR) M=`pwd` modules
			cp led.ko /opt/filesystem


		clean:
			make -C $(KERN_DIR) M=`pwd` modules clean


		obj-m +=led.o



2,编译驱动
make,以上的makefile文件会自动将编译生成的驱动拷入文件系统目录
3,在开发板上加载驱动
lsmod /dev
rmmod xxx
insmod xxx.ko
cat /proc/devices
ls -l /dev/xxx 查看主设备下的次设备

4,驱动测试或应用
编写驱动测试程序(或应用程序),用交叉工具编译之后,拷贝到文件系统,然后在目标板上运行,查看效果。


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值