TQ2440使用手册

TQ2440使用手册

版本次 修改内容 修改人员
V1 新建 刘倪

一:开发环境的配置

见嵌入式开发环境的构建

二:uboot的编译与移植

2.1 配置uboot

参看u-boot-2014.04移植手册(TQ2440)

2.2 配置uboot驱动

参看第二部分内容以及

2.3编译uboot

2.3.1 uboot文件说明

? 为了节省时间,直接使用了国嵌提供的uboot_tq2440,并且尝试了网上提供的文件。分别为:

  • uboot_tq2440:国嵌提供,编译OK,使用查看U-boot使用手册;
  • jz2440:里面有u-boot-1.1.6与u-boot-1.1.6_100ask24x0;分别为韦山东提供的文件与补丁,打补丁方式为,进入u-boot-1.1.6根目录,运行patch p1 > ../u-boot-1.1.6_100ask24x0.patch,uboot使用为 make 100ask24x0_config,但是make时存在问题;
  • u-boot-1.1.6_20100601为csdn中的文件使用为make EmbedSky_config,同样make有问题。

2.3.2 编译uboot_tq2440

  • 解压,进入uboot_tq2440目录
  • 清理编译文件和配置文件,make clean(清理编译文件),make distclean(清理配置文件)。该步没有做后编译会出问题
  • 配置uboot. make TQ2440_config
  • 编译uboot. make

2.3.4 uboot使用

  • 在norflash模式下,把u-boot.bin(该文件就是在uboot_tq2440中)下载到开发板nandflash
  • 使用sudo dnw u-boot.bin

4.在nandflash下,学习uboot的简单命令

三 内核的编译与移植

3.1 x86平台内核配置与移植

3.1.1 清理配置文件

make distclean

3.1.2 配置linux内核

配置方式:

make config配置——文本交互;

make menuconfig配置——界面交互。

3.1.3 编译内核代码

make zImage V=1
make bzImage V=1

编译好的内核位于arch//boot/目录下

3.1.4 编译内核模块

? 将编译好的内核模块,从内核源代码目录复制至/lib/modules下**,为打包做好准备

3.1.5 编译根文件系统,制作init ramdisk

    mkinitrd initrd-$version $version 

3.1.6 安装内核与文件系统

cp arch/x86/boot/bzImage /boot/vmlinuz-$version
cp initrd-$version /boot/
修改/etc/grub.conf

3.2.RAM平台内核配置与移植

3.2.1 清理配置文件

make distclean

3.2.2 进行配置  

make config配置——文本交互;
make menuconfig配置——界面交互。

这里两种方式都是为了生成.config配置文件。这里为了方便,直接将配置好的文件config-file拷贝到linux内核代码目录中,并改为.config;在执行

make menuconfig ARCH=arm

注意:如果不是通过命令行复制.config,最好重新打开终端。同时注意要将.config中的CONFIG_INITRAMFS_SOURCE改为空或者为自己开发板建立根目录地方(/home/guqinglei/Writing_code/TQ2440/rootfs)。还要注意把 Device Drivers 选项下的看门狗(Watchdog Timer Support)关掉,否则开发板进入文件系统之后,过一段时间又自动重新启动。

3.2.3 编译RAM内核

make uImage ARCH=arm CROSS_COMPILE=arm-linux-

生成的文件在arch/arm/boot/uImage

  • zImage和uImage的区别

3.2.4 编译内核模块

见下一节内容

3.2.5 安装根文件系统

见下一节内容

3.3.安装下载内核

  1. 将来文件从arch/arm/boot/uImage拷贝到tftp挂载目("/home/guqinglei/Wring_code/TQ2440/tftpboot")
  2. 下载内核:tftp 0x31000000 uImage
  3. 测试内核启动:bootm ox31000000
  4. 启动内核
  • 交叉开发时,开机自动通过tftp下载文件:
#setenv bootcmd tftp 0x31000000 uImage \; bootm 0x31000000
#saveenv
  • 开机自动从nand flash中读取内核:
#nand write 0x31000000 400000 500000(内核下载在0x31000000后)
#setenv bootcmd nand read 0x31000000 400000 500000 \; bootm 0x31000000
#saveenv       

四.文件系统的编译与移植

4.1 根文件系统的制作

4.1.1 建立根文件系统目录

