手把手教你从零开始搭建友善之臂ARM-tiny4412开发环境

简介: 手把手教你从零开始搭建友善之臂ARM-tiny4412开发环境

今天我们来介绍一下TINY4412开发环境的搭建。


在Linux环境下:

在终端输入以下命


创建一个ARM目录

mkdir   /disk/A9  -p

接下来你需要准备以下的东西
1、arm-linux-gcc-4.5.1     交叉编译器
2、linux-3.5-tiny4412      内核
3、rootfs_qtopia_qt4-20140124.tar.gz    QT文件系统 (做好的)
4、busybox-1.22.1.tar.bz2  文件系统原码  busybox
5、uboot_tiny4412-20130729.tgz   uboot
6、arm-qte-4.8.5-20131207.tar.gz   QT原码  ARM

7、uboot_tiny4412-20130729.tgz  对应的4412uboot源码

8、minicon   串口

9、安装dnw ,需要上网搜索dnw下载并安装到系统

10、一张SD卡、一条串口线、一根dnw线、一根网线


好了,该准备的我们都准备好了,接下来看如何把开发环境搭建好。


1.安装交叉编译器

cd  /disk/A9
tar -xvf  arm-linux-gcc-4.5.1
ls opt
FriendlyARM
cp opt/FriendlyARM    /opt  -r
ls /opt/FriendlyARM/toolschain/4.5.1/bin/
拷 /opt/FriendlyARM/toolschain/4.5.1/bin/
vim   ~/.bash_profile
在PATH=$PATH:$HOME/bin下面加上
PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin/
保存退出    ctrl +Alt + backspace  注销
测试是否安装成功  arm-   tab tab 可以列出所有的交叉编译器就成功

2.编译uboot

cd  /disk/A9
tar  -xvf uboot_tiny4412-20130729.tgz
cd  uboot_tiny4412
make tiny4412_config
make     生成u-boot.bin   u-boot 文件

3.将编好的u-boot.bin烧写到SD卡


1>插入SD卡


2>D卡

dd if=/dev/zero  of=/dev/sdb   bs=1024 count=102400

3>烧写

cd  /disk/A9/uboot_tiny4412/sd_fuse
make
cd  tiny4412
./sd_fusing.sh   /dev/sdb

烧写完毕

配置minicom

在命令行中输入:

minicom -s
┌─────[configuration]──────┐
            │ Filenames and paths      
            │ File transferprotocols  
            │ Serial port setup          <== 选择这一项
            │ Modem and dialing        
            │ Screen and keyboard      
            │ Save setup as dfl        
            │ Save setup as..          
            │ Exit                     
            │ Exit from Minicom        
           └──────────────────────────┘

按如图所示配置

 ┌───────────────────────────────────────────────────────────────────────┐
    │ A -    Serial Device      : /dev/ttyUSB0                             
    │ B - Lockfile Location     : /var/lock                                
    │ C -   Callin Program      :                                          
    │ D - Callout Program      :                                          
    │ E -    Bps/Par/Bits       : 115200 8N1                               
    │ F - Hardware Flow Control : No                                       
    │ G - Software Flow Control : No                                       
    │   Change which setting?                                            
   └───────────────────────────────────────────────────────────────────────┘

改成这样

enter  
Save setup as dfl 保存成默认
Exit              退出
退出minicom  
ctrl + a  + q  退出

然后开机界面可以看到以下打印信息:

U-Boot 2010.12 (Oct 13 2015 - 11:03:50) for TINY4412                           
CPU:    S5PC220 [Samsung SOC on SMPPlatform Base on ARM CortexA9]           
        APLL = 1400MHz, MPLL = 800MHz            
Board:  TINY4412                                                       
DRAM:   1023 MiB                                                      
vdd_arm: 1.2                                                      
vdd_int: 1.0                                                     
vdd_mif: 1.1                                                    
BL1 version:  N/A (TrustZone EnabledBSP)
Checking Boot Mode ... SDMMC
REVISION: 1.1
MMC Device 0: 3724 MB
MMC Device 1: 7456 MB
MMC Device 2: N/A
*** Warning - using default environment
Net:    No ethernet found.
Hit any key to stop autoboot:  0 
TINY4412 # 

内核移殖

编好内核   zImage   给uboot引导

cd  /disk/A9
ls linux-3.5-tiny4412
tar -xvf  linux-3.5-tiny4412
cd  linux-3.5
cp  tiny4412_linux_defconfig   .config
make

最后出现

OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready

编译成功      

arch/arm/boot/zImage

安装DNW

cd  /disk/A9/dnw-linux
make 
make install

一 . 利用dnw方式下载内核

1> minicom中

dnw 0x40008000

2>  PC中

