0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

今天,已经到MCU开发人员拿起C语言利器的时候了

GReq_mcu168 来源:玩转单片机 作者:玩转单片机 2020-10-17 10:59 次阅读

将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编译器代办;

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

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

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

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

责任编辑:xj

原文标题:单片机为什么要使用C语言?

文章出处:【微信公众号:玩转单片机】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6030

    文章

    44482

    浏览量

    631714
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16848

    浏览量

    349788
  • C语言
    +关注

    关注

    180

    文章

    7589

    浏览量

    135768

原文标题:单片机为什么要使用C语言?

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MCU编程语言开发环境介绍

    MCU编程语言 MCU编程语言是用于编写MCU程序的高级编程语言,它们使得
    的头像 发表于 11-01 11:51 227次阅读

    C2000 ePWM开发人员指南

    电子发烧友网站提供《C2000 ePWM开发人员指南.pdf》资料免费下载
    发表于 09-07 09:45 0次下载
    <b class='flag-5'>C</b>2000 ePWM<b class='flag-5'>开发人员</b>指南

    谷歌发布新型大语言模型Gemma 2

    在人工智能领域,大语言模型一直是研究的热点。近日,全球科技巨头谷歌宣布,面向全球研究人员开发人员,正式发布其最新研发的大语言模型——Ge
    的头像 发表于 06-29 09:48 383次阅读

    芯海 32 位 MCU 开发调试 ,基于 VS Code 插件实现芯海 32 位 MCU 开发调试

    由于某些客户受到 Keil/IAR 的使用限制,可能需要提供 GNU ARM GCC 开发调试支持,开发人员需要自己搭建 GCC 编译开发环境,需要学习 MakeFile/CMake 语法、GCC
    发表于 05-16 10:46

    三星停止自动驾驶研究,开发人员转到机器人领域

    近日,三星电子宣布一项重要的研发战略调整。据业内人士透露,三星先进技术研究院(SAIT)已决定停止自动驾驶汽车的研究,并将这一领域的开发人员转移到机器人领域。
    的头像 发表于 05-13 09:21 402次阅读

    美国政府呼吁开发人员使用内存安全编程语言

    所谓内存安全,即是防止程序在处理内存时产生如缓冲区溢出以及悬停指针等潜在漏洞。因此,尽管Java凭借其内存安全模式,不受此类问题影响,但C及其变异体C++拥有直接操作内存地址,且缺乏边界检查,因此在内存安全性方面常常陷入困境。
    的头像 发表于 02-29 14:40 677次阅读

    MWC2024亮点 爱立信旗下Vonage携手AWS加速向数百万开发人员提供新的解决方案

    开发人员提供新的解决方案。 推动跨行业新应用 近日,AWS工业副总裁Kathrin Renz表示:“AWS和Vonage在帮助客户实现创新和价值方面有着共同的热情。 我们与Vonage合作的目标是推动
    的头像 发表于 02-29 09:42 1.2w次阅读

    瑞萨RA8T1高性能电机控制新品解读(下)应用与开发

    在上一篇文章中,我们介绍高性能RA8T1 MCU的整体概况和性能配置解析。最后我们进入开发人员最为关心的部分,关于目标应用及开发支持。
    的头像 发表于 02-21 12:17 734次阅读
    瑞萨RA8T1高性能电机控制新品解读(下)应用与<b class='flag-5'>开发</b>篇

    现在学鸿蒙有前途吗?能找到工作?

    。发布会中表示,已有200家头部企业加入原生开发当中,并且一直有高薪抢人的局面。 做为Android开发人员,对于现在的互联网行业来说。鸿蒙就是近几年最大的风口,而不仅Android开发
    发表于 02-18 21:32

    C语言能够实现单片机功能,为什么还要使用汇编呢?

    C语言能够实现单片机功能,为什么还要使用汇编呢? C语言是一种高级编程语言,它具有跨平台、可移植性强、易于使用的特点,使得
    的头像 发表于 01-15 14:59 908次阅读

    电子发烧友网无线MCU报告

      电子发烧友网无线MCU市场调研报告   无线+MCU的SoC芯片 在BOM成本或者板子 尺寸上优势更大   从MCU转为无线MCU
    发表于 12-27 09:36 5次下载

    javascript规定几种语言类型

    和移动应用程序。JavaScript的灵活性和易用性使其成为开发人员最喜爱的编程语言之一。本文将详细介绍JavaScript的几种语言类型。 首先,JavaScript是一种基于原型的面向对象
    的头像 发表于 12-03 11:37 726次阅读

    MCU在线技术讲座-EFM和EFR: 面向物联网开发的通用MCU平台

    开发人员了解专门针对物联网开发而优化的EFM和EFR系列MCU平台,我们将针对亚洲地区于2023年12月12日上午10点(北京时间)在线举办全新MCU专题的Tech Talk技术讲座-
    发表于 11-23 13:45

    关于开发、安全和DevOps团队协同工作的5个技巧

    首先,开发人员关注的是他们更快地交付软件的能力。当您的代码是模块化的时候,它更容易维护——即开发微服务而不是单体应用代码。这需要开发人员对容器技术有基本的了解。
    的头像 发表于 11-12 09:39 786次阅读

    开关电源开发人员必看

    电子发烧友网站提供《开关电源开发人员必看.pdf》资料免费下载
    发表于 11-08 15:41 0次下载
    开关电源<b class='flag-5'>开发人员</b>必看