历史上的今天
返回首页

历史上的今天

今天是:2025年07月02日(星期三)

正在发生

2020年07月02日 | 为何使用C而不使用汇编进行开发C8051F

2020-07-02 来源:eefocus

好些年之前,我为自己写了几万行汇编代码而骄傲。 

然而,做过多年软件开发的我,看到以前写的汇编代码也是很多不懂的,这可是自己亲手写的呀。汇编代码由于其可读性比较差,给后期的维护造成很大的困难。因此建议单片机的学习者们一定要学习C。 

这句话要是我在读书的时候听到,只是会嗤之以鼻。“用汇编就足够了,为什么用C呢?如果您用汇编做不了,说明水平还不够”,这是我的典型想法,当时我的汇编水平甚至成为我的骄傲。然而几年之后的今天,我要劝说后来学习者一定要舍弃汇编而学习C语言,是否很好笑。

首先说说C的优点。
1、直观,可读性强:这点很重要。对于一个产品,周期是很长的,即使出第一台产品之后,还有很长的维护时间。这中间维护人员可能经常变动,如果可读性强,将给维护工作省下很大的成本。即使是在开发,可读性强的程序也便于查错。 

2、模块化可以做的很好:这点也是很重要的。模块化做得好,当然程序的重用性就高。对于公司来说,这一点是关系到公司长远发展的。程序可以重用,说明下一次开发的投入就可以减少,时间也可以加快,多好的事呀。

还有很多有点,当然也就是高级语言相对于汇编语言的优点,这里就不一一列举了。

再来看看汇编的优点:应该来说,汇编语言操作硬件直观,对于硬件非常熟悉的人来说,直接操作很方便。另外可能就是很多人说的效率要高了。 

针对以上两点我来说说,首先“汇编语言操作硬件直观”,这是在代码编写阶段,对于整个产品周期来说,应该是要避免使用汇编语言的,这个在C语言的优点中已经说明。对于第二点,效率问题,目前C语言的编译器优化也做得很好,对于一个汇编不是很熟练的来说,C编出来的程序应该不会效率比汇编低。当然这样就对开发人员的要求降低了很多,人员的限制也就没有那么严格。另外是否真的是效率问题呢。我觉得应该是一个整体效率和局部效率的均衡问题。需要提高的是整体的效率。一个好的软件架构,远远比一个好的函数效率要高的多。因此主要的精力应该放在软件的架构上。另外现在CPU的速度不停的往上提,CPU越来越快,这点应该也可以弥补程序的效率吧。 

当然,我的意思不是不学习汇编。汇编对于熟悉硬件有很大的好处,应此汇编语言在学习初期一定是要学习的。在基本的硬件熟悉之后,就可以转向C了。

推荐阅读

史海拾趣

HANBIT Electronics公司的发展小趣事

Hamamatsu(滨松光子学株式会社)在电子行业中的发展故事丰富多样,以下是根据公开信息整理的五个相关故事,每个故事均力求准确描述事实:

1. 光电倍增管的创新与突破

Hamamatsu在光电倍增管(PMT)领域取得了显著成就。光电倍增管作为宇宙线观测、中微子实验等高精度探测中的关键器件,其性能和技术要求极高。Hamamatsu抓住市场需求,与东京大学高能物理实验室等科研机构合作,成功研制出大面积探测用光电倍增管,并在多个国际中微子探测实验中得到应用。这一创新不仅推动了Hamamatsu自身的发展,也巩固了其在光电倍增管市场的领先地位。

2. 光电二极管的多样化应用

Hamamatsu的光电二极管产品线广泛,包括硅PIN光电二极管、InGaAs PIN光电二极管等多种类型,广泛应用于医疗生物、高能物理、宇宙探测、精密分析等多个领域。这些产品的多样化应用不仅展示了Hamamatsu在光电技术领域的深厚积累,也为其在全球市场的拓展提供了有力支撑。

3. 光电技术的国际合作与交流

Hamamatsu积极参与国际光电技术的交流与合作,通过举办大型展会、参与国际学术会议等方式,展示其最新的光电技术和产品。例如,Hamamatsu举办的PHOTON FAIR展会,吸引了来自全球的客户和合作伙伴,促进了光电技术的国际交流与合作。这种开放合作的态度,有助于Hamamatsu不断吸收国际先进技术,推动自身技术的持续进步。

4. 应对市场变化的灵活策略

面对电子行业的快速变化,Hamamatsu展现出了高度的市场敏感性和灵活性。当市场需求发生变化时,Hamamatsu能够迅速调整产品结构和研发方向,以满足新的市场需求。例如,在消费电子市场兴起时,Hamamatsu也积极涉足相关领域,推出了一系列适用于消费电子产品的光电传感器件。这种灵活的市场策略,使得Hamamatsu能够在激烈的市场竞争中保持领先地位。

5. 人才培养与团队建设

Hamamatsu深知人才是企业发展的根本动力,因此高度重视人才培养和团队建设。公司建立了完善的人才培养体系,通过内部培训、外部交流等多种方式,不断提升员工的专业技能和综合素质。同时,Hamamatsu还注重团队建设和企业文化建设,营造了一个积极向上、团结协作的工作氛围。这种良好的人才环境和企业文化,为Hamamatsu的持续发展提供了有力保障。