cd /disk/A9/linux-3.5
dnw  arch/arm/boot/zImage

成功下载内核到板子


3>引导内核 ==>  启动内核

bootm 0x40008000  

二 . SD卡下载内核

1> 关电取出SD卡,并将PC机上的内核zImage拷到SD卡上的第一个分区 fat32


2> 将SD卡插入开发板并且开机


3> 查看SD卡上的内核

  fatls mmc 0:1 /      //查看第0个MMC设备 第一个分区 的分区目录

4> 读取SD卡上的内核

 fatload mmc 0:1 0x40008000  zImage 

5> 引导内核

 bootm 0x40008000

三 . 自动读取SD卡上的内核并且启动


在minicom中

 set bootcmd  "fatload mmc 0:10x40008000 zImage;bootm 0x40008000"
    save

reset  查看是否会自动启动内核


四. movi 内核启动

1> DNW下载内核到板子uboot  地址0x40008000


2>写内核

  movi write kernel 0 0x40008000

3> 设置自动启动

set bootcmd "movi read kernel 0 0x40008000;bootm 0x40008000"

4>  reset  自动启动内核



烧写文件系统

1>  网络文件系统

cd /disk/A9
tar -xvf  busybox-1.22.1.tar.bz2
cd  busybox-1.22.1
make defconfig     //默认配置
make menuconfig  
     Busybox Settings  --->      
[*] Build BusyBox as a static binary (no shared libs)                  │
[*]   Build BusyBox as a positionindependent executable (NEW)        │
[ ] Force NOMMU build                                                 │
[ ] Build shared libbusybox (NEW)                                      │
[*] Build with Large File Support (for accessing files > 2 GB)         │
(arm-linux-)  Cross Compiler prefix                                         

保存退出

make -j4
make install   会生成一个目录   _install

制作文件系统

