手把手教你从头开始搭建友善之臂ARM-tiny4412开发环境(史上最详细!!)

简介:

创建一个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 /      //
查看第0MMC设备 第一个分区 的分区目录

 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内的文件系统
 




 

目录
相关文章
|
编译器 Linux
手把手教你从零开始搭建友善之臂ARM-tiny4412开发环境
手把手教你从零开始搭建友善之臂ARM-tiny4412开发环境
502 0
|
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.
1663 0
|
IDE 开发工具 Android开发
Eclipse ARM IDE 开发环境
一、Eclipse Eclipse的本身只是一个框架平台,但是众多插件的支持,使得Eclipse拥有较好的灵活性。 二、CDT CDT是Eclipse用于扩展Eclipse支持C/C++开发的插件。
1566 0
|
12天前
|
机器学习/深度学习 弹性计算 人工智能
阿里云服务器ECS架构区别及选择参考:X86计算、ARM计算等架构介绍
在我们选购阿里云服务器的时候,云服务器架构有X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、高性能计算可选,有的用户并不清楚他们之间有何区别,本文主要简单介绍下这些架构各自的主要性能及适用场景,以便大家了解不同类型的架构有何不同,主要特点及适用场景有哪些。
|
24天前
|
人工智能 芯片 Windows
ARM架构PC退货率与CEO策略透视
ARM架构PC退货率与CEO策略透视
|
2月前
|
机器学习/深度学习 弹性计算 人工智能
阿里云服务器架构有啥区别?X86计算、Arm、GPU异构、裸金属和高性能计算对比
阿里云ECS涵盖x86、ARM、GPU/FPGA/ASIC、弹性裸金属及高性能计算等多种架构。x86架构采用Intel/AMD处理器,适用于广泛企业级应用;ARM架构低功耗,适合容器与微服务;GPU/FPGA/ASIC专为AI、图形处理设计;弹性裸金属提供物理机性能;高性能计算则针对大规模并行计算优化。
108 7
|
3月前
|
编解码 弹性计算 应用服务中间件
阿里云服务器Arm计算架构解析:Arm计算架构云服务器租用收费标准价格参考
阿里云服务器架构分为X86计算、Arm计算、高性能计算等多种架构,其中Arm计算架构以其低功耗、高效率的特点受到广泛关注。本文将深入解析阿里云Arm计算架构云服务器的技术特点、适用场景以及包年包月与按量付费的收费标准与最新活动价格情况,以供选择参考。
|
3月前
|
机器学习/深度学习 弹性计算 编解码
阿里云服务器计算架构X86/ARM/GPU/FPGA/ASIC/裸金属/超级计算集群有啥区别?
阿里云服务器ECS提供了多种计算架构,包括X86、ARM、GPU/FPGA/ASIC、弹性裸金属服务器及超级计算集群。X86架构常见且通用,适合大多数应用场景;ARM架构具备低功耗优势,适用于长期运行环境;GPU/FPGA/ASIC则针对深度学习、科学计算、视频处理等高性能需求;弹性裸金属服务器与超级计算集群则分别提供物理机级别的性能和高速RDMA互联,满足高性能计算和大规模训练需求。
134 6
|
3月前
|
存储 Docker 容器
ARM架构鲲鹏主机BClinux离线安装docker步骤
下载并安装适用于ARM架构的Docker CE二进制文件,解压后移动至/usr/bin目录。创建docker组,配置systemd服务脚本(docker.service、docker.socket、containerd.service),重载systemd配置,启动并启用docker服务。编辑daemon.json配置存储驱动、镜像加速地址等,最后拉取所需镜像。
91 0

热门文章

最新文章