问题标签 [embedded]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
2270 浏览

c - 什么时候应该在嵌入式系统中使用类型抽象

我曾在许多不同的嵌入式系统上工作过。他们都使用typedefs (或#defines)来表示诸如UINT32.

这是一种很好的技术,因为它可以让程序员了解类型的大小,并使您更加意识到溢出等的机会。

但是在某些系统上,您知道编译器和处理器在项目的整个生命周期内都不会改变。

那么,什么会影响您创建和执行项目特定类型的决定呢?

编辑我想我设法失去了我的问题的要点,也许真的是两个。

使用嵌入式编程,您可能需要特定大小的接口类型,并且还需要处理受限资源,例如 RAM。这是无法避免的,但您可以选择使用编译器中的基本类型。

对于其他一切,类型的重要性较低。
您需要小心不要导致溢出,并且可能需要注意寄存器和堆栈的使用。这可能会导致你UINT16UCHAR。但是,使用诸如UCHAR可以添加编译器“绒毛”之类的类型。因为寄存器通常较大,一些编译器可能会添加代码以强制将结果转换为类型。

可以变成 这是不必要的。

所以我认为我的问题应该是:-

考虑到嵌入式软件的限制,对于一个需要很多人参与的项目来说,最好的策略是什么——并不是所有的人都具有相同的经验水平。

0 投票
9 回答
3657 浏览

debugging - Best Ways to Debug a Release Mode Application

Im sure this has happened to folks before, something works in debug mode, you compile in release, and something breaks.

This happened to me while working on a Embedded XP environment, the best way i found to do it really was to write a log file to determine where it would go wrong.

What are your experiences/ discoveries trying to tackle an annoying Release-mode bug?

0 投票
7 回答
45659 浏览

c++ - 什么是跳台?

有人可以解释跳转表的机制吗?为什么嵌入式系统需要?

0 投票
13 回答
58211 浏览

c++ - 在 C/C++ 中使用 % (模数)有什么替代方法吗?

我曾经在某处读到模数运算符在小型嵌入式设备上效率低下,例如没有整数除法指令的 8 位微控制器。也许有人可以证实这一点,但我认为差异比整数除法运算慢 5-10 倍。

除了保持计数器变量并在 mod 点手动溢出到 0 之外,还有其他方法吗?

与:

我目前这样做的方式:

0 投票
4 回答
2875 浏览

windows - Windows XP 对远程 NDIS 的支持

我正在考虑开发一种需要通过 USB 支持以太网的设备(托管在 Linux、XP 和 Vista 中)。据我了解,Vista 和 Linux 支持行业标准 USB CDC。然而,在经典的 Windows 风格中,XP 只支持它自己的 Remote NDIS。所以,现在我正在考虑只是鞠躬并通过 RNDIS 进行操作,而不是为 XP 滚动我自己的 CDC 驱动程序。

我一直在阅读一些较旧的文档,这些文档说即使 XP 在 NDIS 中也存在很多问题(惊喜!)。有人对 XP 的 RNDIS 驱动程序有经验吗?它们对产品开发安全吗?任何见解将不胜感激。

0 投票
2 回答
7401 浏览

c - 在程序中检查网络状态和控制 PPP

所以我在 linux 下使用蜂窝调制解调器运行 PPP。我正在编写的程序需要在发送任何数据之前知道链接是否处于活动状态。

我有哪些检查选项

  • 如果链接可用
  • 如果它路由到我控制的服务器(它不会像我之前所说的那样进入互联网)

另外,重新启动它的最佳方法是什么 - 我希望程序控制它何时启动和停止,所以我认为 init.d 不合适。usingsystem()似乎没有给出 PID,除了调用fork()的笨拙之外还有其他选择吗?exec??()

C on Linux on ARM(使用 buildroot 的自定义分发)。

0 投票
4 回答
592 浏览

localization - 如何在微控制器上支持多种语言?

我目前正在为中国市场升级产品。目标是带有 QVGA 显示器的 ARMTDMI7。我在网上找到的大多数资源都是针对桌面或 Web 编程而不是嵌入式设备的。

  • 谁能推荐一些可能有用的工具和资源?
  • 提取文字字符串和与翻译人员交流的最佳技术是什么?
0 投票
8 回答
3581 浏览

gps - GPS 和嵌入式开发 - 在哪里可以找到资源?

我刚刚开始设计一些嵌入式设备,并且正在寻找资源。

我想要做的是将 GPS 接收器连接到轻型 SBC 或 mini-ITX、基于 x86 的计算机,并跟踪遥控车辆的位置/进度。

理想情况下,这可以转变为制造一些业余爱好的半自动车辆。

但我需要开始的是一个用于 GPS 编程的开发板。

您使用了哪些板/包,我在哪里可以找到 [最好是开源的] 开发?

0 投票
22 回答
1909 浏览

c - C(或任何)编译器确定性性​​能

在处理最近的一个项目时,一位客户 QA 代表拜访了我,他问了我一个我以前没有真正考虑过的问题:

您如何知道您使用的编译器生成的机器代码与 c 代码的功能完全匹配并且编译器是完全确定的?

对于这个问题,我完全没有回答,因为我一直认为编译器是理所当然的。它接收代码并输出机器代码。我怎样才能开始测试编译器实际上并没有添加我没有要求的功能?或者更危险地以与我期望的方式略有不同的方式实现代码?

我知道这对每个人来说可能并不是一个真正的问题,实际上答案可能只是......“你已经过了桶并处理它”。但是,在嵌入式环境中工作时,您隐含地信任您的编译器。我如何向自己和 QA 证明我这样做是正确的?

0 投票
6 回答
8261 浏览

linux - 在家学习内核黑客和嵌入式开发?

我总是被内核黑客和嵌入式系统的世界所吸引。
有没有人有关于开始弄乱这些东西的好教程(+容易获得的硬件)?
诸如用于编写驱动程序的工具包之类的东西,它们带有良好的文档并且价格合理?

谢谢!