嵌入式C语言与C语言的区别:最常用的系统编程语言是C,它是在汇编语言中使用的一种简单的编程语言,源代码采用自由格式。Embeddedc是c语言用于编写嵌入式软件的扩展,这两者有什么区别?

首先是启动过程

1.普通C语言程序的起始器。

普通的C语言启动程序是在PC上安装windows或linux之类的通用操作系统,编译器自动完成启动程序,微处理器和周边设备在调用main函数之前进行初始化,用户无需自己制作启动程序。

2.嵌入式C语言程序启动过程。

在嵌入式C语言中包含有一个单片机,为了使嵌入式系统的启动程序能够对目标系统的硬件和数据进行初始化,用户必须制作专门的启动程序。一般而言,相应的启动器绑定到支持微处理器的编译器上,如下图所示。

其次是存储空间分配

存储器ROM和存储器。

随机性存储器又称随机存储器,是一种内存,它可以直接与CPU交换数据,也称为主机。它可以在任何时候读写,速度快,通常作为操作系统和其他运行程序的临时数据存储媒介。RAM在断电后不能保存数据。如需保存数据,必须写入长期保存设备中(例如硬盘)。存储器与ROM最大的不同之处在于存储器中的数据在断电后会自动消失,ROM不会自动消失,能够长期断电保存。ROM:只读存储器。ROM存储的数据通常是在安装ROM之前写的,在整个安装过程中,它只能被读取,而不能像随机存储器一样快速、方便地被重写。ROM保存的数据是稳定的,断电后保持不变。在一般C程序中,操作系统从外部存储设备向RAM装载程序和数据。编码,数据,栈都在内存里。嵌入式c程序没有通用的操作系统,因此嵌入式系统在运行前必须在ROM中设置代码,并在RAM中设置数据和堆栈。

三是硬件接入

如上图所示,对于普通的c语言,操作系统操纵着计算机硬件设备,比如控制声卡发出的声音,控制显卡绘制的图形等等。一种应用可以通知操作系统一项具体操作,使应用通过操作系统间接操作硬件。简而言之,关于操作系统如何控制硬件设备的问题,这个过程就是应用调用API的过程,它被称为系统调用,通过系统提供的接口功能,向操作系统发出指令。

如上图所示,嵌入式系统在访问硬件的时候,必须直接制作应用程序,进行操作。

四是资源制约

由于嵌入式系统使用小型耗电元件,ROM和RAM有限,处理能力低,在嵌入式C中编程时应注意有限的资源。使用C语言,台式计算机可以访问系统的操作系统、存储器等,并充分利用计算机的各种资源。

五是应用导向

C主要应用于简单逻辑程序、操作系统软件等。嵌入式C芯片用于电视机、洗衣机等微处理器。

