历史上的今天
返回首页

历史上的今天

今天是:2024年10月10日(星期四)

正在发生

2018年10月10日 | 单片机为什么要使用C语言?

2018-10-10 来源:eefocus

将C向MCU(俗称单片机)8051上的移植始于80年代的中后期。客观上讲,C向8051 MCU移植的难点不少。如:

·8051的非冯·诺依慢结构(程序与数据存储器空间分立),再加上片上又多了位寻址存储空间;

·片上的数据和程序存储器空间过小和同时存在着向片外扩展它们的可能;

·片上集成外围设备的被寄存器化(即SFR),而并不采用惯用的I/O地址空间;

·8051芯片的派生门类特别多(达到了上百种之多),而C语言对于它们的每一个硬件资源又无一例外地要能进行操作。

这些都是过去以MPU为基础的C语言所没有的。经过Keil/Franklin、Archmeades、IAR、BSO/Tasking等公司艰若不懈的努力,终于于90年代开始而趋成熟,成为专业化的MCU高级语言了。过去长期困扰人们的所谓“高级语言产生代码太长,运行速度太慢,因此不适合单片机使用”的致使缺点已被大幅度地克服。目前,8051上的C语言的代码长度,已经做到了汇编水平的1.2~1.5倍。4K字节以上的程度,C语言的优势更能得到发挥。至于执行速度的问题,只要有好的仿真器的帮助,找出关键代码,进一步用人工优化,就可很简单地达到十分美满的程度。如果谈到开发速度、软件质量、结构严谨、程序坚固等方面的话,则C语言的完美绝非汇编语言编程所可比拟的。今天,确实已经到MCU开发人员拿起C语言利器的时候了。

下面结合8051介绍单片机C语言的优越性:

·不懂得单片机的指令集,也能够编写完美的单片机程序;

·无须懂得单片机的具体硬件,也能够编出符合硬件实际的专业水平的程序;

·不同函数的数据实行覆盖,有效利用片上有限的RAM空间;

·程序具有坚固性:数据被破坏是导致程序运行异常的重要因素。C语言对数据进行了许多专业性的处理,避免了运行中间非异步的破坏;

·C语言提供复杂的数据类型(数组、结构、联合、枚举、指针等),极大地增强了程序处理能力和灵活性;

·提供auto、static、const等存储类型和专门针对8051单片机的data、idata、pdata、xdata、code等存储类型,自动为变量合理地分配地址;

·提供small、compact、large等编译模式,以适应片上存储器的大小;

·中断服务程序的现场保护和恢复,中断向量表的填写,是直接与单片机相关的,都由C编译器代办;

·提供常用的标准函数库,以供用户直接使用;

·头文件中定义宏、说明复杂数据类型和函数原型,有利于程序的移植和支持单片机的系列化产品的开发;

·有严格的句法检查,错误很少,可容易地在高级语言的水平上迅速地被排掉;

·可方便地接受多种实用程序的服务:如片上资源的初始化有专门的实用程序自动生成;再如,有实时多任务操作系统可调度多道任务,简化用户编程,提高运行的安全性等等。


推荐阅读

史海拾趣

川土(Chipanalog)公司的发展小趣事

2016年,上海川土微电子有限公司(简称“川土微电子”)正式成立,标志着Chipanalog川土微电子的诞生。作为一家专注于模拟芯片产品研发与销售的高科技公司,川土微电子从成立之初就明确了其核心使命——为中国电子信息制造企业提供高品质进口替代模拟芯片。在创始人及团队的共同努力下,公司迅速确定了发展方向,并开始着手研发首款模拟芯片产品。

Advance Tapes公司的发展小趣事

面对日益复杂的市场环境和客户需求,Advance Tapes公司积极寻求与其他企业的合作机会。通过与上游原材料供应商建立长期稳定的合作关系,确保了原材料的稳定供应和质量保障;通过与下游电子制造企业的深度合作,共同开发定制化胶带产品,满足了客户的特殊需求。这些合作不仅提升了Advance Tapes的市场竞争力,也促进了整个电子产业链的健康发展。

Handok Co Ltd公司的发展小趣事

为了进一步扩大市场份额,Advance Tapes公司开始积极参与国际展会和交流活动,向全球客户展示其优质的产品和技术实力。同时,公司还加大了对品牌建设的投入,通过广告宣传、赞助活动等方式提升品牌知名度和美誉度。这些努力使得Advance Tapes的胶带产品逐渐在国际市场上占据了一席之地。

