问题标签 [firmware]

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 投票
3 回答
3122 浏览

c - 嵌入式环境中的#define vs enum(它们如何编译?)

这个问题已经被做死了,我同意枚举是要走的路。但是,我很好奇枚举如何在最终代码中编译-#defines 只是字符串替换,但是枚举是否会向编译的二进制文件添加任何内容?或者他们在那个阶段都是等价的。在编写固件和内存非常有限的情况下,使用#defines 是否有任何优势,无论多小?

谢谢!

编辑:根据以下评论的要求,嵌入式,我的意思是数码相机。

感谢您的回答!我完全赞成枚举!

0 投票
4 回答
4064 浏览

c - 微控制器中的“printf”,它有什么用?

我在微控制器的 c 语言示例代码中看到“printf”指令,特别是在 8051 中。由于微控制器没有固定的输出显示,“printf”指令的用途是什么?

0 投票
2 回答
1801 浏览

c - 在 C 中直接从其他编译单元访问一个编译单元的静态变量

所以我正在为固件开发一个“快速而肮脏”的分析器——我只需要知道某些功能需要多长时间。仅仅打印每次花费的时间会扭曲结果,因为日志记录很昂贵——所以我将一堆结果保存到一个数组中,并在一段时间后将其转储。

在一个编译单元(一个源文件)中工作时,我只有一堆静态数组来存储结果。现在我需要跨多个文件执行此操作。我可以“复制粘贴”代码,但这会很难看(请耐心等待)。如果我将计时代码放在单独的编译单元中,制作静态变量,并在头文件中提供访问器函数,那么每次我想访问这些静态变量时都会产生函数调用的开销。

是否可以直接访问编译单元的静态变量?

我一直试图封装数据,而不是使用全局变量,但这种情况只是出于速度考虑而需要它。

我希望这是有道理的!谢谢!

编辑:好吧,看来我要问的是不可能的-你们中的任何人是否看到基本上允许我直接访问另一个编译单元的数据的替代方案?

EDIT2:谢谢你的回答巴勃罗和乔纳森。我最终接受了 Pablo's,因为在我的情况下我没有明确的位置来获取指向静态数据的指针(根据乔纳森的说法)。再次感谢!

0 投票
3 回答
3203 浏览

firmware - 是否有任何低端手机(非智能手机)的开源固件?

这个问题是关于价格在 50 到 100 美元之间的低端手机,不像 iPhone 等智能手机或支持 Android 的手机。

诺基亚 1280、1800 就是一些例子。

  1. 我想在这样的手机中自定义联系人、短信等基本功能。所以我要么想要一个与一部或多部此类手机兼容的固件的开源代码,要么我想知道可以在这个成本范围内出售手机以及固件源代码的供应商?

  2. 这些手机中是否运行任何操作系统?还是只是一个单线程固件程序?

0 投票
1 回答
1051 浏览

monitoring - SNMP 转发到 DD WRT 以进行日志记录?

我在不同位置使用专有 GRE VPN 连接的多个路由器。我想做的是将这些专有路由器的 SNMP 功能与每个网络上的 DD WRT 结合使用。

我想使用 DD WRT 对专有路由器的 SNMP 端口设置进行带宽监控。

这可能吗?

0 投票
1 回答
2440 浏览

bios - 如何转储/写入 MINI PCI-e 无线 EEPROM,或提取/编辑 INSYDE bios 映像

我想为我的笔记本电脑编辑最新的 bios 更新,并将新卡的设备 ID 添加到无线白名单中。bios 是 insyde,之前下载 bios 更新只是为您提供了您可以在 EZH2O 中编辑的 FD 文件。但是,新的 bioses 提供了一个 .bin 文件,我不确定如何从中提取 fd 文件。蜂巢思维有什么想法吗?

如果做不到这一点,我可以尝试转储 HP 卡的 eeprom,然后将适当的代码写入新卡以使其绕过 bios 检查。我知道就驱动程序而言还会有更多问题。但我只需要这部分的帮助。到目前为止,我一直无法让 linux ethtool 为我工作。还有其他想法吗?

非常感谢

0 投票
3 回答
6311 浏览

linux - Linux-Based Firmware,如何实现更新的好方法?

我正在使用 alix 2d13 开发基于 linux 的设备。

我开发了一个脚本,负责创建映像文件、创建分区、安装引导加载程序 (syslinux)、内核和 initrd,并且负责将根文件系统文件放入正确的分区。

配置文件位于 tmpfs 文件系统上,并在系统启动时由软件创建,该软件读取驻留在自己分区上的 XML 文件。

我正在寻找一种更新文件系统的方法,并且我考虑了两种解决方案:

  • 固件更新是一个压缩文件,可以包含内核、initrd 和/或 rootfs 分区,这样,在重新启动时,initrd 会注意将 rootfs 映像添加到正确的分区;
  • 固件更新是一个压缩文件,其中可能包含两个 tar 存档,一个用于引导,一个用于根文件系统。

每个解决方案都有自己的优势: - 文件系统映像可以让我删除任何未使用的文件,但需要大量时间,并且会快速杀死紧凑型闪存;- 存档更小,更新所需的时间更少,但我很快就会在根文件系统上拥有 caos。

另一种解决方案可能是放置一个文件列表并将一个更新前/后更新脚本放入 tar 存档中,因此任何不驻留在文件列表中的文件都将被删除。

你怎么看?

0 投票
3 回答
16009 浏览

testing - 今天测试固件时使用了哪些可用的软件工具?

我是一名软件工程师,将/可能被聘为固件测试工程师。我只是想了解市场上用于测试固件的一些软件工具。您能否说明它们并解释一下它们为固件提供的测试类型?提前致谢。

0 投票
1 回答
607 浏览

reverse-engineering - 可以自定义相机固件吗?

我的相机有固件更新。理论上是否可以

反编译、理解、定制?

0 投票
2 回答
11521 浏览

android - 是否可以禁用 Android 固件更新通知?

我有一个在手机上运行的应用程序,它不会以任何方式被触摸或交互。我希望我的应用程序 24/7/365 正常运行。

我遇到的唯一问题是每隔几周左右,就会弹出一条关于更新设备固件的通知。它不会立即中断应用程序的运行,但在没有人接受/拒绝固件下载的几天后,应用程序崩溃了。

是否有任何方法(以编程方式或通过更改手机设置)禁用这些固件更新弹出窗口,或一般禁用自动固件更新?

非常感谢!!