Questions tagged «embedded-systems»

“嵌入式系统是为大型系统中的特定控制功能而设计的计算机系统,通常具有实时计算约束。” 迈克尔·巴尔。“嵌入式系统词汇表”。中微子技术图书馆。检索2007-04-21,从Wikipedia复制。

5
在嵌入式系统中为单个阵列分配大量堆栈有缺点吗?
我通常可以毫无疑问地确定某些数据是全局的,静态的还是在堆栈上(这里没有动态分配,因此不使用堆)。我也看过几个Q / A如这一个,但我的问题是更具体的,因为它涉及到比较系统内存中的数据,庞大的数额巨大。 我正在尝试改进的现有代码(设计,可能出现的问题,性能等)。该代码在只有4KB RAM的旧8位MCU上运行。在这段代码中,我将使用几乎1KB的数组(是的,在4KB RAM系统上为1KB)。使用此数组的每个字节,这不是问题。问题在于此数组是文件在其中声明的静态数组,因此其生命周期与程序之一相同(即可以视为无限)。 但是,在阅读了代码之后,我才发现该数组不需要无限的生命周期,它是以完全过程性的方式构建和处理的,因此我们应该只能在使用它的函数中声明它,这样,它将在堆栈上,因此我们将节省此1KB RAM。 现在的问题是:这是个好主意吗?从设计的角度来看,如果不需要无限/全局生命周期,则它属于堆栈。但是,嘿,这是4KB中的1KB,这样分配25%的RAM是否没有任何缺点?(可能是堆栈的50%或更多) 有人可以在这种情况下分享经验吗,还是有人在考虑是否有任何合理的理由不将此数组放在堆栈中?我正在寻找技术缺陷以及对设计的评论。 我唯一意识到的是,进入此功能时,我必须确保实际上有1KB的可用堆栈。也许这就是我必须采取的所有措施,也许不是。

3
OO C公共和私有功能的典型命名约定是什么?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 简短问题 有一种典型的方式来命名OO C项目的“公共”和“私人”成员吗? 背景 我完全理解公共和私营成员没有真正在C语言中存在。但是,像大多数C程序员一样,我仍然将成员视为公共或私有成员,以维护OO设计。除了典型的面向对象的方法,我发现我的自我下面,让我更容易分辨哪些方法的模式(见下面的例子),意味着对外界VS私有成员可能有更少的检查/更有效等...是否存在针对此类问题的标准或最佳实践,或者下面的示例是解决此问题的好方法? 标题示例 #ifndef _MODULE_X_H_ #define _MODULE_X_H_ bool MOD_X_get_variable_x(void); void MOD_X_set_variable_x(bool); #endif /* _MODULE_X_H_ */ 范例来源 // Module Identifier: MOD_X #include "module_x.h" // Private prototypes static void mod_x_do_something_cool(void); static void mod_x_do_something_else_cool(void); // Private Variables static bool var_x; // Public Functions - Note the upper …

1
为什么要花费数小时才能通过MRO解码来自“好奇号”流动站的传输?
NASA的这段视频片段说,来自火星侦察轨道器(MRO)中继的“ 好奇号”的数据将被存储几个小时,然后传输到地球(大约需要14分钟),此后,工程师需要花费几个小时才能解码数据。 从我阅读的内容来看,如果需要,MRO似乎可以用作Curiosity的备用通信设备。 在好奇号降落的情况下,我认为MRO会一直存储数据,直到它绕着红色星球绕行,并在传输之前与地球有直接的视线(然后,我只是在这里推测),我可以了解。 但是,为什么在地球上收到MRO中继的信号后,NASA工程师要花几个小时来解码呢? (加分点:解码MRO信号通常需要几个小时吗?)