标准c语言与嵌入式,嵌入式C语言与C语言的区别相关推荐

  1. 用C语言实现高效嵌入式系统编程

    1引言     随着市场竞争的日趋激烈,要求电子工程师能够在短时间内编写出执行效率高而又可靠的嵌入式系统的执行代码.同时,由于实际系统的日趋复杂,要求所写的代码规范.模块化并便于多个工程师以软件工程的 ...

  2. 05 C语言框架讲解(嵌入式C语言要学哪些内容,学习路线)

    C语言框架讲解(C语言要学哪些内容,学习路线) b站配套视频地址 CSDN有图阅读地址 Gitee文档源码地址 作者 将狼才鲸 日期 2021-07-17 注:gitee暂不支持markdown me ...

  3. 嵌入式编程与c语言有何区别,有的嵌入式设备也提供C++编译器,那还有理由坚持使用C语言吗?...

    在嵌入式软件程序开发中,C语言无疑是最常被使用的程序语言.不过应该明白的是,有些嵌入式硬件同时提供C语言程序编译器以及C++程序编译器,而相比于C语言,C++的确具备很多非常好用的特性. C++更好用 ...

  4. 嵌入式开发中的防御性C语言编程

    嵌入式产品的可靠性自然与硬件密不可分,但在硬件确定.并且没有第三方测试的前提下,使用防御性编程思想写出的代码,往往具有更高的稳定性. 防御性编程首先需要认清C语言的种种缺陷和陷阱,C语言对于运行时的检 ...

  5. 使用Go语言交叉编译开发嵌入式Linux应用程序

    文章目录 目的 基础说明 编译生成嵌入式Linux应用程序 二进制文件瘦身 与C语言混合进行开发 总结 目的 Go语言非常适合用来开发存储空间不紧张的嵌入式Linux设备应用程序,可以在性能需求和开发 ...

  6. c语言模拟java面向对象_面向对象设计模式C语言实现.PDF

    第15卷第l1期 微机发展 V01.15NO.11 2005年11月 I)evdopment NOV.2()()5 Micrtxx)mpuler 面向对象设计模式的C语言实现 朱进 (东南大学软件学院 ...

  7. 可以不学c语言直接学python_为什么你觉得C语言什么都不能做,学了没用?不可能的...

    对于大部分初学者,学习C语言的目的是希望做一名合格的程序员,开发出靠谱的软件来.但是学了C语言的基本语法后,发现只能开发"黑底白字"的DOS程序,完全没有漂亮的界面和生动的交互.于 ...

  8. 【C语言】初级第1节——初始C语言

    1.什么是C语言 C语言是一门通用计算机编程语言,广泛应用于底层开发.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言. 尽管 ...

  9. 《手把手教你学C语言》学习笔记(1)---C语言的特点

    学习C语言的原因,主要是需要使用C语言编程,我用故我学,应该是最主要的原因了. C语言的定位:C语言严格意义上只能算是中级语言,是面向过程编程语言的集大成者,虽然这种语言有很多的问题,但总体而言是瑕不 ...

  10. c语言不安全库_为什么和其他语言相比C语言是快速的语言?

    点击上方蓝字关注我哦- 01 前言 初入门的我们经常听见别人说"真正的程序员用C语言编程,C是最快的语言因为它是最靠近及其底层的语言."那么和其他语言相比C语言到底有什么特别的呢? ...

最新文章

  1. Flask 启动配置
  2. JDBC进行简单的增删改查
  3. 发布一个实体类属性生成小工具,给开发加点料
  4. iOS 关于枚举的使用
  5. 使用Chameleon,Shrinkwrap,Drone / Graphene与Arquillian进行Java EE集成测试
  6. JAVA8 ARRAY、LIST操作 汇【5】)- JAVA8 LAMBDA LIST统计(求和、最大、最小、平均)
  7. IP地址、子网掩码、网关、默认网关、DNS的理解
  8. linux shell 批量清空,shell脚本批量删除docker镜像
  9. 计算机信息管理专业教学改革,计算机信息管理专业实践教学改革探索
  10. Atitit 技术学习 的方法总结 attilax总结 目录 1.1. 跨框架 1 1.2. 跨语言学习法 1 1.3. 概念学习法 1 1.1 在比较中学习 多语言  2 1 1.3 .2 在历史
  11. 《计算机网络》学习——第3章 数据链路层
  12. java.lang.Integer常用方法
  13. 国内TCP单边 加速 的 正确 做法
  14. 如何给PDF文件进行加密?
  15. iOS疯狂详解之启动分层引导动画
  16. 算法设计与分析: 1-4 金币阵列问题
  17. 线性回归python实现详解(附公式推导)
  18. 视频-sps,pps
  19. python: if, and, bool 联合使用需要加括号()
  20. 商城搜索DSL elasticsearch 相关代码

热门文章

  1. OPENSSH密钥之三Winscp、cuteftp、flashfxp登录
  2. 专业卸载工具Your Uninstaller! Pro
  3. sql java驱动程序_microsoft sql server jdbc驱动下载
  4. Firebug工具离线安装
  5. 红烛电子教鞭 2.5.1.0 中文绿色版
  6. 计算机汉字录入技能怎么上,用手动录入怎么样把文件录入电脑?快速录入文字...
  7. 9、【易混淆概念集】-第五章 2 WBS 需求文件 VS 需求跟踪矩阵 确认范围 VS 控制质量 确认范围 VS 控制范围
  8. 战投之王:蔡崇信、刘炽平和刘德的精密战争
  9. 无人驾驶相关文献阅读体会
  10. 全量、增量 数据抽取 同步