针对TQ2440开发板上linux2.6.30.4内核的交叉编译和驱动程序的移植

最近由于要做TQ2440(ARM9)开发板上的驱动实验,所以要在主机(ubuntu13.10)上针对前面的目标板上的系统内核进行交叉编译。

一,内核的交叉编译:

1.准备2.6.30.4版本的内核源码包,这个我使用的是天嵌公司提供的内核源码包linux-2.6.30.4_20121214.tar.bz2。

2.打开终端输入指令:tar vxjf linux-2.6.30.4_20121214.tar.bz2 解压内核源码包得到一个名字为opt的文件夹,然后输入指令:sudo mv opt /usr/local/ 将源码剪切至usr/local下,当然这个你可以选择移动到其他你喜欢的文件夹下。

3.输入指令:cd /usr/local/opt/EmbedSky/linux-2.6.30.4 进入到内核源码的目录,然后输入指令:ls 查看文件,找到一个名字为config_EmbedSky_W43(我的触摸屏是4.3寸的,所以选择这个),然后在当前目录下输入指令:cp config_EmbedSky_W43 .config,复制一份把他的名字修改为 .config。

4.登录root,输入指令:make menuconfig,然后弹出linux配置的界面--Linux Kernel Configuration,选择最后一项--Save an Alternate Configuration File,然后选择ok保存配置。

5.输入指令:make 进行编译即可(root权限)。什么交叉编译路径的配置和支持平台的配置,人家天嵌公司在源码里面的Makefile文件里早就给你配置好了,这个无需担心。等待编译结束后,进入内核的源码文件夹下vmlinux,交叉编译成功!

二,驱动程序的移植:

当顺利完成内核的交叉编译工作后,接下来就可以着手把驱动程序移植到目标板的系统内核中了,你只需要注意Makefile文件的编写,把2.6.30.4内核的路径和交叉编译工具链arm-linux-gcc加进去,然后接下来直接输入make指令,便编译出了可以加载进TQ2440目标板系统内核的驱动模块了。

具体Makefile的源码如下(假设我要编译的驱动程序的名字为mybeep):

obj-m:=mybeep.o
CC=arm-linux-gcc
KERNELDIR=/usr/local/opt/EmbedSky/linux-2.6.30.4
PWD:=$(shell pwd)
default:
	$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
clean:
	$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
时间: 2024-08-05 14:31:52

针对TQ2440开发板上linux2.6.30.4内核的交叉编译和驱动程序的移植的相关文章

【转】深度分析NandFlash—物理结构及地址传送(以TQ2440开发板上的K9F2G08U0A为例)

K9F2G08U0A是三星公司生产的总容量为256M的NandFlash,常用于手持设备等消费电子产品.还是那句话,搞底层就得会看datasheet,我们就从它的datasheet看起. 这就是 K9F2G08U0A的内部结构,具体的各个部件的介绍,就不详细介绍了,想了解的话可以参考伟东山的<嵌入式linux应用开发完全手册>. 现在就看一下重点的,NandFlash的存储单元的组织结构,K9F2G08U0A的存储单元的组织结构如下: 结合上面的图,我们现在来分析一下: NandFlash的存

编译天嵌官方的linux-2.6.30.4内核下载到TQ2440开发板不断重启的解决办法

编译天嵌官方的linux-2.6.30.4内核下载到TQ2440开发板不断重启的解决办法 查看了一下开发板启动打印的 LOG 信息,和官方启动 LOG 一对比发现交叉编译器版本不一致.我用的编译器版本是:arm-linux-gcc-4.5.1,而天嵌官方的 zImage.bin 是用arm-linux-gcc-4.3.3编译的.于是网上找了半天arm-linux-gcc-4.3.3没找到,便下载了一个 4.3.2 版本的. 重新编译下载,板子竟然奇迹般可以正常启动了. 但是又出现了新的问题,进入

【Android 系统开发】 编译 Android 系统 u-boot 内核 源码 并烧写到 OK-6410A 开发板上

