thumb

    14热度

    1回答

    我试图将Rust代码添加到Android NDK示例(本机活动); 每当我将Rust代码(编译为.a)链接到.so时,它无法运行。 我去上的信息从这里得到的机器人感知生锈的编译器和“独立的工具链” https://github.com/mozilla/rust/wiki/Doc-building-for-android 有人在提示上锈的IRC频道,我必须要提到“经验”的地方; 有没有可以传递给ru

    3热度

    3回答

    下面是thumb-2指令的w后缀,它如何在没有它的情况下更改指令的语义?搜索结果非常嘈杂,我没有得到答案。 addw r0, r1, #0

    0热度

    1回答

    我有我自己的ARM asm(32位ARM/NEON)。从这个汇编代码我称之为是用C实现的东西像这样一些功能: ARM NormCorrS0_S0_S0_ PROC ... BL ConvolveC4 <-- implemented in C/C++ ... 1)如果ARM-ASM意识到ConvolveC4是的Thumb2,这是什么需要做的调用它,并切

    1热度

    1回答

    我正试图在ARM M4汇编中调用printf并遇到一些问题。目的是在R1中转储内容。该代码是像我满足的是,当把“output_string”地址为R0以下 .data .balign 4 output_string: dcb "content in R1 is 0x%x\n", 0 .... .text .... push {r0, r1}

    4热度

    1回答

    使用GDB调试ARMv7二进制文件时,除了查看指令长度以外,有没有办法找出CPU当前处于哪种模式? (ARM,Thumb)

    1热度

    1回答

    我在一篇研究论文中读到,当使用拇指指令时,代码大小会减小,但有时这会导致指令数量增加,从而使拇指执行速度变慢。但是指数如何增加?是否像拇指指令太复杂的指令分成多条指令?这是我的直觉。想要验证我是否以正确的方式思考。

    1热度

    1回答

    目前我试图研究指令空间或ARMv7处理器的重新分区,参见参考资料。找到文档here。目前我有一个令人困惑的细节,那就是处理器如何在一些指令对之间消除歧义。 让我们例如考虑以下两个拇指操作的指令: A8.8.18 B:编码T3 +-+-+-+-+-+-+-------+-----------+-+-+--+-+--+---------------------+ |1|1|1|1|0|S| cond

    2热度

    1回答

    我试图在Cortex M3上运行一些ARM代码。我用Thumb编写的大部分代码都是用C语言编写的 - 但对于某些函数,我希望能够运行正常的ARM代码(据我了解,这在M3上是可行的)。 所以...... 原来的C代码和汇编: int donothing(int a) { return a; } 00000068 <donothing>: 68: e52db004 push

    2热度

    1回答

    我目前正在使用Cortex-M3微控制器上的汇编程序进行一些操作。我不确定这是否重要,但在这里你去。 我需要写入一个值到内存中的某个地址。这里是我的尝试: LDR R4, =__cs3_interrupt_vector_cortex_m STR R4, [=VTOR] 但好像我需要相对于PC寄存器VTOR地址引用。问题是如果有一种方法不引用相对地址,并让它自动执行(以便它基本上看起来像我

    1热度

    2回答

    我读到Cortex-M3中只有拇指指针,无论何时写入PC,我们都必须确保目标地址LSB为1以确保处理器保持在拇指模式下。另外,当我们使用'BX reg'时,reg值必须有LSB = 1来启用拇指模式。 我们在cortex-m3中使用'B标签'的情况如何?由于16位/ 32位指令与偶数地址对齐,因此此“标签”将具有LSB = 0的值。 'B标签'不等于'PC:=标签'吗? 'B标签'和'BL标签'特