#mkdir rootfs
#cd rootfs
#mkdir bin dev etc lib proc sbin sys usr mnt tmp var
#mkdir usr/bin usr/lib usr/sbin lib/modules

4.1.2 建立根文件系统目录

#cd rootfs/dev
 #mknod -m 666 console c 5 1
 #mknod -m 666 null c 1 3

4.1.3 加入配置文件

#tar etc.tar.gz
#mv etc/* rootfs文件夹 -rf

4.1.4 添加内核模块——安装常用的驱动模块

#cd linux源文件目录
#make modules ARCH=arm CROSS_COMPILE=arm-linux-
#make modules_install ARCH=arm INSTALL_MOD_PATH=根目录所在文件夹(/home/guqinglei/Writing_code/TQ2440/rootfs)

通过/home/guqinglei/Writing_code/TQ2440/rootfs/lib/modules/2.6.30.4-EmbedSky/kernel/drivers可以查看有没有安装驱动可以确定是否安装成功。

4.1.5 编译/安装busybox——安装系统执行命令

  • 配置busybox

    cd busybox-1.13.3/
    make clean
    make distclean
    make menuconfig
    • Busybox Settings ->build Options->选中 “Build busybox as a static binary”,->将ross Compiler prefix (静态链接)设置为arm-linux-
    • Installation Options->选中 “Don‘t use /usr”(选中该项可以避免busybox 被安装到宿主系统的/usr目录下,破坏宿主系统) ->将Busybox Installation Prefix设为/home/guqinglei/Writing_code/TQ2440/ rootfs(表明编译后的busybox的安装位置)
  • 编译、安装busybox
    make
    make install

    通过查看/home/guqinglei/Writing_code/TQ2440/rootfs/bin是否存在内核常用命令,可以判断该步是否成功

2.挂载文件系统

4.2.1 创建Initramfs的软链接

#cd /home/guqinglei/Writing_code/TQ2440/rootfs
#ln –s ./bin/busybox init

或者:

#cd /home/guqinglei/Writing_code/TQ2440/rootfs/bin
#ln –s busybox ../init

4.2.2 文件系统

  • 使用Initramfs文件系统

    • 编译内核
    #cd 进入linux源代码目录
    #make clean
    #make menuconfig

    进入general setup->Initial RAM filessystem and RAM disk...填入rtoof路径(/home/guqinglei/Writing_code/TQ2440/rootfs)

    #make uImage ARCH=arm CROSS_COMPILE=arm-linux-
    • 设置uboot环境变量
    #setenv bootargs noinitrd console=ttySAC0,115200
    #saveenv

    备注:不知道为什么还是进不去文件系统

  • 使用NFS文件系统
    • 编译内核
    #cd 进入linux源代码目录
    #make clean
    #编译内核
    #make menuconfig

    进入general setup->取消Initial RAM filessystem and RAM disk...
    返回主界面,进入file systems->选择network file systems->选择root file systems on NFS

    #make uImage ARCH=arm CROSS_COMPILE=arm-linux-
    • 设置uboot环境变量
    #setenv bootargs noinitrd console=ttySAC0,115200 init=/init root=/dev/nfs rw nfsroot=192.168.0.119:/home/guqinglei/Writing_code/TQ2440/rootfs,proto=tcp,nfsvers=3 ip=192.168.0.110:192.168.0.119:192.168.0.1:255.255.255.0::eth0:off    
    #saveenv
    • 将uImage拷贝到tftp挂载目录,下载内核。

?

原文地址:https://www.cnblogs.com/guqinglei/p/11488618.html

时间: 2024-08-30 02:27:29

TQ2440使用手册的相关文章

【详解】嵌入式开发中固件的烧录方式

版本:v1.2 Crifan Li 摘要 本文主要介绍了嵌入式开发过程中,将固件从PC端下载到开发板中的各种方式,主要包括NFS挂载,Nand Flash和Nor Flash,USB,RS232,网卡NIC等方式. 本文提供多种格式供: 在线阅读 HTML HTMLs PDF CHM TXT RTF WEBHELP 下载(7zip压缩包) HTML HTMLs PDF CHM TXT RTF WEBHELP HTML版本的在线地址为: http://www.crifan.com/files/do

u-boot-2015.01在tq2440上的初步移植

