Kaiyun·开云·体育(中国)官网·体育·平台·入口·APP下载·全站

Kaiyun·开云(中国)·体育·平台·官网·APP下载·入口·全站·买球 - 嵌入开云 开云体育官网式系统软件开发概述
Kaiyun·开云·体育(中国)官网·体育·平台·入口·APP下载·全站

咨询热线

410-143-5697

Classification

新闻动态

410-143-5697
传真:18973896382
手机:18973896382
邮箱:support@jiaonichi.com
地址:冷水江市锑都中路 (商业步行街E2栋0213号门面)
当前位置: 首页 > 新闻动态 > 公司动态

嵌入开云 开云体育官网式系统软件开发概述

发布时间:2023-09-07 23:28:35 丨 浏览次数:858

  • 极建的第二步,就是将所有目标文件链接成一个 目标文件,它称为可重定位程序(Re-locatable Program)。链接工作由链接器完成的,链接器的 主要工作是扫描所有输入的目标文件,然后将多 个目标文件的段合并,并解决它们之间的依赖关 系(这一过程称为符号解析),最终生成一个可执 行文件。 • 在许多开发工具中,将编译器和链接器的功能做 在一起,可以直接将源代码文件转换成可执行文 件,这一过程常称为生成(Build)。

  综合了FTP、Telnet等应用协议的功 能,所不同的是它传输的一切数据 都进行了加密,只有授权的接收方 才能有效解读传输的数据。SSH服务 器的缺省端口号是22。

  4. 调优阶段(调试、优化阶段) • 此阶段主要是对软件进行调试和性能优化。 • 熟练掌握调试技术对嵌入式软件开发至关重要。

  • 压缩打包可以缩小映像的尺寸,从而可有效地利用外存空间,但缺 点是程序执行之前还必须经过解压缩。而非压缩打包的代码运行不 需要经过解压缩,缺点是需要比较大的外存空间。 • 在一些嵌入式系统中还可以看到一种介于两种之间混合打包方法, 即对要打包文件中的代码部分不进行压缩,而只对数据部分(图片、 声音文件等)进行压缩,这样既可以缩小整个映像的体积,又可以 是代码可以不经过压缩直接运行。

  1. 编码阶段 • 编码阶段是软件开发的开始,其仸务是编 写软开云 开云体育官网件的源代码代码,使用的工具是各种 编辑器。 2. 极建阶段 • 极建阶段的仸务是把代码转化成可以在嵌 入式硬件上可执行程序的过程。此阶段, 包括截然不同的步骤,包括编译,链接、定 址和打包。

  – 嵌入式软件调试的效率都比较低,因为即使改动一行 代码,都可能需要把编译、链接、重定位、烧写、下载 等步骤完整走一遍,这也是调优阶段最显著的特点。 快速地定位到问题可以节省大量的时间。 其次,如果将错误带到最终的嵌入式系统产品中,其 后果可能是致命的。对于PC用户,用户或许可以忍受 自己的机器每天死机一两次,但是想象在ATM上取款, 在医疗系统上手术或Kaiyun App下载 全站在卫星发射时,软件发生异常, 其带来的后果有多严重。

  • 在底层方面又不得不用到汇编语言,虽然其使用量不大。复 杂的嵌入式系统一般由多种语言混合编写而成。 • 由于C/C拥有便于底层编程等诸多优点,目前C/C为大 多数嵌入式系统开发的首选语言。

  开始 使用汇编、C/C编写 源代码 使用专用编译器、链 接器生成目标代码 使用打包工具生成可 以执行的二进制映像 使用烧写器或Loader 把映像烧写到目标设 备 执行并查看代码的结果 编写代码

  • 一般地来说,嵌入式软件 开发依次要经历编辑(代码 准备)、编译、重定位(定址 和打包)、烧写、下载、调试、 优化等步骤,在某些嵌入 式系统中可能还需要测试 和验证等步骤。 • 从流程上说,大致可分为 编码阶段、极建阶段、部署 阶段、调优和其他阶段。

  – 目标机硬件本身在开发过程中,还不能使用或还不够稳定 – 目标机平台上缺乏完整的native编译工具、环境 – 目标机系统本身性能不够,导致编译太慢

  • 嵌入式系统的软件编译,与windows开发不一样,不仅要编译 应用程序,还要编译相应的依赖库、操作系统内核等。所以一 次完整的编译非常费时

  – 对于软件产品最低目标是能正确的运行,但是这一目 标对于嵌入式软件来说是不够的,因为嵌入式系统是 一个资源受限的系统,它对程序的运行的空间和时间 要求比桌面系统要苛刻得多,为适应此需求,嵌入式 软件在正确运行这一基本要求上,还需要使其能以性 能最优的方式运行,这就是软件优化所进行的工作。 优化目标主要包括是速度性能、功耗性能、空间性能 等方面,达到运行更快,更节能,占用空间更小等目的。 以上目标可能存在互相抵触的地方,难以做到熊掌和 鱼翅兹得,对此人们需要根据实际情况选择某种折中。 在大多数情况下,人们会突出对运行速度的要求。

  – 将所需烧录的目标映像下载到目标板RAM中 – 将执行烧录动作的程序下载到目标板RAMHale Waihona Puke Baidu – 告诉CPU去执行RAM中的烧录动作的程序,并给出目标映 像所在地址

  – 常见于基于Linux的嵌 宿主机 入式系统中。 (Linux/Window) – MeeGo上网本应用软 件目标代码下载是借助 SSH服务器 SSH客户端 (sshd) 操作系统所提供的文件 文件/包(.rpm)上载命令 复制(上载)功能来完成 SSH是安全命令解释(Secure Shell) 的,这一过程为部署 的缩写,是IETF制定的建立在应用 (deployment)。 层和传输层基础上的安全协议,它

  • • • • • • 嵌入式软件开发环境 嵌入式软件开发流程 嵌入式系统调试 典型的开发工具链 Intel开发工具链 开发例子

  • 通用计算机的软件开发一般都是以本地(Native)编译方式进行 的,嵌入式系统一般不支持本地环境开发,其软件开发通常采用 交叉开发(Cross Compile)的方式。 • 交叉Kaiyun App下载 全站开发环境建立在宿主机(Host)上,宿主机又称开发机、上位 机,一般是一台通用计算机,如PC。对应嵌入式系统称为目标机。 目标机指各式各样的嵌入式设备,例如手机、掌上电脑等;或者 是嵌入式厂商提供的一套专用于开发的评估板(evaluation board),所以又称开发板;甚至是基于软件的模拟器。 • 开发时使用宿主机上的交叉编译、汇编和链接工具形成可在目 标机上执行的二进制代码,然后把可执行文件下载到目标机上 运行。此外嵌入式系统的调试也常采用交叉的方式。

  3.部署阶段 • 软件开发的最后一个阶段是部署,即把可执 行的运行时映像或可执行文件部署到嵌入 式设备上,让嵌入式设备在系统上电后可以 启动并加载开发者编写的代码。 • 通过开发阶段得到的可执行文件映像,最终 需要被部署到嵌入式设备上的非易失存储 介质中。将数据写入到这些存储器中需要有 一个专门的烧写过程。

  – 打包操作通常由专门的打包工具完成,打包结束后得到 的是一个二进制文件,它可以直接烧写到目标机的外存 中。 – 要说明的是,对于应用程序开发,上述第三步定址和打 包并不是必需的。在某些嵌入式系统,拥有功能比较强 大、完善的操作系统,可执行文件的定址由目标机操作 系统自动完成,用户看不到这一独立的步骤。打包也不 是必需的,在不少Linux系统中用户可直接通过网络、串 口等下载或复制独立的文件到本地运行,而不要求一定 是打包的镜像。

  • 极建的第三步是Kaiyun App下载 全站定址和打包。定址和打包的目标 是将可重定位执行文件整合为一个可以运行在嵌 入式系统中的二进制映像的文件。

  – 对可重定位执行文件而言,在下载到目标机运行之前需 要进行定址工作。定址又称重定位,其仸务是解决程序 中函数和变量的地址绑定问题。它的做法是对于编译器 和链接器生成的每一条可能涉及内存地址的指令和数 据(例如函数调用的跳转指令),都把指令中的内存地址 存储为一个偏移量而不是绝对地址。这样当程序加载器 (Boot Loader或者嵌入式操作系统)把程序加载到机器 内存时,可以根据实际的加载地址,把代码中的相对偏 移量再加上实际加载基地址,就可以得到实际的内存地 址。

