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

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

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

    关注

    6074

    文章

    45340

    浏览量

    663520
  • mcu
    mcu
    +关注

    关注

    147

    文章

    18605

    浏览量

    387024
  • C语言
    +关注

    关注

    183

    文章

    7642

    浏览量

    144608

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    现已上市:AMD Spartan UltraScale+ FPGA SCU35 评估套件——面向所有开发人员的经济实惠平台

    的路径。 该套件搭载具备 I/O 扩展和板卡管理功能的 Spartan UltraScale+ SU35P 器件。其还为 AMD 成本优化型产品组合带来了多项新进展,并使开发人员能够快速启动
    的头像 发表于 11-27 10:52 192次阅读

    Bourns 深耕印度,在地设计 - Bourns 印度设计中心 为开发人员提供当地先进技术资源助力客户加速创新!

    班加罗尔 (Bengaluru) 正式成立首座设计中心。此新中心将作为以客户协作与创新为核心的研发枢纽,为当地开发人员提供完整的设计工具与技术支持,包括运用 Bourns 具业界领先地位的电源与保护组件之参考设计专业服务。 Bourns 印度设计中心采用成熟流程,协助客户快速进
    的头像 发表于 11-19 14:26 220次阅读
    Bourns 深耕印度,在地设计 - Bourns 印度设计中心 为<b class='flag-5'>开发人员</b>提供当地先进技术资源助力客户加速创新!

    嵌入式开发的关键点介绍

    嵌入式开发在现代科技中扮演着非常重要的角色。随着物联网的发展,嵌入式系统的需求也越来越大。嵌入式开发不仅需要开发人员具备深入的硬件知识和编程经验,还需要不断学习新的技术和工具,以满足不断变化的需求
    发表于 11-13 08:12

    Texas Instruments TMDS273EVM MCU评估模块 (EVM)数据手册

    Texas Instruments TMDS273EVM MCU评估模块 (EVM) 是一个独立的测试、开发和评估平台,帮助开发人员评估AM273x的功能和为各种应用开发原型。
    的头像 发表于 08-03 10:06 971次阅读
    Texas Instruments TMDS273EVM <b class='flag-5'>MCU</b>评估模块 (EVM)数据手册

    【HZ-T536开发板免费体验】3 - Cangjie Magic调用视觉语言大模型(VLM)真香,是不是可以没有YOLO和OCR

    感谢电子发烧友和合众恒跃提供的试用机会。 引言 上次我们已经实现交叉编译仓颉编程语言的程序在开发板上运行。今天我们会交叉编译Cangjie
    发表于 08-01 22:15

    从个人企业商业巨头:35 美元小板子撬动 10 亿美元的数字标牌市场

    借助灵活的工具,使用树莓派轻松构建定制数字标牌应用。意识开发人员受到不灵活的、基于云的数字标牌应用的限制,Screenly试图利用现代开发环境中熟悉的工具,为他们提供设计灵活的定制屏幕应用。
    的头像 发表于 07-13 20:15 611次阅读
    从个人企业<b class='flag-5'>到</b>商业巨头:35 美元小板子撬动 10 亿美元的数字标牌市场

    嵌入式软件开发常用的软件有哪些?

    软件功能。 2. Visual Studio 简称VS: 它是一个IDE,集成开发环境。验证C程序或是进行c#程序开发,可以用它。一些与嵌入式相关的模拟器也是基于VS的。帮助
    发表于 07-03 17:06

    Nordic PMIC全家桶,让电源管理和节能更进一步!

    Nordic 发布 nPM2100 PMIC 和 nPM2100 评估套件,现已向开发人员提供 nPM2100 评估套件、软件和技术文档! 此次发布公布 PMIC 的完整文档,供开发人员
    发表于 06-29 17:19

    主流的 MCU 开发语言为什么是 C 而不是 C++?

    、1MROM是标配?多数时候咱打交道的,是stm8这种8kRAM的“小矮个儿”,stm32f1的32kRAM就算是“小康家庭”。就这么丁点儿地方,C语言打个转都
    的头像 发表于 05-21 10:33 778次阅读
    主流的 <b class='flag-5'>MCU</b> <b class='flag-5'>开发</b><b class='flag-5'>语言</b>为什么是 <b class='flag-5'>C</b> 而不是 <b class='flag-5'>C</b>++?

    Thingy:91 X 为开发人员提供一个经过全球认证的、多传感器、电池供电的蜂窝物联网原型平台

    Thingy:91 X 为开发人员提供一个经过全球认证的、多传感器、电池供电的蜂窝物联网原型平台 挪威奥斯陆 – 2024年12月10日 – 全球领先的低功耗无线连接解决方案提供商Nordic
    的头像 发表于 05-08 17:41 2229次阅读

    NanoEdge AI Studio 面向STM32开发人员机器学习(ML)技术

    嵌入式开发人员提供按年度的单个或团队许可。 为帮助用户启动其项目,意法半导体推出了Edge AI Sprint包,以限制风险和投资,同时提高成功几率。这是包括培训课程、N
    的头像 发表于 04-22 11:09 981次阅读
    NanoEdge AI Studio 面向STM32<b class='flag-5'>开发人员</b>机器学习(ML)技术

    基于RV1126开发板的人员检测算法开发

    在RV1126上开发人员检测AI算法组件
    的头像 发表于 04-14 13:56 629次阅读
    基于RV1126<b class='flag-5'>开发</b>板的<b class='flag-5'>人员</b>检测算法<b class='flag-5'>开发</b>

    GoPoint嵌入式开发平台 释放i.MX潜力 简化Linux开发

    地进行创新。 在快节奏的嵌入式系统时代,时间是开发人员最宝贵的资源。GoPoint (过去名为NXP Demo Experience) 重新定义评估和探索过程,开发人员能够快速评估i.MX SoC在下一代项目中的能力。 GoP
    发表于 02-28 10:07 1068次阅读
    GoPoint嵌入式<b class='flag-5'>开发</b>平台 释放i.MX潜力 简化Linux<b class='flag-5'>开发</b>

    芯科科技全新MCU选型指南

    微控制器(MCU)是物联网的核心,开发人员如何面向其应用需求选择最合适的设备,将是在产品开发过程中的一个重大决策。但是,您如何知道哪款处理器合适呢?本篇物联网MCU选型指南深入介绍Si
    的头像 发表于 02-17 16:52 1553次阅读
    芯科科技全新<b class='flag-5'>MCU</b>选型指南

    拥有低功耗低成本的Open开发应用,开发人员必看!

    Open开发应用需求,有没有低功耗、低成本方案? 今天我们一起来聊聊Air780EP模组。 一、Air780EP实网功耗数据 4G-Cat.1模组支持三种功耗模式:常规模式、低功耗模式、PSM+模式
    的头像 发表于 12-26 11:50 826次阅读
    拥有低功耗低成本的Open<b class='flag-5'>开发</b>应用,<b class='flag-5'>开发人员</b>必看!