作者: 彭东林 邮箱: [email protected] QQ:   405728433 开发板:     tq2440 工具:       Win7 + VMware + Debian6 U-boot版本: u-boot-2015.01 Linux版本:  天嵌自带的 linux-2.6.30.4 GCC版本:     gcc version 4.3.3 (Sourcery G++ Lite 2009q1-176)   之前由于移植过u-boot-2014.04到tq2440上,现在移植u-

基于设备树的TQ2440的中断(1)

作者 姓名:彭东林 E-mail:[email protected] QQ:405728433 平台 板子:TQ2440 内核:Linux-4.9 u-boot: 2015.04 工具链: arm-none-linux-gnueabi-gcc 4.8.3 概述 在博文讓TQ2440也用上設備樹(1)将支持devicetree的Linux4.9移植到了tq2440上面,而在基於tiny4412的Linux內核移植 --- 实例学习中断背后的知识(1)中介绍了最新的Linux下中断的知识,下面我们再

TQ2440平台上LCD驱动的移植

参考: http://liu1227787871.blog.163.com/blog/static/205363197201242393031250/ http://blog.csdn.net/cumtgao/article/details/8649006 http://www.360doc.com/content/12/0424/17/9159905_206213245.shtml http://blog.csdn.net/yj4231/article/details/7878762 硬件平台

TQ2440开发板学习纪实(3)--- 设置时钟频率,让CPU运行的更快

0 原理 0.1 时钟源自哪里 所谓的时钟,就是电压高低的变化,只有不断的0,1交替变化,CPU才能被驱动运行.S3C2440支持多种时钟源,这通过CPU针脚OM3和OM3来选择.对于QT2440板子来说,OM3和OM2均直接接地,这就意味着时钟源来自针脚XTIpll和XTOpll,这两个针脚在TQ2440的核心板上被连接上了一个12MHz的晶振. 0.2 S3C2440的时钟原理与设置 CPU.RAM.UART等不同的设备运行时需要不同的时钟频率,这些不同的频率需要通过变频电路来提供,在电子行

TQ2440触摸屏驱动程序的移植

按照天嵌官方的<linux移植之step by step>手册上的方法,做linux2.6.30.4触摸屏驱动程序的移植没有成功,经过一番摸索发现是2.6.30.4没有合适的ADC驱动,所以就着手自己做ADC和触摸屏驱动的移植,下面是我解决问题的详细过程: 1.找到天嵌给的linux2.6.30.4的源码,进入drivers/char 目录,把ADC驱动程序的源码抠出来,注意还有那个ADC驱动程序要调用的头文件,我的是直接把头文件加到ADC驱动程序的源码里面,下面是加入头文件修改后的ADC驱动

TQ2440外接GPIO蜂鸣器驱动程序

本文通过TQ2440开发板上可外接的GPIO口GPG14连接蜂鸣器,通过控制GPG14引脚的高低电平的输出和高低电平输出之间的时间间隔来使蜂鸣器发出不同的声音. 1.打开S3C2440的底板原理图找到GPIO,如下图所示: 使用万用表先找到VDD5V那个引脚,然后对照图找到GPG14,将蜂鸣器的正极连上GPG14,负极连上GND接地. 2.蜂鸣器驱动程序源代码My_Beep.c: #include <linux/module.h> #include <linux/kernel.h>

u-boot支持LCD显示(基于TQ2440)

平台简介 Linux版本:Linux-3.14 u-boot版本:u-boot-2015.04 硬件:TQ2440(内存:64MB  NandFlash:256MB) 作者:彭东林 邮箱:[email protected] 摘要 这个版本的u-boot支持LCD很容易,期间,参考了tq2440官方u-boot中的LCD驱动.我们只需要在配置文件中配置相应的宏,实现LCD的初始化和使能函数即可. 代码我已经上传到CSDN上了,[email protected]:pengdonglin137/u-b

TQ2440按键点亮LED驱动程序

一,硬件分析: 1.打开TQ2440的底板原理图找到按键测试的模块,如下图所示: 从图我们知道,控制按键k1 k2 k3 k4 的管脚为EINT1 EINT4 EINT2 EINT0 ,当按键按下时,管脚输出低电平,当按键没有被按下时,管脚输出高电平. 2.打开TQ2440核心板原理图找到EINT1  EINT4 EINT2 EINT0所对应的cpu控制引脚,如下图所示: 从图我们可以知道,EINT1  EINT4 EINT2 EINT0 对应的cpu控制引脚为GPF1 GPF4 GPF2 GP