thumb

    1热度

    2回答

    我正在为需要链接到现有THUMB代码的嵌入式核心(ARM7TDMI)编写THUMB代码。我正在使用GNU ARM嵌入式工具链(link)。我无法让链接器将现有的外部代码视为THUMB;它似乎总是认为它是ARM。我链接到的现有代码绝对是静态的,不能更改/重新编译(基本上,它是一个位于ROM芯片上的普通二进制文件)。 下面是一个例子程序,multiply.c,演示该问题: extern int ext

    0热度

    1回答

    在ARM/Thumb架构中,单个CPU中有16个(r0-r15)寄存器。此外,Thumb-Instruction-Set只能使用前8个(r0-r7)寄存器和r13,r14和r15寄存器。但最后5个(r8-r12)寄存器仍然在cpu中。我们如何使用这些Hi(r8-r12)寄存器? 最近,我在设计ARM Cortex-M0 CPU的保护方案。在我的项目中,我想用r9和r10来存储一些信息。因为其他指令

    0热度

    1回答

    如何为UWP Windows 10中的ScrollBar定制样式? 我找到了this SO code。 只用WPF工程... 但我不能使用UWP ControlTemplate触发器...

    0热度

    1回答

    我对ARM很新,希望能够将寄存器中的值与已知的十六进制值进行比较。 ;stuff CMP r2, #0x41 CMP r2, #0x45 CMP r2, #0x49 etc... 显然这得到相当繁琐了一段时间后,我想一定有办法在R2的值比较:目前我使用单独的CMP指令,因此代码看起来像这样这样做一次同时显示多个十六进制值。 新手问题的答案,感谢您提前的帮助。

    0热度

    1回答

    我正在用Keil uV5使用STMF4。我写了一个固件更新程序,它通过一个RS232将新的固件补丁复制到RAM中,然后将其写入位于0x08020000的ROM位置,该位置位于应用程序代码末尾以上的位置。 尽管是在低地址测试过的代码副本完美副本,但0x08020000上的修补程序不会运行,并且会立即发生硬故障。我已经设置了分散文件以包含更高的ROM地址和mem映射ini文件。所有40kb的应用程序完

    0热度

    1回答

    我正在尝试反汇编和修改一些用于arm的代码。拆解显示了指令宽度说明一些指令,例如: 80002be: f44f 5360 mov.w r3, #14336 ; 0x3800 80002c2: f2c4 0302 movt r3, #16386 ; 0x4002 80002c6: f44f 5260 mov.w r2, #14336 ; 0x3800 80002ca: f2c4 0202 mo

    1热度

    1回答

    我正在使用Tizen Studio,并且我想编译没有使用Thumb的Mobile 3.0本机应用程序。但是,当我使用Debug配置构建应用程序时,我看到-mthumb标志,我不知道如何删除它。 Tizen工作室2.0

    0热度

    1回答

    所以我正在学习程序集,我写了一个程序来总结我在'data_type'中定义的值。 大气压我有手动设置变量“NUM”等于值的“DATA_TYPE”的数量,以确保环总结它们。 我想知道是否有更好的方法来做到这一点? 或者,如果有声明变量“民”动态地承担起“DATA_TYPE”值量的方法吗? 在此先感谢! AREA Sum loop, CODE, READONLY ENTRY num EQU 5

    2热度

    3回答

    我有一个随机数发生器,它在恒定时间内运行。 原型此功能如下: uint8_t rand(); 我希望能够做的就是创建一个随机返回一个uint8_t使得输出为0,最大值之间的函数,其中最大的是最大数量要退回。这种功能的原型将是: uint8_t randi(uint8_t max); 有算法在线做这个和堆栈溢出。例如,https://stackoverflow.com/a/6852396/1

    0热度

    1回答

    我试图理解为什么一些Cortex-M0代码在链接与未链接时行为不同。在这两种情况下,它都被加载到0x20000000。尽管我尽了最大努力通过将-fPIC传递给编译器来生成位置无关的代码,但bl指令在代码通过链接器后似乎有所不同。我是否正确阅读这些内容,是否仅仅是ARM Thumb中链接器工作的一部分,并且有没有更好的方法来生成位置无关的函数调用? 链接: 20000000: 20000000: