嵌入式系统移植环境搭建解析

嵌入式设备(exynos4412)
 [1]iROM固化代码(基本硬件初始化,判别启动方式(SD/USB/EMMC),
                                 读取存储介质一部分数据到iRAM
                 )
                 
 [2]iRAM代码运行bootloader第一阶段(初始化系统时钟,初始化内存,搬移bootloader到内存)
 [3]内存中运行bootloader第二阶段(初始化基本的硬件设备(串口,EMMC,SD),加载OS到内存)
 [4]内存中运行操作系统(Linux,windows CE,Mac OS)
 [5]挂载文件系统 
 [6]运行应用程序 
 
 bootloader = BIOS + 引导程序

二 Linux 解压命令

tar -xvf        xxx.tar.* 
xxx.tar.gz   -> tar -zxvf  xxx.tar.gz 
xxx.tar.bz2  -> tar -jxvf  xxx.tar.bz2 
xxx.tar.xz   -> tar -Jxvf  xxx.tar.xz 

三 添加交叉开发工具链

交叉开发:在PC机完成代码的编写与编译,在开发板运行编译好的程序 

export PATH=$PATH:交叉开发工具链绝对路径 

例如:
在/home/linux/.bashrc(针对当前的登陆用户有效)或/etc/bash.bashrc(所有用户都有效)文件中添加如下内容:

TOOL_CHAIN=/home/linux/fs4412/toolchain/gcc-4.6.4/bin
export PATH=$PATH:$TOOL_CHAIN

注意:
    64bit ubuntu需要在线安装32bit运行库
    sudo apt install lib32ncurses5 
    sudo apt install lib32z1​

四 sd卡烧写u_boot 

(1)mkuboot.sh  -> 在烧写一个uboot到sd卡
(2)通过拨碼开关从sd卡启动
(2)在sd卡中新建一个sdupdate目录
(4)将自己编译好的u-boot-fs4412.bin拷贝到了sdupdate目录
(5)从sd卡启动,在启动的uboot中,
输入命令:(将bootloader写到emmc)
(6)拨动拨碼开关从emmc启动 

五 用u_boot引导Linux内核 

1.配置tftp服务(文件传输)
(1)安装软件包

   离线方式安装:
   sudo dpkg -i *.deb
   
   在线方式安装:
   sudo apt-get install tftp-hpa  (客户端程序)
   sudo apt-get install tftpd-hpa (服务端程序)
   
   注意:
   lsb_release -a 查看ubuntu版本信息
   
   
(2)修改默认的配置文件 /etc/default/tftpd-hpa 
   TFTP_DIRECTORY="/home/linux/fs4412/tftpboot" 自己的tftpboot路径 
   
(3)重新启动tftp服务    
   sudo /etc/init.d/tftpd-hpa restart
   或
   sudo service tftpd-hpa restart

测试:
    tftp 127.0.0.1(server IP)
    tftp>get 下载的文件
    tftp>quit
   

2.配置nfs服务(设置目录为网络上的共享目录)
(1)安装软件包
   sudo apt-get install nfs-kernel-server
   
(2)修改默认的配置文件 /etc/exports
     
   自己电脑上需要共享的目录路径
   /home/linux/fs4412/fs/rootfs  *(rw,sync,no_root_squash)
   
(3)重新启动nfs服务   
   sudo /etc/init.d/nfs-kernel-server restart
   或
   sudo service nfs-kernel-server restart

测试:
    sudo mount IP:共享路径  自己的挂载点目录
    
    例如:
    sudo mount 127.0.0.1:/home/linux/fs4412/rootfs  ./nfs(自己电脑上当前目录下的nfs子目录)

  撤销:
  sudo umount  挂载点目录 
  

六 u_boot常用命令  

(1)设置开发板ip地址
  setenv ipaddr  ip地址 
    
    
(2)设置tftp服务器端的ip地址
 setenv serverip  服务器端的地址 
 
开发板和ubuntu之间网络通信(板子Ping ubuntu):
<1>板子IP地址和Ubuntu的IP地址的网络号一样
<2>虚拟机桥接模式
<3>无线网卡禁用
<4>防火墙关闭

-------------------------------------------------------------
还是没有效果:
[1]网线有问题
[2]板子网卡芯片有问题    
------------------------------------------------------------

开发板通过tftp从ubuntu下载程序:
<1>ubuntu已经安装过tftp服务
<2>需要下载的文件已经存放在tftp服务指定的工作目录下
<3>在开发板中需要设置serverip (ubuntu的IP地址)
------------------------------------------------------------
如果没有效果:
[1]网络问题
[2]ubuntu的tftp服务死掉----->重启服务
------------------------------------------------------------ 
 
 
(3)保存设置好的环境变量
 save

(4)引导Linux内核的命令
 tftp 41000000 uImage
 tftp 42000000 exynos4412-fs4412.dtb
 tftp 43000000 ramdisk.img
 
 bootm 内核在内存地址  ramdisk在内存地址  设备树在内存地址
 bootm 41000000  43000000   42000000   

注意:
如果没有ramdisk,第二个参数用"-"代替

(5)设置开发板启动后,自动执行的命令(uboot 倒计时完成之后)
 setenv bootcmd tftp 41000000 uImage\;tftp 42000000 exynos4412-fs4412.dtb\;tftp 43000000 ramdisk.img\;bootm 41000000 43000000 42000000


ipaddr  : 设置板子IP
serverip: 设置tftp的服务端IP
bootcmd : u_boot倒计时之后,自动执行的命令
bootargs: 告诉操作系统挂载文件系统的方式
tftp    : 下载文件
bootm   : 启动操作系统

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值