嵌入式开发指在嵌入式操作系统下进行开发,包括在系统化设计指导下的硬件和软件以及综合研发。而通用系统开发则是指在具有有多道批处理、分时、实时处理功能中的两种及以上功能的操作系统中进行开发。

与通用系统相比,嵌入式系统和硬件依赖程序十分紧密,因而一些需求只能在特定的硬件上进行实现。为了满足产品开发需求,需要先了解处理器的特性,选择适合产品的处理器进行开发。此外,某些硬件特性也可以通过软件实现,选择硬件实现可以更好地提高性能与可靠性,但是相对而言,硬件的成本会更高。

▲图源网络

其次,就系统对软件开发的影响相对而言,不同的嵌入式操作系统比通用系统对软件开发的影响更大。

例如嵌入式开发时,对实时性要求很高的产品更适合在VxWorks系统上开发。而不同的嵌入式操作系统上的开发工具往往也不同,这也会影响到产品的开发。

此外,通用系统软件开发一般采用本地编译方法,即在A平台上编译的代码,在A平台上就可以运行;嵌入式系统软件开发往往采用交叉编译,即在A平台上生成的代码,在不同体系结构的B平台上可以运行,往往在A平台上却不能运行。一般在基于通用操作系统的计算机,即宿主机上使用编译器对代码进行编译,而程序在基于嵌入式系统环境的计算机,即目标机上进行运行。这是因为宿主机上相对而言系统资源更为丰富,在开发软件时可以选择更为方便的集成开发环境和调试工具进行开发,而嵌入式系统中一般没有相关的编译工具去实现代码的编译。

▲图1:交叉编译过程

在通用软件中的调试中,被调试的程序一般和其运行所需的调试器位于同一计算机上,其中,调试器是通过操作系统提供的调试接口实现对被调试的进程进行控制的。但是,嵌入式软件的调试方法则完全不同,需要进行交叉调试,因为被调试的进程和调试器分别位于目标机和宿主机上。

▲图源网络

二者运行在不同的操作系统中,被调试的进程一般在特定硬件平台上的嵌入式操作系统中运行,而调试器进程则是在宿主机上的通用操作系统中运行,这两个进程之间是通过串口或网络实现通信,调试器可以控制与访问被调试进程,并且能够读取与改变其当前的状态。交叉调试主要可以分为软件调试硬件调试软件调试中典型的调试器有gdb调试器,硬件调试最常用到的则是ROM Monitor、ROM Emulator、In-Circuit Emulator和In-Circuit Debugger。

SkyEye天目全数字实时仿真软件

由我司自主研发的SkyEye天目全数字实时仿真软件是一款支持 ARM、TI DSP、PowerPC、X86、SPARC、龙芯、飞腾等多种处理器体系架构的指令级仿真平台,对标产品为美国风河公司的Simics。

SkyEye可以部署在桌面计算机上,开发人员可以基于SkyEye提供的已有模型库的组件(如处理器、内存总线、存储器、片上外设、外围总线设备等),通过图形化搭建功能拖拽需要的组件,来制定与实际目标机相同的虚拟目标系统,使运行在真实目标机上的二进制代码可以不加修改直接在虚拟系统中运行,并且可以得到与在真实目标机下运行相同的结果。

目前,SkyEye搭建的虚拟目标系统支持的目标二进制文件主要包括ELF、raw binary、COFF等格式。配合调试器,在SkyEye中还可以查看虚拟系统中所有的设备信息,包括寄存器,存储器和端口系统等。

