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语言?

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

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

    关注

    6001

    文章

    43973

    浏览量

    620800
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16013

    浏览量

    343572
  • C语言
    +关注

    关注

    180

    文章

    7528

    浏览量

    128455

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

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

收藏 人收藏

    评论

    相关推荐

    开关电源开发人员必看

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

    Zynq UltraScale+ MPSoC软件开发人员指南

    电子发烧友网站提供《Zynq UltraScale+ MPSoC软件开发人员指南.pdf》资料免费下载
    发表于 09-15 10:16 8次下载
    Zynq UltraScale+ MPSoC软件<b class='flag-5'>开发人员</b>指南

    Versal ACAP系统软件开发人员指南

    电子发烧友网站提供《Versal ACAP系统软件开发人员指南.pdf》资料免费下载
    发表于 09-13 15:20 0次下载
    Versal ACAP系统软件<b class='flag-5'>开发人员</b>指南

    Microchip 推出 MPLAB® 机器学习开发工具包,助力开发人员轻松将机器学习集成到 MCU 和 MPU中

    开发工具包,提供一套完整的集成工作流程来简化机器学习模型开发。这款软件工具包可用于Microchip的各类单片机 (MCU) 和微处理器 (MPU) 产品组合,助力开发人员快速高效地添
    的头像 发表于 09-11 15:55 338次阅读

    ARM开发人员套件1.2版汇编指南

    功能是有限制的。 有关内联汇编器的更多信息,请参阅ADS开发人员指南中的混合CC++和汇编语言一章。 这本书的其余部分主要是关于手臂的。
    发表于 09-01 10:41

    中微半导亮相2023深圳国际电子展 为开发人员提供高效智能的解决方案

    产品及解决方案成为现场焦点之一,吸引众多观众与中微进行深入的产品和技术方面的交流。 中微半导拥有广泛的MCU产品组合,从智能家电、消费电子、汽车电子、工业控制、电机控制、数字电源到模拟系列,旨在以加速产品创新和面市时间,降本增效的同时,为开发人员提供
    的头像 发表于 08-24 10:03 557次阅读

    ARM Mali-T600系列GPU OpenCL开发人员指南

    。 GPU被设计为同时执行多个线程。 它们并行运行包含相对较少控制代码的计算密集型数据处理任务。 GPU通常包含比应用程序处理器多得多的处理元素,因此计算速度比应用程序处理器高得多。 OpenCL是第一种开放标准语言,使开发人员能够在GPU、应用程序处理器和其他类型的处理
    发表于 08-24 07:07

    ARM开发人员套件1.2版开发人员指南

    本书包含的信息将帮助您解决为基于ARM的处理器开发代码时的特定问题。 一般来说,本书中的章节假定您正在使用ARM开发人员套件(ADS)来开发代码。 ADS由一套应用程序以及支持文档和示例组成,使您能
    发表于 08-23 07:29

    GitHub陆续封杀位于“美国贸易制裁国家”的开发人员

    Github 陆续封杀受美国制裁的国家或地区的开发人员账户,如果你在遭受美国制裁的国家/地区使用GitHub的在线服务,只能享用最基本的服务。
    的头像 发表于 08-21 10:34 533次阅读
    GitHub陆续封杀位于“美国贸易制裁国家”的<b class='flag-5'>开发人员</b>

    ARM GPU最佳实践开发人员指南

    我们的指南提供在为Arm Immortalis和Mali GPU开发时如何优化应用程序的建议。这些建议是为那些希望开始使用Arm GPU的成熟开发人员准备的。
    发表于 08-10 06:58

    Splashtop开发人员远程桌面:随时随地进行安全编码

    开发人员不再需要被束缚在特定的物理位置即可访问其自定义开发环境。借助远程桌面解决方案,他们可以随时从任何位置连接到工作站。这意味着无论身在何处,他们都可以无缝地继续工作。当他们对需要立即关注的关键问题进行故障排除或修复时,这尤其有用。
    的头像 发表于 08-01 16:42 452次阅读

    UM-B-101:DA14585 IoT 多传感器开发套件开发人员指南

    UM-B-101:DA14585 IoT 多传感器开发套件开发人员指南
    发表于 07-05 20:59 0次下载
    UM-B-101:DA14585 IoT 多传感器<b class='flag-5'>开发</b>套件<b class='flag-5'>开发人员</b>指南

    UM-B-056:DA1468x 软件开发人员指南

    UM-B-056:DA1468x 软件开发人员指南
    发表于 07-05 20:36 0次下载
    UM-B-056:DA1468x 软件<b class='flag-5'>开发人员</b>指南

    IzoT BACnet 开发人员指南

    IzoT BACnet 开发人员指南
    发表于 07-04 20:48 0次下载
    IzoT BACnet <b class='flag-5'>开发人员</b>指南

    通过使用AI改善开发人员体验的13种令人印象深刻的方法

    在当今快速发展的技术环境中,人工智能 (AI) 正在全面改变行业,软件开发也不例外。AI 可以通过简化流程、自动执行重复性任务以及使开发人员能够构建创新应用程序来显著增强开发人员体验。
    发表于 06-09 09:24 499次阅读