当前位置:  开发笔记 > 运维 > 正文

工作站和嵌入式程序员之间的心态差异

如何解决《工作站和嵌入式程序员之间的心态差异》经验,为你挑选了4个好方法。

你认为程序员在桌面环境(windows,linux,等等......)工作和在嵌入式系统上工作的人之间的思维方式有何不同?

我能想到的一个简单例子是,在嵌入式环境中,我总是检查malloc是不是NULL.我看到的大多数代码目标桌面肯定不会在检查malloc返回值时勤奋.

心理差异的任何其他例子?



1> Dan..:

有趣的是你在你的例子中特别提到了malloc().

在我所使用的每个硬实时,深度嵌入式系统中,内存分配是专门管理的(通常不是堆,而是固定内存池或类似的东西)......而且,只要有可能,所有内存分配都是在初始化期间预先完成.这比大多数人想象的要容易得多.

malloc()容易受到碎片的影响,是非确定性的,并且不会在内存类型之间进行区分.使用内存池,您可以拥有从超快速SRAM,快速DRAM,电池支持的RAM(我已经看过它)等位置/拉出的池......

还有一百个其他问题(回答你原来的问题),但内存分配是一个很大的问题.

也:

尊重/了解硬件平台

不会自动地假设硬件是完美的甚至是功能性的

意识到某些语言方面和特征(例如,C++中的异常)可能导致事物快速横向移动

意识到CPU负载和内存利用率

意识到中断,抢占以及对共享数据的影响(绝对必要 - 共享数据越少越好)

大多数嵌入式系统都是数据/事件驱动的,而不是轮询; 当然也有例外

大多数嵌入式开发人员对状态机和状态行为/建模的概念非常熟悉



2> Steve Rowe..:

桌面程序员将资源视为几乎无限制.内存,计算能力,驱动器空间.那些永远不会用完的.嵌入式程序员专注于所有这些.

哦,嵌入式程序员也经常不得不担心内存对齐问题.桌面编码器没有.Arm芯片关心.x86芯片没有.


当然.在嵌入式系统中如此受欢迎的大多数非x86 CPU(如果它位于DWORD(32位)边界上)只会读取整数.如果要求读取非对齐的int,它们将会出错.x86很乐意读取这样​​的int,它会有点慢.

3> Suroot..:

我的桌面环境有一个想法,"嘿,我总能发布一个更新或补丁来解决这个问题." 在嵌入式设计中,您会得到更多"这必须起作用,因为我们不想回忆设备或发布更长的修补程序."



4> KevinDTimm..:

大小事项


所有的女人都说同样的话......
推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有