8得票2回答
Linux中的固件和驱动程序

根据我的理解,固件控制硬件,驱动程序与固件交互来控制硬件。这样说对吗? 在Linux中,哪些API或函数与固件进行交互?固件代码是否独立于任何操作系统(例如Linux或Windows)?

8得票4回答
Lego Mindstorms 1.0和2.0有什么区别?

我正在考虑购买Mindstorms套件(我目前没有拥有,但在大学使用了1.0版),但我对2.0版相比1.0版的优势有些疑惑。我已经看到其他帖子都说2.0版更好,但我对此有一些更具体的问题,似乎找不到任何答案。 除了2.0套件附带的不同乐高积木和传感器外,1.0版nxt砖和2.0版nxt砖之间...

8得票2回答
了解嵌入式软件中链接脚本中的NOLOAD段

根据GNU文档中有关ld的说明,一个NOLOAD节的作用如下: “(NOLOAD)”指令将标记一个节在运行时不被加载。链接器将正常处理该节,但会将其标记为程序加载器不会将其加载到内存中。 现在,关于“程序加载器”,根据维基百科的说法: 嵌入式系统通常没有加载器,而是直接从ROM中执行代码...

8得票1回答
如何黑客/反编译相机固件?(包括反编译的细节)

我想知道如何“黑进”照相机固件以添加/更改功能,特别是佳能或奥林巴斯制造的相机。 我知道这是一个复杂的话题,但是一般步骤和需要注意的问题会很有帮助。 我认为第一步是将固件加载到反编译器中(有什么推荐的反编译器吗?),并检查其内容。我承认我以前从未反编译过代码,所以这将是一个不错的挑战,有什...

8得票2回答
MIPS汇编中的两个连续分支指令?

我正在尝试逆向分析一个MIPS固件。该固件是大端编码的,用于32位r4kec处理器。 我已经使用objdump反汇编了二进制文件,以查看汇编代码的样子,一切都似乎是有效的代码,但就在代码开头,我看到以下两条指令: bfc00220 152a0001 bne t1, t2, 0x...

7得票3回答
在嵌入式环境下,#define 和 enum 有什么区别?它们是如何编译的?

这个问题已经被讨论过很多次了,我同意使用枚举是正确的选择。然而,我很好奇枚举在最终代码中是如何编译的——#define只是字符串替换,但是枚举是否为编译后的二进制文件添加了一些东西?或者在那个阶段它们都是等效的。当编写固件并且内存非常有限时,使用#define是否有任何优势,无论多么微小? ...