arm相关内容

在 Cortex-M3 CPU 上通过 printf 进行输出调试,在 BKPT 指令处停止 + 关于 JTAG 和 sw 端口的混淆

我的板上的 JTAG 连接器上有一个 Keil ULINK2 USB 仿真器盒,它与板载 Cortex-M3 CPU(TI/Stellaris/LuminaryMicro LM3S 系列)配合良好.似乎 JTAG 和 SWJ-DP 端口在这些 CPU 上共享相同的引脚(以及板上的连接器).一个似乎没有 ITM (printf) 功能,另一个则有. 以前的固件人一直使用 stdio 转 UAR ..
发布时间:2022-01-17 14:08:45 其他开发

从源代码为 ARM 交叉编译 Qt 4.7 的问题

我正在尝试从源代码交叉编译 Qt 4.7.1,以下是关于我的设置的一些注意事项: 我的预期输出是运行 Qt 应用程序所需的共享对象库. 我的目标平台是采用 ARM Cortex-A8 架构的 TI AM335x 处理器. 我的开发平台是 x86 64 位 Ubuntu 虚拟机 我对这应该如何工作的理解是我为我的目标平台下载了工具链(这是 Linaro 工具链来自 TI),我下载了 ..
发布时间:2022-01-17 14:08:35 服务器开发

如何正确地做 ADD/SUB 有符号或无符号整数?

我看到 ARM 上有一个 ADD 指令,它对 signed 和 unsigned int 都有效吗?当指令以 S 后缀指定时,某些状态标志应该不同,对吧?如设置溢出(V)标志.我想知道是否有另一个版本的 ADD/SUB 来处理其中一个整数. 解决方案 补码表示有符号加法和无符号加法没有区别.s 位确定是否修改了任何标志,如果修改,则进位是无符号溢出/借位,v 是有符号溢出/借位.这在 AR ..
发布时间:2022-01-17 14:07:49 其他开发

arm sleep模式进出区别WFE、WFI

我对 ARM 架构相当陌生,我正试图围绕唤醒机制展开思考. 首先,我发现很难找到这方面的好信息.ARM 的文档似乎对这个主题非常简洁. 我想了解的是 Cortex(尤其是我正在使用的 M0)何时会醒来. 作为参考,我还参考了以下内容: 目的是什么WFI 和 WFE 指令和事件信号? 为什么处理器进入使用WFE指令待机,使用WFI指令不待机? 关于 WFE 说明的文档 ..
发布时间:2022-01-17 14:06:24 其他开发

ARM 版本的 Windows 8 是否只能运行 Metro (WinRt) 风格的应用程序?

另请参阅:有什么方法可以编写一个也可以在 Windows 7 和 Vista 上运行的 WinRt (Metro) 应用程序? 鉴于 Windows 7 无法运行 WinRT 应用程序,我正在尝试了解如何同时针对 Arm 和 Windows 7 上的 Windows 8.据我了解,应用只能从 App Store 安装在 ARM 版本的 Windows 8 上. 那么 Arm 上的 Wi ..
发布时间:2022-01-17 14:06:15 其他开发

如何使用 C 程序将 ARM 处理器置于不同的模式?

我正在经历不同模式的 ARM 处理器.我想在不同模式下检查处理器状态(例如:寄存器值). 那么有人可以帮我找出将处理器置于不同模式的示例代码吗? 例如,我找到了未定义模式的代码:asm volatile (".short 0xffff\n"); 解决方案 如果您想从用户空间测试模式,这是一个难题.如果系统中没有 FIQ 外围设备,则可能无法进入 FIQ 模式.您的系统可能根本没 ..
发布时间:2022-01-17 14:05:59 其他开发

将调用者的 lr 从子程序中获取到 C 变量 - arm

我有一个 C 函数,它应该将调用者的 lr 寄存器的值放入一个局部变量中. 我试过以下代码: volatile long lr;asm("str %0, [sp, #4]\n" :"=r", (lr)); 但是,这不会改变任何事情.不是我得到了错误的值,只是 lr 局部变量的值根本没有改变(包含垃圾). 有什么想法吗? 谢谢! 解决方案 直接回答问题,有两种解决方案. ..
发布时间:2022-01-17 14:05:25 其他开发

不使用 std 函数或 C99 计算 atan2