博客地址 : http://blog.csdn.net/shulianghan/article/details/40299813  本篇文章中用到的工具源码下载 : -- ok-6410A 附带的 Android 光盘 下载地址 : http://pan.baidu.com/share/link?shareid=3662728609&uk=2754759285 ; -- 光盘所含内容 : Android 引导 u-boot 源码, Android 内核 源码, Android 系统源码, 交叉编

物联网操作系统HelloX已成功移植到MinnowBoard MAX开发板上

在HelloX开发团队的努力下,以及Winzent Tech公司(总部在瑞典斯德哥尔摩)的支持下,HelloX最新版本V1.78已成功移植到MinnowBoard MAX开发板上.相关源代码已经发布到github上(github.com/hellox-project/HelloX_OS),欢迎感兴趣的朋友下载测试. MinnowBoardMAX是在Intel的支持下,由Circuit公司开发的一款基于Intel ATOM处理器的卡片式电脑,具备超高的性能,丰富的扩展性,以及相对较低的功耗和成本.

DM365开发板上uboot操作实践

uboot主要命令: nand命令集    nand flash设备的操作命令集合 nand info    显示flash设备信息. nand device [num] 显示具体flash设备的信息. nand erase offset size    擦除Nand Flash的 off 偏移地址处的size 字节的数据.举例: nand erase 200000 300000 nand read loadaddr offset size    从Nand Flash的offset偏移地址处读

在STM32F746G-DISCO开发板上使用Nabto + FreeRTOS的演示热泵应用

当使用STM32 ARM Cortex-M微控制器时,ST的免费嵌入式软件STM32Cube提供了所有必要的驱动程序和中间件组件,以减少初始的开发工作.在上述提到的中间件组件中,其中一个是非常受欢迎的FreeRTOS实时操作系统,Nabto正在努力建立一个强大的FreeRTOS + Nabto组合的解决方案. 我们最新推出AppMyProduct应用平台可帮助您快速开发远程控制设备的高质量应用程序.本文介绍了在STM32F746G-DISCO开发板上使用Nabto + FreeRTOS的演示热泵

jz2440烧写内核和文件系统,将虚拟机上的文件通过nfs挂载到开发板上。

1.内核和文件系统要匹配好. 2.文件系统的格式,yaffs2,jaffs nand write.yaffs2... ...$(filesize) a.安装nfs 下面介绍具体操作:1.执行命令:sudo apt-get install nfs-kernel-server ;2.执行命令:mkdir /home/share/NFS 建立一个nfs服务的专有的文件夹;3.建立好文件夹后,接着执行命令:sudo vi /etc/exports 配置nfs;4.在文章的最后一行添加:/home/sha

驱动控制开发板上的四个LED小灯

在上一章了解了开发linux驱动程序的步骤,在本章会完成一个真正意义上的linux驱动,该驱动用来控制开发板上的四个LED小灯,通过向驱动发送数据可以控制LED小灯的开关. 首先介绍了LED驱动的实现原理,虽然linux驱动直接与硬件打交道,但并不是linux驱动直接向硬件中的内存写数据,而是与本机的I/O内存进行交互.Linux内核的内存管理模块负责同步I/O内存与硬件中的数据.每一个连接linux的硬件在I/O内存中都会有映射首地址. 其次是编写LED驱动.以下创建一个设备文件,第一步:使用

8_陀螺仪MPU6050和PWM控制在STM32F4-Discovery开发板上的实现

很早以前就把圆点博士的程序从STM32F103移植到STM32F4-Discovery(STM32F407),battery,陀螺仪和PWM电机控制的程序都已经测试完毕,运行有一段时间,正常.下面展示几张图片,都是用杜邦线连接起来的,陀螺仪,串口等外设,此外还有nRF24L01,不过nRF24L01的程序读写寄存器可以了,没有尝试过与别的nRF24L01通信.下面一张是正面照片: 下面这张是背面的连接线: 下面这张来个更清晰一些的: 下面这张是圆点博士的上位机软件: 同时我也录制了一些视频,上传