当前位置:首页 > 嵌入式 > 嵌入式分享
[导读]一开始,开发人员从零开始创建所有的代码,这是困难的,耗时的,痛苦的。开发人员努力工作,微控制器供应商生成构建环境和平台来抽象低级别的启动代码和构建环境。开发人员很高兴,现在能够更快地编写他们的应用程序代码。虽然提供预配置的构建环境是有帮助的,但是有五个原因,开发团队应该考虑构建自己的C/C++环境,而不是使用他们的单片机供应商提供的环境。

一开始,开发人员从零开始创建所有的代码,这是困难的,耗时的,痛苦的。开发人员努力工作,微控制器供应商生成构建环境和平台来抽象低级别的启动代码和构建环境。开发人员很高兴,现在能够更快地编写他们的应用程序代码。虽然提供预配置的构建环境是有帮助的,但是有五个原因,开发团队应该考虑构建自己的C/C++环境,而不是使用他们的单片机供应商提供的环境。

理由1-了解你的应用程序的基础

许多单片机供应商在创建开发平台方面做了很多工作,他们的客户可以使用这些平台开发嵌入式产品。毕竟,如果客户完成了所有通常在每个产品上完成的工作,比如编写链接器脚本、启动代码、链接标准库和初始化微控制器,他们将从中受益。客户可以忽略这个标准代码,而专注于更快地编写他们的应用程序,这将使他们更快地进入市场,并且,一般来说,销售更多的微控制器。

我看到的问题是,开发人员忽略了底层代码,忽略了他们的构建环境是如何工作的,甚至忽略了与项目相关的内容!更糟糕的是,供应商编写的代码是作为通用代码开发出来的,是一个适合所有解决方案的"一刀切"。这可能不适合任何一个特定的应用。

创建您的构建环境,在这里您编写链接器,启动代码,设置C/C++运行时,并创建您的制作文件,确保您了解您的应用程序和环境的基础。你知道哪里有什么原因。您知道您使用什么程序集和C/C++标记来构建应用程序以及原因。实际上,您甚至将了解C/C++运行时环境,以及它如何影响代码大小和执行效率。如果你只使用你所提供的东西,或者回顾其中的东西,你就会错过一些重要的细节。

原因2-代码优化

默认情况下,提供给开发人员的许多构建环境可能被配置为嵌入式开发,但它们通常被配置为通用解决方案。该解决方案旨在满足一般开发商或公司的需求。不幸的是,结果往往是代码膨胀,不需要库函数,甚至是复杂的读取代码。例如,看看很多供应商提供的代码。它们将包括来自C库的标准系统调用,如打印机、退出、杀死、读、写等。使用这些系统调用的最小实现可以很容易地添加超过10千字节的代码空间。也许这对许多团队来说并不是什么大问题,因为他们使用大型32位处理器,但是对于其他嵌入式产业,这可能会制造或破坏一个应用程序!(从闪烁着LED的平台代码创建一个基线项目并发现它编译到超过60千字节的代码,这种情况并不少见!)。

另一个优化开发人员经常忽略了默认情况下不会进入构建系统的小性能技巧。例如,如果我使用具有特殊的无等待RAM的部件,我可能会设置我的启动代码,将中断向量放到无等待RAM中,以便从我的中断中获得更高效、确定性的运行时行为。不幸的是,我经常看到的由供应商提供的代码并没有做到这一点。如果您不构建或仔细检查您的环境,您将浪费时钟周期,并可能增加系统的响应时间。原因#3-更容易与快速和DevOps流程的集成

使用快速和开发是一个必要的过程,正在许多嵌入式团队中流行。在嵌入式社区中获得动力的快速方法包括测试驱动开发(TDD)。开发人员开发计划所包含的不仅仅是持续集成和持续部署(CI/CD),但这也是我遇到的大多数团队都专注的地方。

使用单片机供应商提供的环境,利用TDD和CI/CD可能会更麻烦和复杂。这是因为他们没有考虑你需要遵循哪些流程来交付产品,只是你需要什么来让他们的处理器启动和运行。结果可能是一个构建环境,不能很好地与你的其他过程和需求相匹配。我见过团队为了让所有这些过程和工具都能很好地结合在一起而艰难地通过各种解决方案,有时甚至是双重环境。

理由4-灵活性

有时候,我发现一个已经为我建立的环境很难定制。有时,整个构建系统中有太多的小挂钩,因此自定义它所需的时间是从头开始所需时间的两倍。例如,您可能希望禁用一个库,但却发现这样做会导致几十个编译错误,迫使研究时间去解决。

我发现一个有帮助的灵活性方法是IDI灵活性。我经常发现不同的开发人员对于他们想要使用的IDES和文本编辑器有不同的偏好。例如,一个人可能喜欢崇高的文本,另一个视觉工作室的代码,或另一个供应商提供的IDI。开发人员经常争论,试图获得他们喜欢的工具作为团队的选择。如果您构建您的环境,每个人都可以使用他们的首选工具,这有助于提高开发人员的效率。

理由5-构建系统定制

我相信建立自己的C+C++环境的最大原因是能够定制它。正如我提到的,没有两个项目是相同的。有些共同点是存在的,但是您可以通过定制构建系统来显著地提高代码的大小和性能。有时,在你从头开始之前,你无法理解需要什么样的定制。自定义您的C/C++环境和构建系统的能力可以显著影响您的项目的成功。

结论

为嵌入式应用程序创建定制构建系统有许多好处。今天我们探索了一些可能激起你兴趣的东西。一开始,进行这样的努力可能看起来很复杂,并且充满潜在的问题。幸运的是,这个过程远没有你想象的那么复杂。在不到一周的时间里,几乎任何嵌入式处理器都可以研究和实现定制构建系统。此外,该构建系统是一个高度调整、优化良好的系统,可以帮助为您的应用程序奠定基础,并构建能够支持您的产品数年的流程。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