4
在没有监督的情况下学习嵌入式系统开发[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我今年毕业,获得了第一份工作,涉及C编程,Linux管理和嵌入式系统开发。我对自己的工作感到很满意,但是我恐怕不会成为该领域的成功程序员。我现在是一个孤独的开发人员,我的团队成员是硬件专家,没有人可以指导我或不能以嵌入式编程的方式教我,我必须自己全部学习。 所以这是我的问题。是否可以从入门级职位开始成为高级嵌入式系统开发人员,而无需高级程序员的任何监督?我怎么能成为一个人(也许在论坛,IRC频道,好教科书的帮助下)?需要多长时间? 更新:到目前为止,我已经收到了一些有用的答案,但是我意识到我需要关于该主题的一些具体指示。 因此,这是我的特殊问题: 有哪些好的教科书可以用来学习嵌入式开发? 哪些专业的在线社区对有抱负的嵌入式开发人员会有所帮助(不计算诸如Stack Overflow,Reddit等常规内容)? 致力于嵌入式开发的最有趣的博客是什么?

4
在C中省略“析构函数”是否会使YAGNI过分?
我正在使用类似于OO的技术来开发C中的嵌入式媒体应用程序。我的“类”是.h / .c模块,它们使用数据结构和函数指针结构来模拟封装,多态和依赖项注入。 现在,人们期望一个myModule_create(void)功能会与之myModule_destroy(pointer)对应。但是,在嵌入的项目中,切勿释放实际实例化的资源。 我的意思是,如果我有4个UART串行端口,并使用所需的引脚和设置创建4个UART实例,则绝对没有理由要在运行时的某个时候销毁UART#2。 因此,遵循YAGNI(您将不需要它)原则,我应该省略析构函数吗?这对我来说似乎很奇怪,但我想不出对他们有什么用。设备下电后释放资源。

1
“通用系统”对Java SE Embedded意味着什么?
Oracle网站说了有关Java SE Embedded 许可证的内容: 开发是免费的,但在除通用系统以外的任何其他产品上部署时都需要版税 “通用系统”在这里是什么意思? 我们在全国都有传感器网络。在我们安装的每个盒子上,都有一块基于微控制器的板,可以从环境中获取数据,并通过串行端口将数据发送到基于ARM的嵌入式板。在此主板系统上,有一个Java进程,该进程使用JMS读取数据并将数据提交到我们的中央服务器。这被归类为通用系统吗? 抱歉,我在这里问这个。我们在伊朗,这里没有甲骨文办公室要问。

3
自定义堆分配器
大多数程序在堆分配方面可能很随意,甚至在某种程度上,功能性编程语言更喜欢分配新对象而不是修改旧对象,并使垃圾回收者担心释放对象。 但是,在嵌入式编程中,静默扇区中,由于内存和实时限制,在许多应用程序中根本无法使用堆分配。每种类型将要处理的对象数量是规范的一部分,并且所有内容都是静态分配的。 游戏编程(至少对于那些雄心勃勃地致力于推动硬件发展的游戏)有时介于两者之间:您可以使用动态分配,但有足够的内存和软实时约束,因此您不能将分配器视为黑匣子,更不用说使用垃圾回收了,所以您必须使用自定义分配器。这是C ++仍在游戏行业中广泛使用的原因之一。它可以让您执行以下操作:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2271.html 在这两个领土之间还有哪些其他域?除游戏外,在哪里大量使用自定义分配器?

3
在软件中,“嵌入式”一词意味着什么?
因此,我一直在寻求将我的知识扩展到嵌入式和较低级别的硬件编程中,但是,每次寻找“嵌入式”工作时,它总是高级的东西。对我而言,这没有任何意义。 那么“嵌入式”到底需要什么呢?当我想到嵌入式系统时,我想到的是较低级别的微控制器编程等。如果嵌入式不是此的适当标题,那么我应该搜索什么?

2
嵌入式Linux与Windows Embedded Standard 7 [关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 3年前关闭。 确定寻找一些真正的主观答案。我的公司传统上是Linux商店,我们生产和销售用于视频安全的专用盒。我们最近决定建造一个Embedded Windows Standard 7盒子,因为它缩短了我们的开发速度并缩短了上市时间,并且因为所有可用的工具都可用于Windows。 我正在寻找一些可靠的答案,因为它与WES7与Linux的安全性有关吗?WES7的稳定性如何,容易遭受黑客攻击,病毒攻击等。从市场角度来看,相比Linux使用WES7的好处是什么?有吗 台式机Windows 7和嵌入式Windows Standard 7的安全性之间有哪些比较? 任何答复将不胜感激。谢谢
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.