zoukankan      html  css  js  c++  java
  • 嵌入式linux系统移植(一)

    内容:
       交叉编译环境
       bootloader功能子系统
       内核核心子系统
       文件系统子系统
    要点:
      搭建交叉编译环境
      bootloader的选择和移植
      kernel的配置、编译、移植和调试
      根文件系统的制作


    移植的基本步骤:
      确定目标机、主机的连接方式
      安装交叉编译环境
      搭建主机-目标机的数据传输通道
      编写三大子系统
      烧写测试


    目标机和主机的连接方式:

    1. UART异步串行通信接口(串口):速率低、实用性强
    2. USB串行通信接口:速度快、驱动要移植修改
    3. TCP/IP网络通信接口:速率快(10/100Mbps)、驱动要移植
    4. Debug Jtag调试接口:方便快捷、价格很高

    安装交叉编译器:
    安装芯片厂商编译好的工具链
    arm-none-linux-gnueabi-  --->arm-linux :开源的ARM下的linux平台的交叉编译环境
    arm-none-eabi                                       :不支持操作系统(无操作系统下的交叉编译环境)
    提供交叉编译器的公司:codesourcery       
    自己动手编译交叉工具链(没有特殊要求,不推荐)


    搭建主机-目标机的数据传输通道
    网络相关服务器的配置:TFTP、NFS
    NFS(网络文件系统)系统和系统之间的文件挂载


    交叉编译工具集:
    交叉编译作用:目标机和主机不在同一平台,目标机配置一般比较低,编译调试不太可行
    查看文件编译的结果的运行环境:file + 文件名 如file build
    安装交叉编译环境:
    第一步:解压arm-linux-gcc....
    第二步:添加PATH环境变量(环境变量文件:etc/environment),之后执行source /etc/environment更新环境变量
    问题:安装过后,输入arm-linux-gcc -v显示command not found
    解决:sudo apt-get install libc6:i386
               sudo apt-get install  lib32z1

  • 相关阅读:
    beego 注解路由无效问题分析
    sync.Map实现分析
    由浅入深聊聊Golang的sync.Map
    Go语言编程:使用条件变量Cond和channel通道实现多个生产者和消费者模型
    golang 的 channel 实现 生产者/消费者 模型
    Golang sync.NewCond条件锁的用法
    golang channel多生产者和多消费者实例
    Go语言的那些坑
    go语言标准库sync/atomic中的原子操作
    理解 Go 标准库中的 atomic.Value 类型
  • 原文地址:https://www.cnblogs.com/embeded-linux/p/10505195.html
Copyright © 2011-2022 走看看