你认为程序员在桌面环境下工作的心态有什么不同?(windows,linux,什么的)还有人在做嵌入式系统的工作?
我可以想到的一个简单例子是,在嵌入式环境中,我总是检查malloc是否为空。我见过的大多数代码中,目标桌面显然不勤奋地检查malloc返回值。
还有其他思维差异的例子吗?
发布于 2009-02-12 06:00:32
有趣的是,您在示例中特别提到malloc()。
在我工作过的每一个硬实时、深嵌入式系统中,内存分配都是专门管理的(通常不是堆,而是固定的内存池或类似的东西).而且,只要有可能,所有内存分配都会在初始化过程中提前完成.这比大多数人想象的要容易得多。
malloc()易受碎片的影响,不确定,并且不讨论内存类型之间的问题。有了内存池,你可以有池的位置/从超级快SRAM,快速DRAM,电池支持RAM (我见过),等等。
还有其他一百个问题(回答您最初的问题),但是内存分配是一个很大的问题。
另外:
对硬件平台的尊重/知识-不自动包含硬件是完美的,甚至是某些语言特性的functional
的概念相当满意。
发布于 2009-02-12 04:53:02
桌面程序员认为资源实际上是无限的。内存,计算能力,驱动空间。那些永远不会用完。嵌入式程序员专注于所有这些。
哦,嵌入式程序员也经常要担心内存对齐问题。台式机不需要。手臂芯片很好用。x86芯片不能。
发布于 2009-02-12 04:37:42
我的桌面环境有这样的想法:“嗨,我总是可以发布一个更新或者补丁来解决这个问题。”在嵌入式设计中,你会得到更多“这必须工作,因为我们不想召回设备或发布一个更长的补丁程序。”
https://stackoverflow.com/questions/540025
复制相似问题