EFINIX公司的发展小趣事

经过深入研发,EFINIX公司成功推出了Quantum™可编程加速器技术。与传统的FPGA技术相比,Quantum™技术可将面积利用率提高4倍,使得ASIC、ASSP和FPGA领域的高级可编程硅产品得以实现。该技术使EFINIX的产品在面积、功耗、性能等方面具有显著优势,吸引了众多客户的关注。

CWIND公司的发展小趣事

随着全球对环保和可持续发展的重视程度不断提高,CWIND公司积极响应这一趋势,将绿色环保理念融入到产品研发和生产过程中。公司投入大量资金和资源,研发出了一系列符合环保标准的电子产品,并优化了生产工艺,减少了废弃物和污染物的排放。这一举措不仅提升了CWIND的品牌形象,还为公司赢得了更多的市场份额。

Alpha Industries公司的发展小趣事

随着互联网技术的普及,电子商务成为了越来越多消费者的首选购物方式。Alpha Industries抓住这一机遇,积极拓展电子商务平台。公司在各大电商平台上开设官方旗舰店,并通过社交媒体进行品牌推广。此外,Alpha Industries还开发了自己的官方网站和移动应用,为消费者提供更加便捷的购物体验。电子商务平台的拓展使得Alpha Industries的产品能够更好地触达消费者,进一步提升了品牌知名度和市场占有率。

问答坊 | AI 解惑

TMS320C6205视频教程

这几天在学习6205,找到了TMS320C6205视频教程,与大家分享…

查看全部问答>

CRC概念及计算方法

个人觉得这段介绍CRC的计算方法比较好理解,现从书上《计算机网络第五版P68-P80》抠下来,以便日后查看。 说明:特意把这个注释写下来: 用模2运算进行加法时不进位,例如,1111+1010=0101.减法和加法一样.按加法规则计算。 另外:当被除数小于除 ...…

查看全部问答>

OV9653的IIC怎么弄?

我现在在调ov9653,遇到了些问题。 用IIC无法设定ov9653的寄存器,IIC我驱动过其他芯片,是好的. 但向ov9653中写时,ov9653一直没有返回ACK,好像根本找不到slave ID=0x60的0v9653,读到任何寄存器的值都是0xff。 0v9653用IIC驱动时有什么要特别 ...…

查看全部问答>

RDA中的PULL

我现在在做PPC的数据库开发,需要将模拟器PPC的SQLCE与服务器上的SQL2000同步,RDA中有三个函数Submit,Pull,Push. 在Submit时是成功的,但在Pull时就出现了问题。 如下 ERROR 1 of 2 Description:\'SQL Server CE encountered problems in open ...…

查看全部问答>

求一个实现方案

需求描述: 某种机械设备,要求某个动作只能进行规定的时间。假设要求A动作做0.5秒。 目前的实现: 1 取当前时间 2 做A动作(通过IOCTL调用硬件接口) 3 取当前时间 然后3的时间减去1的时间,如果大于规定时间,则退出。否则循环做1--3的操作 ...…

查看全部问答>

新手wince入门,请前辈们指点一下

第一次接触到wince这个名词,现在想进入这个方面, 请问各位前辈我应该怎么走!谢谢, 希望各位指一个明路,谢谢!…

查看全部问答>

关于进程和线程以及DLL的问题

同一个进程之间的线程如何通讯 触摸屏驱动,LCD驱动,同为GWES加载,是否可以认为是GWES进程中的多个线程? 同一个进程之间的线程通讯是否和不同进程间的通讯相同? 普通流接口驱动   以DLL形式存在  被同一个进程(device. ...…

查看全部问答>

限制时间的SOF文件

quartus 使用IPCore 生成了限时的sof文件,使用的时候连signaltap也不能用了 有遇到过这种情况的吗…

查看全部问答>

Monolithic Instrumentation Amplifiers

本帖最后由 dontium 于 2015-1-23 13:37 编辑 Monolithic Instrumentation Amplifiers …

查看全部问答>

【MSP430共享】基于无线的高压输变电的温度测量系统设计

介绍 了一种基 于无线的 高压 输变电节点温 度测 量的 系统 , 详细介 绍 了该温 度测 量 系统 中温 度探 头的软 硬件设计 。硬件平 台设计采取 TI公 司 Ms P4 3 O系列单 片机加 n RF9 O 5无线收发芯片的结构 , 软硬件 的设 计符合温度探 头的低功 ...…

查看全部问答>