1.单片机裸机和带有操作系统OS的区别

\qquad裸机有三层,从上至下依次为:应用层、驱动层、硬件层;而带有OS的单片机有四层,从上至下依次为:应用层、内核层、驱动层、硬件层。

2.系统移植学习内容

\qquad四大块:搭建交叉编译环境、bootloader的选择和移植、kernel的配置,编译,移植和调试、根文件系统的制作

3.系统移植的基本步骤

3.1 确定目标机(单片机)和主机(PC电脑)的连接方式

\qquad目前,基本有四种连接方式:
\qquadUART异步串行通信接口(串口)

通信方式 特点
UART异步串行通信接口(串口) 速率低,实用性强,可以输入输出
USB串行通信接口 速度快,驱动要移植修改
TCP/IP网络通信接口 速度快,驱动要移植
Debug Jtag调试接口 方便快捷,价格高
3.2安装交叉编译器

\qquadgcc是基于X86架构,所以它编译出来的文件在ARM上运行不起来,所以需要交叉编译器,编译出可以在ARM上运行的文件。
\qquad交叉编译器的来源:1.安装芯片厂商已经编译好的交叉工具链,比如arm-none-linux-gnueabi-,arm-none-eabi-,arm-linux-arm-elf-…2.自己动手编译交叉工具链,自己制作。
\qquad交叉编译器的名称:arm:最终生成的体系结构目标;none:厂商名;linux:交叉工具链编译出来的程序是针对linux系统运行的;gnueabi:gnu表示开源,eabi表示嵌入式的调用标准接口。
\qquad有时候会看到arm-linux-,这是表示一个软连接,输入arm-linux-相当于输入arm-none-linux-gnueabi-
\qquadarm-none-eabi-:不支持操作系统
\qquadarm-elf-:特别老的编译工具链,很少见到。

3.3搭建主机和目标机传输通道

\qquad网络相关服务配置:TFTP和NSH是最常用的

3.4 编译三大子系统

\qquadBootLoader子系统、内核核心子系统、文件系统子系统

3.5 烧写测试

linux的系统移植——序言相关推荐

  1. zybo上运行linux,Zybo开发板linux作业系统移植

    文章主要介紹zybo board上linux作业系统移植过程.分别介绍了开发环境搭建.U-boot编译.linux内核编译.busybox制作等流程及注意事项.文章使用的开发板是zynq 7000系列 ...

  2. Linux之系统移植与根文件系统构建

    Linux之系统移植与根文件系统构建 1.Uboot 1. 什么是Uboot: 一个裸机程序 就是一个bootloader用于启动Linux或其他系统 最主要的工作就是初始化DDR.因为Linux是运 ...

  3. 嵌入式Linux开发——系统移植篇回顾

    前言: 最近在学习正点原子Linux开发板u-boot.内核移植,根文件系统构建的相关内容,本文旨在起到一个流程梳理.宏观地把握整个移植u-boot.kernel,构建文件系统过程的作用,像Makef ...

  4. linux的系统移植——交叉编译器

    1.为什么要有交叉编译器? \qquad一般电脑是X86架构,而单片机一般不是,比如单片机是ARM架构,那么gcc编译生成的程序只能在X86的架构上运行,而不能在ARM架构上运行,所以需要交叉编译器编 ...

  5. 《Linux操作系统-系统移植》第12章 5G模组移植-第1节 中移物联5G移植(PPP拨号)

    开发环境 主机:ubuntu14.04 开发板内核版本:linux-4.14.78 1 内核驱动修改 当模块连接到USB串行驱动时,驱动程序将在目录/dev中创建设备文件, ttyUSB0/ttyUS ...

  6. 《Linux操作系统-系统移植》第4章 内核移植 - 内核解析(Linux3.14)

    4.1内核配置过程分析 4.1.1前言 1.linux内核五大功能: 进程管理(cpu) 内存管理(内存) 设备管理(驱动) 网络管理(网络协议tcp/ip) 文件系统(vfs) 2.linux版本号 ...

  7. 《Linux操作系统-系统移植》第8章 USB-4G/LTE移植 -第3节 USB-4G移植(移远AG35开发-Gobi拨号)

    开发环境 主机:ubuntu12.04 开发板内核版本:linux-2.6.35 [注]AG35支持PPP拨号,Gobi拨号和QMI拨号,笔者使用的是Gobi拨号,关于另外两种拨号请参考官方文档,后文 ...

  8. 《Linux操作系统-系统移植》第8章 USB-4G/LTE移植 -第3节 USB-4G移植(移远EC20开发-Gobi拨号)

    开发环境 主机:ubuntu12.04 开发板内核版本:linux-2.6.35 开发板:imx283开发板 [注]EC20支持PPP拨号,Gobi拨号和QMI拨号,笔者使用的是Gobi拨号,关于另外 ...

  9. linux的系统移植——内核启动

    1.uImage zImage Image bzImage的区别 \qquaduImage既包括内核数据,又包括和uboot的衔接数据:zImage Image bzImage本质是一样的,但是数据压 ...

最新文章

  1. Linux shell 学习笔记(12)— linux 信号、后台运行脚本、作业控制、定时运行任务
  2. python的代码编译、代码打包方法
  3. 团队计划(5.25)
  4. python项目管理器 宝塔面板 django 404_宝塔面板成功部署Django项目流程(图文)
  5. 场景:如果一个select下拉框的值被选中,其他两个字段值的校验也生效
  6. C++入门项目——通讯管理系统
  7. halcon教程之VisionPro软件和Halcon软件 的详细对比
  8. 增程式混合动力汽车Cruise整车仿真模型 串联混合动力仿真 基于Cruise平台搭建整车部件等动力学模型
  9. android 连接蓝牙耳机 播放音乐,Android连接蓝牙耳机播放音乐
  10. java浮点数转整数_(题目2)自己实现浮点数转换为整数
  11. 九宫格,二十五宫格,甚至八十一宫格 技巧
  12. dataworks/odps上传资源,注册函数,下载资源
  13. VS 2019教程:创建ASP.NET Core Web App
  14. unity基础(3)——从Unity Asset store获取资源
  15. docker进入容器时报错 Error response from daemon: Container xxx is restarting, wait until the container is
  16. 基于CUDA的N-Body问题并行程序设计及性能优化
  17. 自媒体创作怎么细分领域?怎么进行选题?
  18. 谓词逻辑在计算机中的,谓词逻辑与归纳原理1.ppt
  19. 获取图像的Hu不变矩
  20. Ambari添加快速链接Quick Links

热门文章

  1. 剑指Offer - 面试题61. 扑克牌中的顺子
  2. A*搜索算法--游戏寻路
  3. Android 引用模块中的类,解决Android项目中找不到Module中的封装类或引用的第三方类库...
  4. VUE:解决判断网页端与手机端情况下,横竖屏无法判断的问题
  5. Python判断变量是否存在的方法
  6. 微信小程序的不同函数调用的几种方法
  7. 学生管理系统代码赏析
  8. 极光无限渗透测试面经_认识工业以太网及线缆测试
  9. python自动化安装软件_python自动化安装源码软件包
  10. sqlserver2008驱动_Python连接数据库两种方法,QSqlDatabase,pymmsql,驱动名