嵌入开云 开云体育官网式系统软件开发概述(图1)

  • 极建的第一步是编译,即源代码文件翻译目 标文件。编译工作是由编译器完成的,编译 器的仸务是将由某种程序设计语言编写的 源代码翻译成特定处理器上等效的一系列 操作码,这些操作码对应的文件称为目标文 件。

  – 烧录(或称烧写)式 – 用某种机制将目标代码映像烧录 到目标平台上的Flash ROM中

  – 一般来说嵌入式系统的可执行文件有可重定位(relocatable)和不可重定位(non-relocatable)两种版本。 – 可执行文件最后需要操作系统或加载程序将其加载到 内存中才能执行。对于不可重定位版本的可执行文件, 加载器只能把它加载到固定的地址运行;而对可重定位 版本的可执行文件,可以加载到开云 开云体育官网仸何地址执行。 – 源代码程序生成可执行文件时既可生成为可重定位版 本的,也可生成不可重定位版本的,这在编译-链接时必 须选择不同参数,不仅如此,相同源代码程序生成的两 种版本的可执行文件的代码也不一样。 – 对于简单的嵌入式系统软件,一般并不需要重定位功能, 链接器直接生成只能在某个固定的内存地址运行的程 序即可。

  – 网络式 – 通过某种机制,让目标机直接通过网络加载所 需的目标代码映像到内存

  • 十分方便,无需烧录Flash ROM • 但需要bootloader和操作系统支持 • 一般用在开发过程前、中期

  • 对于某些系统这一点不一定成立。如Atom系统,宿主机和目标 机一般都是x86系统,当然执行的指令集可能不一样,如宿主机 (如Core 2 Duo)可能支持SSE4,而Atom支持到SSE3和SSSE3, 因此编译时还是要考虑到目标机型号和指令集的选择。

  – 处理能力不同。通常宿主机的处理速度。存储容量等会 远远大于目标机。 – 运行的操作系统不同。宿主机一般运行通用操作系统, 而目标机通常运行各种嵌入式操作系统。 – 输入输出方式不同。相对宿主机,目标机的输入输出功 能可能比较单一。

  – 如果整个系统的软件只由一个可执行文件极成,只要通过 定址,就可以生成能够再嵌入式系统中运行的映像了。但 是很多时候,极成整个嵌入式软件的不只是一个可执行文 件,而是多个。例如,对于一个车载终端,可能有一个可执 行的文件负责从车身传感器获取行车数据,另一个可执行 文件负责把数据显示在屏幕上,还有一个可执行文件负责 播放视音频数据,这个时候需要把多个可执行文件进行打 包,打包成一个映像,烧写到嵌入式系统的外存中。 – 一般打包的有两种:压缩打包和非压缩打包,其区别在于是 否对要打包的可执行文件进行压缩处理。压缩打包和非压 缩打包各有优务。

  • 而从硬件角度,决定编译速度的主要因素是CPU速度、内存 容量和文件系统IO速度。

  – 体系结极的不同。宿主机和目标机通常是异极的。宿主 机一般采用x86体系结极,但是目标机的体系结极则可 能非x86的,如是ARM、MIPS、PowerPC等各式各样。





Copyright © 2012-2023 Kaiyun 开云体育 - 运动让生活更美好 版权所有
电 话:410-143-5697    手 机:18973896382   传 真:18973896382    E-mail:support@jiaonichi.com
地 址:冷水江市锑都中路 (商业步行街E2栋0213号门面)
湘ICP备20011479号

扫一扫关注微信公众帐号

免费咨询 投诉建议