我正在计算 3 轴加速度计的角度,但我的编译器没有 atan 或 atan2 函数.它有一个保留的内存插槽,但它调用了一个我在任何文件中都找不到的函数. 我的编译器是运行 ARMCC 编译器的 Keil µVision 4.编译有文件 math.h,但函数是 extern 并且不存在: extern _ARMABI double atan2(double/*y*/, double/*x* ..
发布时间:2022-01-17 14:04:52 其他开发

“这个"由 lambda 捕获是不正确的.GCC编译器错误?

在过去的几天里,我一直在调试一个涉及 C++ 中 lambda 的奇怪问题.我已将问题归结为以下症状: this 指针在 lambda 中损坏(注意:this 总是被副本捕获,因此 lambda 应该有自己的 this 指针,指向 App 对象) 只有在 std::cout 打印语句存在时才会发生,并且在创建 lambda 之前调用.print 语句可能看起来完全不相关(例如 print ..
发布时间:2022-01-17 14:04:16 C/C++开发

ARM架构中按序执行和无序执行的区别

根据我对 ARM 处理器的理解,以下是顺序执行的特点(1) 按顺序执行指令(2) 直到当前指令执行完毕,才会执行下一条指令.(3) 执行速度较慢. 乱序执行与 In-order 的行为正好相反.(1) 以非顺序执行指令(2) 即使当前指令未完成,也会执行下一条指令.(仅当下一条指令不依赖于当前指令的结果时才会这样做)(3)更快的执行速度. 除了上面提到的,还有其他的功能区别吗?? ..
发布时间:2022-01-17 14:03:57 其他开发

与 NEON 内在函数的数据类型兼容性

我正在使用 C++ 代码中的 NEON 内在函数进行 ARM 优化.我理解并掌握了大部分打字问题,但我被困在这个问题上: 指令 vzip_u8 返回一个 uint8x8x2_t 值(实际上是两个 uint8x8_t 的数组).我想将返回的值分配给一个普通的 uint16x8_t.我没有看到合适的 vreinterpretq 内在实现这一点,并且简单的强制转换被拒绝. 解决方案 一些定 ..
发布时间:2022-01-17 14:03:43 其他开发

将 8bit uint8_t 加载为 uint32_t?

我的图像处理项目使用灰度图像.我有 ARM Cortex-A8 处理器平台.我想使用NEON. 我有一个灰度图像(考虑下面的示例),在我的算法中,我只需要添加列. 如何并行加载 四个 8 位像素值,它们是 uint8_t,作为 四个 uint32_t 到 128- 之一位 NEON 寄存器?我必须使用什么内在函数来做到这一点? 我的意思是: 我必须将它们加载为 32 位,因 ..
发布时间:2022-01-17 14:03:19 其他开发

ARM Unified Assembler Language 语法和解析器?

ARM 架构参考手册 A4.2 中描述的 ARM 统一汇编语言是否有公开可用的语法或解析器 本文档使用 ARM 统一汇编语言 (UAL).这种汇编语言语法为所有 ARM 和 Thumb 指令提供了一种规范形式. UAL 描述了每条指令的助记符和操作数的语法. 我只是对解析助记符的代码和每条指令的操作数感兴趣.例如,如何为这些行定义语法? ADC{S}{}{} { ..
发布时间:2022-01-17 14:03:02 其他开发

如何检查手臂上NEON的存在?

如何判断给定ARM处理器上是否存在NEON引擎?可以为此目的查询任何状态/标志寄存器吗? 解决方案 我相信unixsmurf 的答案 与使用具有特权内核的操作系统一样好.对于通用功能检测,似乎 ARM 要求从操作系统中获取它,因此您必须使用操作系统 API 来获取它. 在 Android NDK 上,将 #include 与 (android_get ..
发布时间:2022-01-17 14:01:57 其他开发

LLVM &Clang 无法编译支持的拱门

在 Ubuntu 64 位下我得到了 llc --versionLLVM (http://llvm.org/):LLVM 3.1 版使用断言优化构建.建于 2012 年 10 月 15 日 (18:15:59).默认目标:x86_64-pc-linux-gnu主机 CPU:btver1注册目标:手臂 - 手臂米普斯-米普斯mips64 - Mips64 [实验性]mips64el - Mips6 ..
发布时间:2022-01-17 14:01:14 C/C++开发

运行时 Opencv HighGui 错误-“HIGHGUI 错误:V4L/V4L2:VIDIOC_S_CROP".Opencv 交叉编译.主机=64 位 Ubuntu 12.04.目标=ARM-Cortex-A9

我是 OpenCV 的初学者,并尽我所能在嵌入式平台上运行一个简单的应用程序.我交叉编译了 OpenCV 2.4.4 并根据需要构建它 WITH_GTK=ON, WITH_UNICAP=ON, WITH_V4L=ON 以支持相机和 GUI.以下示例代码在主机上交叉编译: #include #include 使用命名空间简历;int m ..
发布时间:2022-01-17 14:01:04 其他开发

在没有用户干预的情况下执行裸机程序后如何干净地退出 QEMU?

我正在为 ARM 系统组装一个交叉编译单元测试平台,并使用 qemu-system-arm 在主机上运行测试.具体来说,我使用 qemu 来模拟 Stellaris LM3S6965 评估板,因为它包含一个 Cortex M3 处理器,就像我的目标环境一样.在 qemu 中运行的二进制文件是使用 GNU Tools for ARM 构建的. 不涉及操作系统.测试套件作为裸机应用程序在 -no ..
发布时间:2022-01-17 14:00:53 其他开发

我可以在 iOS 中的代码中创建一个断点,比如 VC++ 上的 `__asm{int 3}`,然后在它被命中后继续执行吗?

我正在尝试将等效的 asm{int 3} (或类似的)放入我的 iPhone 程序中.我的目标是让 Xcode 准确地停在有问题的行上,而不必摆弄调用堆栈(所以 _Debugger 听起来不像它会做的那样,并不是说我无论如何都能找到它所在的框架...),让我能够继续执行(这就是我对 assert 不满意的原因). (我在其他系统上已经习惯了这两种行为,我想在 iOS 上重现它们.) 到 ..
发布时间:2022-01-17 14:00:39 移动开发