细数嵌入式开发与通用系统开发的不同相关推荐

  1. 细数原生 Android 4.2 系统的细节缺陷

    细数原生 Android 4.2 系统的细节缺陷 oschina 发布于: 2013年02月17日 (21评) 分享到  新浪微博腾讯微博 收藏+32 腾讯数码讯(编译:刘建国)早在去年十月份的时候, ...

  2. iTOP-RK3568开发板Android11系统开发笔记使用ADB工具允许usb调试

    1 使用 ADB 工具 ADB 英文名叫 Android debug bridge ,是 Android SDK 里面的一个工具,用这个工具可以 操作管理 Android 模拟器或者真实的 Andro ...

  3. Java全栈开发---Java ERP系统开发:商业ERP(一)UML建模工具的使用

    一.ERP简介 (一)什么是ERP(企业资源计划) 科普-ERP(企业资源规划)简介 ERP系统是企业资源计划, 由美国 Gartner Group 公司于1990年提出.企业资源计划是 MRP II ...

  4. 别踩坑了,细数嵌入式板卡设计的常见问题

    点击上方"小麦大叔",选择"置顶/星标公众号" 福利干货,第一时间送达 嵌入式设计是个庞大的工程,今天就说说嵌入式板卡设计方面的几个注意事项,首先,咱们了解下嵌 ...

  5. python舆情系统开发_舆情系统开发

    1.背景介绍: 针对天涯论坛(区域论坛-广州687474703a2f2f6262732e7469616e79612e636e/list-329-1.shtml)或其他能够爬取大量区域信息的数据源进行数 ...

  6. 区块链数字藏品系统 开发数字藏品系统开发 数字藏品行业背后支持

    开发区块链数字藏品系统意义何在?作为最涉猎数字藏品这个领域的数字藏品开发团队而言,我国将基于国家支持的区块链基础设施创建自己的数字藏品产业,这显示出数字藏品这一领域存在的一些商业机会. 数字藏品的头部 ...

  7. 知彼知己 - 细数各大互联网网站系统的实现语言

    历来,为各种语言的优劣,各大论坛的水仗总是不能烟消云散,而且甚至有风起云涌之势.本文就来介绍一下 各大互联网公司的网站系统实现语言.      1. Stackoverflow (.NET)  Sta ...

  8. 迅为RK3568开发板Linux_NVR_SDK系统开发-查看NPU/GPU/CPU频率使用率

    iTOP-RK3568 开发板烧写 Linux_NVR_SDK 镜像,在串口终端输入以下命 令查看 NPU/GPU/CPU 频率使用率. 1 输入以下命令挂载 debug,只有挂载 debug 才可以 ...

  9. Java全栈开发---Java ERP系统开发:商业ERP(八)采购申请

    一.采购申请 1.主线业务流程 (1)采购业务流程 采购业务流程图 (2)类图设计 一个订单对应多个订单明细 2.表结构分析 (1)订单与明细 一个订单对应多个订单明细,订单明细是订单内部的一部分 ( ...

最新文章

  1. Ubuntu安装Rstudio
  2. 如何按多个列对数据框进行排序
  3. libpcap介绍(一)
  4. 运动背景下的运动目标检测
  5. Ubuntu 14.04 python3.6 安装
  6. opencv 转换图像为灰度
  7. 如何成为云原生时代的卓越架构师?
  8. 网页爬虫的设计与实现(Java版)
  9. Principle of Computing (Python)学习笔记(7) DFS Search + Tic Tac Toe use MiniMax Stratedy
  10. 前端笔记-使用vue绑定id使得组件更加灵活(在使用echarts时常用)
  11. win32 串口阻塞的方式发送接收数据
  12. ITester软件测试小栈历时9个月文章汇总
  13. 【转】HttpCompress
  14. 传教士过河java_野人和传教士渡河问题的java实现
  15. 『HDU 5855』Less Time, More profit
  16. windows安装(从U盘启动盘)
  17. 机器学习笔记(机器学习很难么???那必然难啊!!!)
  18. [仿真]PMSM矢量控制——滑模速度环
  19. python条形图颜色设置_在matplotlib Python中设置不同的条形图颜色
  20. GAN(生成对抗网络)在合成时间序列数据中的应用(第一部分——利用GAN生成合成(synthetic)数据)

热门文章

  1. 计算机组装与维修考试试卷,计算机组装与维修期末考试试卷..doc
  2. css文本行高是哪个属性_CSS字体属性和文本属性总结
  3. Octave入门基础
  4. java游戏有牧师_JAVA内部类是怎么玩儿的
  5. 断点帧数测试软件,《幽灵行动:断点》PC版性能表现分析
  6. Java 算法 吉老师的回归
  7. css 右上角 翻开动画_css制作电闪雷鸣的天气图标
  8. postman发送Post请求
  9. Bash脚本删除相对路径下小于指定大小的文件
  10. php数据全部输出,我的php 分页输出数据 全部输出没有按我设定的输出 也就是本来该一页输出5条的 现在全部输出完了...