arm相关内容
这似乎是一个愚蠢的问题,但我真的无法说出我错过了什么 在 ARM 7 上: 我在寄存器 0 中有一个 8 位数字,比如说 10110111 我想通过这个“循环"并用当前位做一些事情,直到 8 位完成,但是我在这个简单的问题上遇到了很多麻烦.. 我的逻辑是: - 获取 r0 中数字的 MSB/LSB- 将其移至 r1-lsl/lsr r0 但是从这个逻辑来看,我不知道你将如
..
我知道当操作系统/硬件在不同线程的执行之间切换时,它管理存储/恢复每个线程的上下文,但是我不知道很多细节.我的问题是:是否有任何寄存器可用于在线程之间共享信息?在 x86 中?米普斯?手臂?等等,.linux?窗户? 非常感谢任何关于如何做到这一点的建议. 解决方案 乍一看,您的问题似乎很合理.其他人试图直接回答这个问题.首先,我们有两个相当模糊的概念, 话题 注册 如
..
我有一个关于 ARM BLX 指令的问题,特别是关于 BLX RX 指令的问题.在 ARM 手册上,它指出对于 BLX 标签,标签应在 32MB 范围内.在我的代码中,我将 R0 寄存器设置为指向地址 1.我当前的地址和address1(目的地址)之间的距离大约是0x05000000. 当我到达指令时,它崩溃了(address1 中的代码是 ARM,所以 T 模式没有问题).在 BLX 中使
..
我的应用中有一些代码向我发送未捕获异常的堆栈跟踪. "0 CoreFoundation 0x3ad073ff + 186",“1 libobjc.A.dylib 0x39412963 objc_exception_throw + 30","2 CoreFoundation 0x3ad0729d + 0","3 基金会 0x39f3b7b3 +
..
我遇到了一个奇怪的“未定义引用"编译错误,我似乎找不到解决方法.我正在尝试使用 Yocto Project 生成的 ARM 编译器 (arm-poky-linux-gnueabi-gcc) 为我的 Gumstix Overo 配置/编译 PAM 1.1.6,但在编译过程中我不断收到以下错误: .libs/pam_rhosts.o:在函数“pam_sm_authenticate"中:模块/pam_
..
我正在测试使用 MSBuild 为 Windows Phone 和 Windows Store 执行现有 C++ 项目的 ARM 构建的可行性.在带有 VS2012 的 Windows 7 上,我打开了 Visual Studio 2012 ARM 开发人员命令提示符.然后我试了一下,看看会发生什么: C:\cryptopp>msbuild/t:Build/p:Configuration=Deb
..
将 uint32x4_t 类型的 r1、r3 和 r4 加载到 NEON 寄存器中,我有以下代码: r3 = veorq_u32(r0,r3);r4 = r1;r1 = vandq_u32(r1,r3);r4 = veorq_u32(r4,r2);r1 = veorq_u32(r1,r0); 我只是想知道 GCC 是否真的将 r4 = r1 翻译成 vmov 指令.看着反汇编的代码,我并不感到
..
我最近运行了以下命令来安装 qemu. sudo apt-get install qemu-usersudo mkdir -p/opt/arm/10wget 'https://developer.arm.com/-/media/Files/downloads/gnu-a/10.2-2020.11/binrel/gcc-arm-10.2-2020.11-x86_64-arm-none-linux-
..
来自 android 开发者网站,https://developer.android.com/distribute/best-practices/develop/64-bit 很明显,从 2019 年 8 月 1 日开始,在 Google Play 上发布的应用程序将需要支持 64 位架构. 我们当前的应用具有 armeabi-v7a、arm64-v8a、x86 ABI 的本机库,但没有 x
..
核心 - ARM Cortex-M4 编译器 - GCC 5.3.0 ARM EABI 操作系统 - 免费实时操作系统 我正在使用 gcc 库函数 _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn,void*); 进行堆栈回溯; 在我们的项目中,MSP 堆栈用于异常处理.在其他情况下,使用 PSP 堆栈.当我在异常
..
DSB 是 DMB 的超集吗? 如果不考虑性能,可以用 DSB 代替 DMB 解决方案 DSB 是 DMB 的超集,所以可以用 DSB 如果性能不是问题. 来自 Cortex-A 系列程序员指南: 数据同步屏障 (DSB) 这条指令强制核心等待所有挂起的显式数据访问完成,然后再进行任何可以执行额外的指令阶段.没有影响预取指令. 数据内存屏障 (DMB)
..
根据arm 信息center vadd 可以有条件地执行,但是当我尝试时 vaddeq.f32 d0,d0,d1 Xcode 返回 65: 指令不能有条件 -- vaddeq.f32 d0,d0,d1 我注意到的一件事是,似乎只有 NEON 指令会出现此错误.VFP 指令不会产生这些错误. 是否必须设置编译器标志才能启用 NEON 条件指令? 解决方案 ARM 架构参考手册说
..
我的 JavaFX 应用程序的一个用例是在一侧加载图像,通过 TCP 套接字对其进行序列化,以在另一侧将其显示为 JavaFX 图像. 为了实现这一点,我使用 SwingFXUtils.fromFXImage() 和 SwingFXUtils.toFXImage() 来创建和读取一个 BufferedImage 可以是序列化. 一切正常.但我想在树莓派上运行显示面.我发现,在 ARM
..
如何将堆栈指针对齐到 8 字节,现在在 ARM 中对齐为 4 字节.根据我的理解,如果堆栈指针指向某个地址,如 0x4 、0x8、0x12 和 0x16 等,则它是 4 字节对齐的. 因此,将堆栈指针对齐为 8 字节意味着它应该指向诸如 0x8 、0x16 、0x24 和 0x32 等地址. 现在如何将 4 字节堆栈指针对齐到 8 字节对齐指针? 解决方案 不要尝试自己手动对齐
..
我正在尝试以下汇编代码: vclt.f32 q9,q0,#0vst1.i32 q9,[r2:128] 但如果条件为真,则q9中的对应元素设置为负一而不是正一. 我该怎么做才能得到一个积极的? 解决方案 这对于向量比较指令是正常的,因此您可以将比较结果用作带有 AND 或 XOR 指令或其他各种用例的掩码.p> 您通常不需要 +1.例如,如果要计算匹配的元素个数,只需使用减法指令
..
我编写了一个汇编函数,可以在 iPhone 4(32 位代码)和 iPhone 6s(64 位代码)上正常运行.我从 Objective-c 中的调用函数传入四个浮点数. 这是我用于 4 个浮点数的结构,下面是函数的原型 - 可以在我的 Objective-c 代码的顶部找到. struct myValues{//这是一个结构.它用于方便地对多个数据项进行逻辑分组.浮动A;//我在这里使用
..
我按照这篇文章打印堆栈跟踪 当我的 gcc C++ 应用程序崩溃时如何生成堆栈跟踪.它在 x86 linux 中运行良好.谁能教我如何让它在 arm-linux 上工作? 我正在使用 arm-linux-gcc 4.4.3. [root@FriendlyARM/]# ./test1错误:信号 11:[0x0] 在 x86 中 mickey@mickeyvm:~/Desktop/work
..
我一直在阅读 Android 的内核,以了解 CPU 内核(又名 DVFS、DCVS)的动态电源管理是如何完成的.我找到的代码 here 对以下函数进行一些调用(定义 here) 依次调用 SMC 汇编指令. ARM 有一个文档解释了 SMC 调用约定,但我无法使用它来理解以下功能.如何进一步跟踪 SMC 指令,以根据其输入操作数查看它实际执行的操作? s32 scm_call_atomi
..
在 ARM 中,SPSR 是一个分组寄存器,即每次模式更改后,CPSR 都会复制到 SPSR,模式返回后,SPSR 会复制回 CPSR.为什么 CPSR 不直接存入银行?每次模式更改似乎都有两条额外的指令(复制到spsr,复制到cpsr) 解决方案 手动模式更改不是 ARM 的效率目标.通常,手动模式更改仅用于在启动或初始化时设置堆栈等. cpsr 是活动 副本.为什么我们有一个存储
..
我想在 arm 9 上分析我的代码,是否有任何分析器可以为我提供函数调用时间和每个函数占用的总周期?我更喜欢任何免费的分析器.我喜欢在 linux 中使用 kcachegrind. 解决方案 我不知道任何免费的 ARM 分析器. 您可以尝试ARM RVDS 4.0 Pro.它有一个很好的 profiler.您可以使用模拟器而不是真正的硬件.它简化了一些事情,但您不会收到有关缓存未命中
..