> > 注释

编写优越的嵌入式C代码需求触及以下多个方面-澳门葡京官方投注平台-澳门新葡京27111.com

2018年12月28日 15:41 次浏览

Corx-M这类微控制器编程一般接纳C代码,那么编程职员怎样编写代码才气让C编译器发生下质量底层代码便成为一个很重要的话题。这里所说的下质量底层代码是指既到达编程职员企图又轻易编译器优化的代码。本文将从编写利于优化的源代码,节约栈和内存空间,函数原型,整型和位取反,同时读写变量的珍爱,不停止初始化的变量那几个方面去议论怎样编写优越的嵌入式C代码。

编写优越的嵌入式C代码需求触及以下多个方面

一、编写利于优化的源代码

我们在编写源代码的时刻若是可以或许遵照以下几点,能够让编译器更好的对代码停止优化:

1)部分变量(主动变量和参数)比静态或全局变量要更好。为何这么道呢,由于优化器会假定任何一个函数皆能够修正静态或全局变量。当部分变量的生命周期完毕的时刻,它所占有的内存便能够被别的变量运用,而全局变量正在全部顺序的生命周期内皆不会开释它所占有的内存空间。

2)制止用&运算符与部分变量的地点。这里有两个缘由会致使该操纵的效力低下。起首,变量必需放正在内存中,不克不及放正在处理器的中,那将致使更长更缓的代码效力。其次,优化器不再假定别的的函数,因而不会影响到该变量。

3)编译器的内联函数才能。为了最大限度的影响编译器的内联转换,我们最好把那些多个模块皆用到的小函数写在头文件中而不是实现文件中。

二、节约栈和内存空间

以下的编程手艺能够让我们节约内存和栈空间:

1)若是栈空间有限,那么我们就要只管制止少的挪用链和递归函数。

2)制止运用大的聚合范例(好比构造体)作为参数大概返回范例。为了节约栈空间,我们应当更多的运用指针去替代这类聚合范例。

三、函数原型

有两种函数的界说和声明体式格局能够运用。一种是原型作风,一种是Kernighan & Ritchie C作风。两种作风都是能够的,但强烈建议运用原型作风,也就是说对每个大众函数皆正在响应的头文件中供应一个原型声明。那是由于编译器对运用Kernighan & Ritchie C作风的参数不停止范例搜检。运用原型作风正在某些状况下将发生高效的代码,由于它不需要停止参数范例提拔。为了包管所有的大众函数皆正在界说之前声明过,能够翻开编译器选项 Project》Opons》C/ Comler》Language 1》Require prototypes

以下是两种作风的示例

1)原型作风:

原型作风中,必需写明每一个参数的范例。

int Test(char, int); /* 声明 */

int Test(char ch, int i) /* 界说 */

{

return i - ch;

}

2)Kernighan & Ritchie作风

Kernighan & Ritchie作风中,不需要停止函数原型声明。取而代之的是一个空参数列表的函数声明。函数的界说也有些差别。

int Test(); /* 声明 */

int Test(ch, i) /* 界说 */

char ch;

int i;

{

return i - ch;

}

四、整型和位取反

正在某些状况下,整数范例和它们的转换提拔划定规矩会致使难以明白的行动。那常常泛起正在赋值大概前提表达式中,这里触及差别长度范例的数据和逻辑操纵尤其是位取反操纵。这里的范例也包孕常数范例。比方:1个8位的字符范例,1个32位的整数范例,根据二进制补码操纵。

void F1(unsigned char c1)

{

if (c1 == ~0x08);

}

这里,测试前提老是false。由于右侧的0x08 = 0x00000008,~0x00000008 = 0xFFFFFFF7。左侧的c1是1个8位无标记字符范例,因而它不可能比255大,也不能够是负数,那便意味着它的下24位不可能置1。以是这个测试前提老是false的。

五、同时读写变量的珍爱

正在中止顺序大概零丁线程顶用到的变量常常是异步读写的,它们必需停止恰当天符号和恰当的珍爱。编译器运用volale关键字对这类变量停止符号。这个关键字关照编译器该工具的值无任何持久性,不要对它停止任何优化。它迫使编译器每次需求该工具数据内容的时刻皆必需读该工具,而不是只读一次数据并将它放正在处理器的寄存器中以便后续接见之用。

六、不停止初始化的变量

一般,运转时情况正在应用程序启动的时刻会初始化所有的静态和全局变量。编译器支撑用__no_init关键字去声明不停止初始化的变量。用__no_init关键字声明的变量一般用正在大的数据输入缓冲如许的中央。

本文引见了编写优越的嵌入式C代码触及的多个方面。编写优越的嵌入式C代码需求大量的专业知识,本文虽全力形貌编写优越的嵌入式C代码所需求的种种妙技,但不免会有缺乏的中央,期望人人多多斧正。

下载发烧友APP

打造属于您的人脉电子圈
澳门葡京官方投注平台

存眷电子发烧友微疑

风趣有料的资讯及手艺干货
澳门新葡京8455com

存眷发烧友教室

锁定最新课程运动及手艺直播
澳门新葡京27111.com

电子发烧友视察

一线报导 · 深度视察 · 最新资讯
珍藏 人珍藏
分享:

批评

相干推荐

做电子硬件开辟,经常要为设想一个优越的用户界面(UI)伤透头脑。由于界面开辟是个仔细活,设想一个界面...

宣布于 2018-12-28 15:50 0次浏览

宣布于 2018-12-28 09:12 72次浏览

Anaflash(加利福尼亚州圣何塞)是一家始创公司,它开辟了一种测试芯片,用于演示正在逻辑兼容的嵌入...

宣布于 2018-12-27 15:52 250次浏览

近年来,以PC机为代表的通用计算机系统正在硬件和软件方面皆与得了飞速的发大礼服,处理器的运算速度曾经达...

宣布于 2018-12-27 15:06 94次浏览

嵌入式产业掌握机特指深藏于产业体系内部,完成一种或多种特定产业义务的计算机。一个胜利的工控秘密具有开...

宣布于 2018-12-27 15:00 80次浏览

宣布于 2018-12-26 16:02 131次浏览

正在2009年英特尔大学峰会上,记者碰到一名厦门大学通讯工程系西席,他示意他们一向皆对英特尔的嵌入式产...

宣布于 2018-12-26 15:56 247次浏览

宣布于 2018-12-26 09:37 53次浏览

将来,嵌入式发展趋势将会不断提高手艺门槛、产物开辟周期络续紧缩、背智能体系演化、背成系统体系演化、嵌...

宣布于 2018-12-25 16:45 430次浏览

嵌入式盘算曾经笑傲江湖多年,但是,近来它的职位好像正在遭到某种撼动。环球最大的开源基金会——Apac...

宣布于 2018-12-25 11:38 149次浏览

宣布于 2018-12-25 09:06 88次浏览

宣布于 2018-12-24 10:51 72次浏览

嵌入式工控机最主要的特性就是抗潮抗高温,顺应情况能力强,以是他能够适用于种种设想,产业的场所,他大大...

宣布于 2018-12-24 10:30 157次浏览

试想一下,若智能手机借用台式电脑的CPU,那末成型产物得有几十斤,那样的手机借有人购吗?因而嵌入式系...

宣布于 2018-12-24 10:15 201次浏览

作为一名正在嵌入式行业摸爬滚打好久的老鸟,追念本身的阅历之路,那么冗长可又似乎近在眼前。跟着学生的日趋...

宣布于 2018-12-24 09:45 217次浏览

奇趣科技公司日前公布取日本重要的嵌入式系统集成商Nissin杀青协作和谈,联袂为日本市场供应基于的嵌...

宣布于 2018-12-23 16:05 152次浏览

已有几家始创企业正在开辟专门的机械进修芯片,但上述这些运用不单单要集成机械进修,另有计算机视觉,传感器...

宣布于 2018-12-23 14:03 1263次浏览

SoC和MCU需求内部电路实现电源管理、人机接口或衔接传感器。因而,设想中险些老是需求对照器、运算放...

宣布于 2018-12-23 13:58 222次浏览

我这个专业出学过C++,一开始不晓得什么是背工具,甚么叫面向历程,那能够让人人笑话了。不外那说的是真...

宣布于 2018-12-23 12:03 327次浏览

Boot中包罗了CPU的初始化代码,Memory取核心接口的初始化代码,随后会回引体系(OS),最初...

宣布于 2018-12-23 09:44 214次浏览

从和林总的说话中了解到,光轮电子从2012年便曾经研发胜利物联网操作系统,正在大多数企业对物联网还没有...

宣布于 2018-12-22 15:59 711次浏览

搭建宿主机和目的机的实行情况为以后的实行做预备

宣布于 2018-12-22 12:00 126次浏览

我是学物联网工程的,正在黉舍编程和嵌入式皆有进修,前段时间集中理论发明本身对嵌入式挺感兴趣的,但身旁从...

宣布于 2018-12-22 08:49 198次浏览

-8455.com

宣布于 2018-12-21 20:03 1067次浏览

宣布于 2018-12-21 20:00 •-8455.com 1090次浏览

-澳门新葡京8455com

宣布于 2018-12-21 19:55 1029次浏览

宣布于 2018-12-21 17:58 63次浏览

宣布于 2018-12-21 17:28 211次浏览

MRAM (Magnetic Random Access Memory,磁阻式随机存取存储),是一种...

宣布于 2018-12-20 16:04 256次浏览

当今对电子系统装备机能的要求愈来愈下,正在衡量电子系统的机能和功耗时,电子系统的机能每每获得更多的正视...

宣布于 2018-12-20 08:37 117次浏览

近年来,嵌入式工控机正在工控机的运用中日益成熟,最先正在一些范畴庖代传统工控机。

宣布于 2018-12-19 17:20 776次浏览

IP供应商力旺电子尽力结构车用电子市场,提出可编写次数凌驾50万次的嵌入式EEPROM(电子抹除式可...

宣布于 2018-12-19 16:56 101-澳门新葡京27111.com次浏览

抢先的嵌入式剖析手艺供应商UltraSoC取抢先的及时操作系统软件跟踪东西专业厂商Percepio ...

宣布于 2018-12-19 16:30 104次浏览

关于嵌入式体系来说,嵌入式软件相当于嵌入式体系的魂魄,全部嵌入式体系怎样事情,都是由嵌入式软件去掌握...

宣布于 2018-12-18 16:16 295次浏览

本项目开辟了一种家庭装备掌握平台,供应家庭情况的及时监控功用(温度、湿度、火警报警),供应安防功用(...

宣布于 2018-12-18 15:39 177次浏览

IMEC停止了设想手艺协同优化(DTCO),以肯定5nm节点上STT-MRAM单位的要求和规格,并得...

宣布于 2018-12-18 15:33 379次浏览

出入口体系作为浩瀚场景的人、物掌握端口,其智能化水平每每决意整体体系的运转效力和平安度,正在掌握人流、...

宣布于 2018-12-17 16:08 67次浏览

ibm日前公布了其嵌入式viavoice4.4软件包,个中接纳了恣意指令辨认和一种立异的语音辨认手艺...

宣布于 2018-12-17 15:32 241次浏览

面临缤纷多彩的 MCU 天下,如安在新品设想,老产品更新换代中准确的挑选芯片和供应商将是要面对的一个...

宣布于 2018-12-15 10:52 776次浏览

Qtopia是Trollteeh面向嵌入式的运用平台,它是基于Qt的嵌入式版本Qt/Embedded...

宣布于 2018-12-15 10:03 69次浏览

montavista软件公司日前公布推出下一代嵌入式linux操作系统——montavistalin...

宣布于 2018-12-15 09:59 127次浏览

上周,正在第64届国际电子器件会议 (IEDM) 上,环球两泰半导体巨子展现了嵌入式 MRAM 正在逻辑...

宣布于 2018-12-14 09:18 451次浏览

2018年12月13日,愈来愈多的集成电路(IC)设计人员期望找到要领,正在实行低功耗、下耐用嵌入式闪...

宣布于 2018-12-13 15:43 169次浏览

2018年12月12日,高出多重电子应用领域的环球抢先的半导体供应商意法半导体(STMicroele...

宣布于 2018-12-13 15:38 175次浏览

跟着产业4.0、医疗电子、智能家居、物流管理和电力掌握等快速的生长和推动,嵌入式体系应用本身的手艺特...

宣布于 2018-12-12 16:35 435次浏览

经由过程语音旌旗灯号处置惩罚和模式识别让机械自动识别和明白人类口述言语,让机械经由过程辨认和明白历程把语音旌旗灯号转变为...

宣布于 2018-12-11 16:42 134次浏览

嵌入式装备网络化、u盘化、功用复杂化的趋向,使愈来愈多的、已往能够用裸奔实现的嵌入式产物,发生了运用...

宣布于 2018-12-11 15:45 302次浏览

继云盘算、大数据和人工智能这些热词以后,边沿盘算也正在远年景为了业界存眷的核心。

宣布于 2018-12-11 14:22 337次浏览

1. 安装,设置,启动FTP效劳· 安装FTP: sudo apt-get install vsft...

宣布于 2018-12-11 14:02 446次浏览

跟着产业4.0、医疗电子、智能家居、物流管理和电力掌握等快速的生长和推动,嵌入式体系应用本身的手艺特...

宣布于 2018-12-09 11:05 846次浏览

嵌入式开辟就是指正在嵌入式操作系统下停止开辟,一样平常常用的体系有WinCE,ucos,vxworks,l...

宣布于 2018-12-08 10:12 622次浏览

Imagination Technologies公布推出其面向人工智能(AI)运用的最新神经网络减速...

宣布于 2018-12-06 16:09 393次浏览

现在,2018首届西藏安防展研讨会正在拉萨举办,针对偏僻区域智能安防建立停止了多方位的议论。正在天下伶俐...

宣布于 2018-12-05 10:13 •-澳门新葡京8455com 401次浏览

嵌入式体系正在IoT家当中非常重要,那么它正在家当中是一种如何的存在,本文重要论述它正在IoT的感化和特性...

宣布于 2018-12-04 14:04 357次浏览

EAF是Embedded Application Framework 的缩写,即嵌入式运用框架。嵌入...

宣布于 2018-12-02 11:30 166次浏览

CMOS图像传感器及其接口电路用于采集视频数据。LCD取触摸屏组成人机交互模块,起到数据交互的感化,...

宣布于-澳门葡京官方投注平台 2018-12-02 11:18 169次浏览

万物互联时期,边沿盘算、人工智能、大数据剖析等手艺深度融会,成为各行业数字化转型的要害。为凝结家当力...

宣布于 2018-11-30 17:22 719次浏览

11月24日,由周立功传授主导撰写的《嵌入式软件工程要领取理论丛书》前三本,共计200万字,正在天下嵌...

宣布于 2018-11-28 16:41 2990次浏览

单片机是嵌入式体系的中心元件,运用单片机的电路要庞大很多,但正在变动和增加新功能时,带有单片机的电路更...

宣布于 2018-11-28 15:44 771次浏览

从2015年最先,人工智能观点从提出伊始便遭到市场的高度正视,从无人市肆到伶俐金融,从伶俐物流到智能...

宣布于 2018-11-27 17:12 1179次浏览

“无人”观点正在各项智能手艺屡见不鲜的配景下,获得愈来愈周全的推行。不论是无人零售实体店,照样无人售货...

宣布于 2018-11-27 17:05 558次浏览

与其他行业比拟,化工行业自己所具有的易爆、易燃、腐蚀性等特性使其正在平安防备上更具有挑战性,个中涉及到...

宣布于 2018-11-27 16:58 260次浏览

那是一个取卒业一年的低级工程师的对话,他来自二线城市,经由过程加班抗住现有的事情。一个题目调试好几年确不...

宣布于 2018-11-27 16:35 731次浏览

其实不是所有的总线旌旗灯号都要上拉。高低推电阻也有功耗题目需求思索。高低推电阻推一个纯真的输入旌旗灯号,电流也...

宣布于 2018-11-26 16:05 642次浏览

软件开发人员每每都是异常悲观的一群人,只要让他们的代码忠厚天长时间天运转便能够了,仅此而已。

宣布于 2018-11-26 15:37 433次浏览

德国康佳特科技正在2018德国慕尼黑电子展(Electronica)中表态嵌入式计算机和嵌入式视觉手艺...

宣布于 2018-11-25 11:38 363次浏览

人机界面能够汇集数据,并取云协同事情,从而能够供应壮大、可扩大、低成本的体式格局去收集和分发产业设备数据...

宣布于 2018-11-23 17:04 1024次浏览

跟着工控取种种嵌入式盘算体系的体积愈来愈小,存储装备亦进一步小型化,2.5英寸SATA、mSATA及...

宣布于 2018-11-23 16:46 185次浏览

人工智能的火爆,也带旺了很多新名词,好比“机械进修”。

宣布于 2018-11-23 10:23 822次浏览

嵌入式Linux工程师的进修需求具有肯定的C言语根蒂根基,C言语是嵌入式范畴最重要也是最主要的编程言语,...

宣布于 2018-11-22 16:14 492次浏览