以上五个故事展示了Hamamatsu在电子行业中的发展历程和成就,体现了其在技术创新、市场拓展、国际合作、灵活应变以及人才培养等方面的综合实力。

ETC1公司的发展小趣事

金溢科技是国内ETC行业的领军企业之一。公司自创立之初,就致力于ETC技术的研发与应用。通过不断的技术创新,金溢科技成功推出了多款具有自主知识产权的ETC设备,并在市场中获得了广泛应用。同时,公司还积极参与国家标准的制定和修订工作,推动ETC行业的规范化发展。金溢科技凭借其在ETC领域的卓越表现,逐渐成为了行业的标杆企业。

Aeroflex Metelics / Hi-Rel Components公司的发展小趣事

万集科技是ETC行业中另一家知名的企业。公司专注于ETC设备的研发、生产和销售,以及ETC系统的集成与服务。在市场拓展方面,万集科技采取了多元化的策略,不仅与国内众多高速公路管理机构建立了合作关系,还积极开拓海外市场。通过不断的市场拓展和品牌建设,万集科技逐渐成为了ETC行业中的佼佼者。

Elec & Eltek公司的发展小趣事

在国内市场取得一定成绩后,Elec公司开始将目光投向国际市场。为了更好地适应国际市场的需求,Elec公司积极引进国际先进技术和管理经验,并加强与国际知名企业的合作。同时,Elec公司还加大了在海外市场的营销力度,通过参加国际展会、举办技术研讨会等方式提高品牌知名度。经过多年的努力,Elec公司的产品已远销欧美、东南亚等多个国家和地区,成为国际市场上具有竞争力的电子品牌。

Changzhou Galaxy Century Microelectronics Co.,Ltd公司的发展小趣事

为了进一步加速企业的发展,银河微电决定走上上市之路。经过精心筹备和严格审核,公司终于在2021年成功在上交所上市。上市不仅为公司带来了大量的资金支持,还提高了公司的知名度和品牌影响力。借助上市融资的优势,银河微电加大了对研发、生产、销售等各个环节的投入,企业发展步入快车道。

High Energy Corp公司的发展小趣事

随着技术实力的不断提升,银河微电开始积极拓展市场。公司深入分析市场需求,针对不同行业和领域的特点,推出了定制化的产品解决方案。同时,银河微电还加大了营销力度,通过参加行业展会、举办技术研讨会等方式,与潜在客户建立联系,推动产品销售。在市场的不断拓展中,银河微电实现了跨越式发展,市场份额逐年提升。

问答坊 | AI 解惑

xiaorunyi收集和整理的一些Protues的资料

这些资料来自网上,以前用过的,有程序、文档、ppt等,还有一个Protues软件;大多是S51和AVR的。 可能有与网站其他网友的重复的内容,没时间也不好校对了。 陆续找出来发到这里分享了!…

查看全部问答>

时间触发嵌入式系统设计模式:使用8051微控制器开发可靠应用(含光盘源代码下载)

时间触发嵌入式系统设计模式:使用8051微控制器开发可靠应用(含光盘源代码下载) 目录: 第1章 什么是时间触发的嵌入式系统 1.1 引言 1.2 信息系统 1.3 桌面系统 1.4 实时系统 1.5 嵌入式系统 1.6 事件触发系统 1.7 时间触发系统 1.8 小结 ...…

查看全部问答>

EB500视频教程

谁有EB500视频教程?能否一看?…

查看全部问答>

Keil与proteus完美结合教程普通下载

Keil与proteus完美结合教程普通下载…

查看全部问答>

wince下eboot不能加载内核

Resetting factory default configuration... System ready! Preparing for download... 串口终端显示到以上信息,就没下文了 …

查看全部问答>

修改后的电源,出现这样的情况

各位老师们,帮忙解决下啊,很困惑,    我将电源S-100-5型号,将主板上面R27,R28,,R25,D17,C18,C29,C27,Q5元件拆掉了,在在R29的位置接一跟线,编号1,D10,D9交接位接根线,编号,2在R34的位置接根线,编号3,三根线构成一组 ...…

查看全部问答>

有个问题

我申请做一个可以进行51、avr、arm实验的大学生单片机实验平台,想命名为“单片机与嵌入式综合实验平台”,不知道好不好,请各位提提建议。 注:有的说嵌入式包括了单片机…

查看全部问答>

关于Verilog语句含义的问题

模块一 module multiplier ( product,a0,a1 ); parameter a0_width=8; parameter a1_width=8;             //localparam product_width=a0_width+a1_width; output [ product_wid ...…

查看全部问答>

【咨询】哪位用过飞凌S3C6410开发板LVDS的10寸屏?好用吗?和8寸的LVDS比起来呢?

现在公司做项目打算用工业屏,初步计划是用10寸或15寸的,分辨率800*600或1024*768的。刚问了一下飞凌的技术,他们用的是群创和LG的10寸屏,使用没问题。可没有演示的照片。看不到效果,不太放心啊。有没有哪位朋友用过?麻烦告诉一下吧,谢谢了。…

查看全部问答>

USART的问题

                                 USART有没有发送或接收失能的函数。。…

查看全部问答>