cd /disk/A9
mkdir filesystem
cd /disk/A9/filesystem
cp /disk/A9/busybox-1.22.1/_install/*  .-r
mkdir   etc dev opt sys tmp mnt lib proc
mkdir  etc/init.d
vim  etc/init.d/rcS

添加

mount -t ramfs none  /dev
mount -t sysfs none  /sys
mount -t proc  none  /proc
mount -t tmpfs none  /tmp
/sbin/mdev  -s

保存退出

vim  etc/inittab

添加

::sysinit:/etc/init.d/rcS
ttySAC0::askfirst:-/bin/sh

保存退出

vim  etc/profile

添加

export  PS1="[root @ cjy \W ] #"

保存退出

mknod  dev/console  c  5  1
cp /opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/lib/*  ./lib   -r
cd ..

给权限

chmod 777 filesystem -R

发布文件系统

vim   /etc/exports

添加

/disk/A9/filesystem      *(rw,sync,no_root_squash)

保存退出


检查文件系统是否已经发布

showmount -e 192.168.88.xxx
//板子上配置IP还有bootargs
set gatewayip  192.168.88.1
set ipaddr     192.168.88.x   //板子的IP
set serverip   192.168.88.xxx   //PC机IP
save
set bootargs  "root=/dev/nfsnfsroot=192.168.88.xxx:/disk/A9/filesystem
ip=192.168.88.x console=ttySAC0,115200 lcd=S70 ctp=2"
save

reset  查看是否进入文件系统

//************************************************************

SD卡文件系统


一>

   将/disk/A9/filesystem  拷到 SD卡上的 第四个分区


 板子

   1> 保存nfsbootargs

set nfsbootargs $bootargs
    save

 2>

set bootargs "root=/dev/mmcblk0p4console=ttySAC0,115200 lcd=S70 ctp=2"
    save

 3>

   reset 查看是否进入SD卡文件系统


二>

   先进入网络文件系统

   挂载出SD卡的第四个分区

 mount /dev/mmcblk0p4  /mnt

打包现有的文件系统

 cd /disk/A9/filesystem
    tar -cf nfs.tar *
    tar -xvf nfs.tar -C  /mnt
    umount /mnt

 板子

   2>

 set bootargs "root=/dev/mmcblk0p4console=ttySAC0,115200 lcd=S70 ctp=2"
    save

3>

   reset 查看是否进入SD卡文件系统


最后一个

   将文件系统直接烧录到板子上的mmc

   1.

   将uboot烧写进去

  dnw E4412_N.bl1.bin

先进入SD卡的uboot

   2.

 emmc open 1
    //      1板子上的MMC   0x40008000从哪里读  0起始块地址  0x10大小

 3.

mmc write 1 0x40008000 0 0x10
  dnw bl2.bin

4.

 mmc write 1 0x40008000 0x10 0x1C
    dnw u-boot.bin

5.

mmc write 1 0x40008000 0x300x1F6

6.

  emmc close 1

7.

   段电,拔SD卡,选择NAND启动,上电看是否进入板子MMCuboot


   烧写MMC 内核

dnw arch/arm/boot/zImage
    movi write kernel 0 0x40008000
    set bootcmd "movi read kernel 00x40008000;bootm 0x40008000"
    save
    //分区板子上的MMC
    fdisk -p 0   查看分区信息   
    创建分区
    fdisk -c  1000 500 500

直接进入网络文件系统

 set bootargs"root=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    save

进入系统之后

mount /dev/mmcblk0p2  /mnt
    tar -xvf nfs.tar -C /mnt
    chmod 777 /mnt/  -R
    umount /mnt 
      u-boot内
    set bootargs"root=/dev/mmcblk0p2 console=ttySAC0,115200 lcd=S70 ctp=2"
    save

 reset 启动MMC内的文件系统

目录
相关文章
|
Oracle Java 关系型数据库
珠联壁合地设天造|M1 Mac os(Apple Silicon)基于vscode(arm64)配置搭建Java开发环境(集成web框架Springboot)
也许有人从未听说过Python,但是不会有人没听说过Java,它作为一个拥有悠久历史的老牌编程语言,常年雄踞TIOBE编程语言榜首,其顶尖的霸主地位不可撼动,而M1 mac业已发布了一段时间,作为跨时代的顶级芯片系统,这两大巨头能否珠联璧合,让开发者们猛虎添翼、更上层楼?本次我们尝试在M1 mac系统中搭建Java开发环境,并且集成目前Web开发领域红的发紫的Springboot框架,另外,谁说玩儿Java就必须得用Eclipse或者IntelliJ IDEA?我们就骄傲地使用Vscode。
珠联壁合地设天造|M1 Mac os(Apple Silicon)基于vscode(arm64)配置搭建Java开发环境(集成web框架Springboot)
|
Ubuntu 测试技术 Android开发
Ubuntu下Eclipse搭建ARM开发环境
第一步:安装JRE 和 Eclipse       详细步骤请参考:http://blog.csdn.net/ex_net/article/details/7251664   第二步:安装arm-linux-gcc 和 arm-linux-g++    (1)复制 arm-linux-gcc-4.
1614 0
|
IDE 开发工具 Android开发
Eclipse ARM IDE 开发环境
一、Eclipse Eclipse的本身只是一个框架平台,但是众多插件的支持,使得Eclipse拥有较好的灵活性。 二、CDT CDT是Eclipse用于扩展Eclipse支持C/C++开发的插件。
1518 0
|
NoSQL Windows 内存技术
Windows下基于ADS+J-Link 的ARM开发环境搭建
在一般ARM编程教学和实验环境里,一般采用 ADS加+并口转Jtag板+H-Jtag的开发环境。但是这种方法最大缺点是需要机器上有一个并口。现在无论PC还是笔记本都很难有并口,因此采用USB接口调试器就大行其道。其中Segger的JLink是比较有名和方便的调试器。 <div>      </div> <div>      ADS 1.2 ,可以如下链接下载</div> <div> 
1523 0
【各种问题处理】X86架构和ARM架构的区别
【1月更文挑战第13天】【各种问题处理】X86架构和ARM架构的区别
|
1月前
|
数据处理 编译器 数据库
x64 和 arm64 处理器架构的区别
x64 和 arm64 处理器架构的区别
|
1月前
|
弹性计算 编解码 运维
飞天技术沙龙回顾:业务创新新选择,倚天Arm架构深入探讨
阿里云、平头哥与Arm联合举办的飞天技术沙龙在上海举行,聚焦Arm Neoverse核心优势和倚天710计算实例在大数据、视频领域的应用。活动中,专家解读了倚天710的性能提升和成本效益,强调了CIPU云原生基础设施处理器的角色,以及如何通过软件优化实现资源池化和稳定性平衡。实例展示在视频编码和大数据处理上的性能提升分别达到80%和70%的性价比优化。沙龙吸引众多企业代表参与,促进技术交流与实践解决方案的探讨。
飞天技术沙龙回顾:业务创新新选择,倚天Arm架构深入探讨
|
14天前
|
传感器 物联网 数据中心
探索ARM架构及其核心系列应用和优势
ARM架构因其高效、低功耗和灵活的设计,已成为现代电子设备的核心处理器选择。Cortex-A、Cortex-R和Cortex-M系列分别针对高性能计算、实时系统和低功耗嵌入式应用,满足了不同领域的需求。无论是智能手机、嵌入式控制系统,还是物联网设备,ARM架构都以其卓越的性能和灵活性在全球市场中占据了重要地位。
18 1
|
6天前
|
物联网
arm架构和x86架构区别
arm架构和x86架构区别