嵌入式系统原理 第六章 嵌入式与Linux编程基础

目录

6.1 嵌入式Linux软件设计概述

双机开发模式:

交叉编译:

交叉编译器和交叉链接器:

ICE:

OCD:

通讯模式:

串口通讯的特点及应用场景:

网络通讯的特点及应用场景:

TFTP协议:

6.2 Linux简介

Linux内核特点:

典型的Linux发行版包括:

Linux版本:

Linux安装方式:

基于虚拟机安装Linux:

Vmware模拟出来的各种硬件与主机没有关系

6.3 Linux终端命令

文件管理系统:

文件系统由三部分组成:

Linux系统中三种基本文件类型:

Linux文件系统简介:

设备:

Shell:

Linux内核结构:

程序:

进程:

进程调度概念:

进程间通信:

内存管理:

虚拟文件系统

虚拟文件系统为文件系统提供了一个通用的接口?

网络接口:

Linux网络支持TCP/IP模型:

内核烧写:

Shell的种类:

Shell的主要功能:

访问权限:

6.4 Linux编程基础

VI编辑器模式:

调试:

静态调试:

动态调试:

常见的动态调试方法:

GUN Debuger的功能:


6.1 嵌入式Linux软件设计概述

双机开发模式:

宿主机-目标机开发模式

交叉编译:

在一种平台上编译出能在另一种平台上运行的程序

交叉编译器和交叉链接器:

能够在宿主机上安装,但是能够生成在目标机上直接运行的二进制代码的编译器和链接器

宿主机和交叉开发环境要求的操作系统不一致:

利用虚拟化、仿真化手段建立开发环境

ICE:

一种用于替代目标机上CPU的设备,即在线仿真器

OCD:

是CPU芯片提供的一种调试功能,可认为是一种廉价ICE

通讯模式:

  • 串口通讯(minicom)
  • 网络通讯

串口通讯的特点及应用场景:

  • 驱动实现最简单
  • 传输速度慢,距离短,不适合大数据量、长距离数据传输
  • 需要在宿主机、目标机两端均提供驱动
  • 常用于宿主机-目标机的字符流通讯

网络通讯的特点及应用场景:

  • 驱动实现相对复杂,一般采用精简的网络通讯协议,如TFTP
  • 常用于大数据量数据传输,可以作为串口通讯的补充
  • 需要在宿主机、目标及机两端均提供驱动
  • 宿主极端实现服务器,目标机端提供客户端

TFTP协议:

全称是简单文件传输协议,可以看成一个简化了的FTP,服务器端安装在宿主机,客户端由目标板

实现,目标板需要获取IP地址


6.2 Linux简介

Linux内核特点:

  • 可移植性
  • 可量测性
  • 标准化和互用性
  • 完善的网络支持
  • 完全性
  • 稳定性和可靠性
  • 模块化
  • 编程容易

典型的Linux发行版包括:

  • Linux内核
  • 一些GNU程序库和工具
  • 命令行shell
  • 图形界面和桌面环境
  • 应用软件

Linux版本:

  • Debian
  • 红帽
  • Ubuantu
  • Suse
  • Fedora

Linux安装方式:

  • 纯Linux
  • 双操作系统
  • 虚拟机

基于虚拟机安装Linux:

  • 模拟出硬件设备,在该硬件设备基础上安装系统
  • 安装Vmware等虚拟机软件
  • 建立虚拟机
  • 在虚拟机下安装Linux

Vmware模拟出来的各种硬件与主机没有关系


6.3 Linux终端命令

文件管理系统:

操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统

文件系统由三部分组成:

  • 与文件管理有关的软件
  • 被管理的文件
  • 实时文件管理所需的数据结构

Linux系统中三种基本文件类型:

  • 普通文件:又分为文本文件和二进制文件
  • 目录文件:目录文件存储了一组相关文件的位置、大小等与文件有关的信息
  • 设备文件:Linux系统把每一个I/O设备都看成一个文件,与普通文件一样处理,这样可以使文件与设备的操作尽可能统一

