10大优享服务
62项会员特权

普通软件开发和嵌入式软件开发的区别有什么

发布时间:2021-12-01 10:37:24     阅读次数:13145次     评论数:0次

    软件这是我们的生活工作中都会频繁使用的东西,因而对其的开发可以说是一件十分必要的事情。软件细则来进行划分的话,可以说是种类繁多,在其开发的过程中究竟以哪一类为主就十分令人困扰了,也是开发遇到的瓶颈之一。那么下面就让我们了解一下,普通软件开发嵌入式软件开发的区别有什么?

普通软件开发和嵌入式软件开发的区别有什么

    1. 交叉编译

    嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。在第3章中已经提到,编译的最主要的工作就在将程序转化成运行该程序的CPU所能识别的机器代码,由于不同的体系结构有不同的指令系统。因此,不同的CPU需要有相应的编译器,而交叉编译就如同翻译一样,把相同的程序代码翻译成不同CPU的对应可执行二进制文件。要注意的是,编译器本身也是程序,也要在与之对应的某一个CPU平台上运行。

    这里一般将进行交叉编译的主机称为宿主机,也就是普通的通用PC,而将程序实际的运行环境称为目标机,也就是嵌入式系统环境。由于一般通用计算机拥有非常丰富的系统资源、使用方便的集成开发环境和调试工具等,而嵌入式系统的系统资源非常紧缺,无法在其上运行相关的编译工具,因此,嵌入式系统的开发需要借助宿主机(通用计算机)来编译出目标机的可执行代码。由于编译的过程包括编译、链接等几个阶段,因此,嵌入式的交叉编译也包括交叉编译、交叉链接等过程,通常ARM的交叉编译器为arm-elf-gcc、arm-linux-gcc等,交叉链接器为arm-elf-ld、arm-linux-ld等,交叉编译过程

    2.交叉调试

    嵌入式软件经过编译和链接后即进入调试阶段,调试是嵌入式软件开发过程中必不可少的一个环节,嵌入式软件开发过程中的交叉调试与通用软件开发过程中的调试方式有很大的差别。在常见软件开发中,调试器与被调试的程序往往运行在同一台计算机上,调试器是一个单独运行着的进程,它通过操作系统提供的调试接口来控制被调试的进程。而在嵌入式软件开发中,调试时采用的是在宿主机和目标机之间进行的交叉调试,调试器仍然运行在宿主机的通用操作系统之上,但被调试的进程却是运行在基于特定硬件平台的嵌入式操作系统中,调试器和被调试进程通过串口或者网络进行通信,调试器可以控制、访问被调试进程,读取被调试进程的当前状态,并能够改变被调试进程的运行状态。

    关于普通软件开发和嵌入式软件开发的区别有什么,上面已经为我们做出了详细的介绍,大致可以归为这两类。第一交叉编译,就是在一个平台上生成可以在另一个平台上执行的代码;第二交叉调试,它是软件开发过程中必不可少的一个环节。

本文地址:
来源:一品威客,转载须经版权人书面授权并注明来源

留言(0

↓展开留言

该攻略尚无留言记录