Linux文件系统简介:

  • Linux系统以目录的方式来组织和管理系统中的所有文件
  • Linux系统以根目录“/”为起点,所有其他的目录都由根目录派生而来
  • 工作目录:用户登录就在某个目录中,称为工作目录
  • 用户主目录:系统管理员在增加用户时为该用户建立起来的目录,每个用户都有自己的主目录
  • 路径:从树型目录结构中的某个目录到某个文件的一条道路,中间用“/”分开
  • 绝对路径:从根开始的目录,也称完全路径
  • 相对路径:从工作目录开始的路径

设备:

计算机中的外围硬件设备,除了CPU和内存以外的所有设备

Shell:

系统的用户界面,提供用户和内核进行交互操作的一种接口(命令解释器),接收用户输入的命令

并把它送入内核执行,Shell起着协调用户与系统的一致性和在用户与系统之间进行交互的作用。

Linux内核结构:

五个主要子系统

  • 进程调度
  • 进程间通信
  • 内存管理
  • 虚拟文件系统
  • 网络接口

其他部分

  • 各子系统需要对应的设备驱动程序
  • 依赖体系结构的代码

程序:

一组指令的有序集合(静态的)

进程:

具有独立功能的程序的一次运行过程(动态的,有生命周期,一个程序可以有多个进程)

进程调度概念:

  • Linux提供了抢占式的多任务模式
  • 由调度程序来决定什么时候停止一个进程的运行,以便其他进程能够得到执行机会
  • 这个强制的挂起动作叫做抢占
  • 进程被抢占之前能够运行的时间是预先设置好的,叫进程的时间片
  • 时间片实际上就是分配给每个可运行进程的处理器时间段

进程间通信:

  • 在不同进程之间传播或交换信息
  • 管道:可用于具有亲缘关系进程间的通信
  • 有名管道:除了管道的功能外,话可以在许多并不相关的进程之间进行通讯
  • 共享内存:使多个进程可以访问同一快内存空间,是最快的可用IPC形式
  • 套接字:更为一般的进程间通信机制,可用于不同机器之间的进程间通信

内存管理:

  • 内存管理可以使多个进程安全地共享内存
  • IPC中的共享内存方式依赖于内存管理

虚拟文件系统

虚拟文件系统为文件系统提供了一个通用的接口?

网络接口:

  • 网络接口在设计上遵循拟协议本身的分层体系结构
  • 网络协议
  • 网络设备驱动程序

Linux网络支持TCP/IP模型:

  • IP协议
  • TCP协议
  • UDP协议

内核烧写:

  • 通过串口(minicom)
  • 通过网络(Uboot下使用tftp烧写)

Shell的种类:

  • ash
  • bash
  • tcsh

Shell的主要功能:

命令解释器、命令通配符、命令补全、别名机制、命令历史

访问权限:

系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访

问。文件或目录的访问权限分为读、写和可执行三种。

有三种不同类型的用户对文件或目录进行访问:文件所有者、与所有者同组的用户、其他用户。所

有者一般是文件的创建者。


6.4 Linux编程基础

VI编辑器模式:

  • 命令模式
  • 插入模式
  • 末行模式

调试:

  • 静态调试
  • 动态调试

静态调试:

在程序编译阶段查错并修正错误

主要为语法错误,输入错误,类型匹配错误

排错方式:利用错误、警告信息,并结合源文件环境排错

动态调试:

在程序运行阶段查错并修正错误

主要错误类型为算法错误和输入错误

排错方式:利用调试工具定位并修正错误

常见的动态调试方法:

  • 增加调试语句
  • 记录程序的执行状况
  • 观察内存变化
  • 使用调试工具

GUN Debuger的功能:

  • 启动程序,设置程序执行的上下文环境
  • 在指定的条件下停止程序
  • 程序停止时,检查程序的状态
  • 在程序运行时,改变程序状态,使其按照改变后的状态继续执行
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值