arm相关内容
设备树和 ATAG 有什么区别?此外,ATAG 是必须的吗?内核是否希望它们位于固定地址,还是希望它们位于 r0-r3 中? 解决方案 设备树描述了内核用于选择要加载哪些驱动程序、所有 MMIO 接口在哪里等硬件的所有信息.ATAG 只描述了诸如在哪里可以找到 initrd 和内核参数、内存等内容——关于机器的其他所有内容都被硬编码到内核中. 现在首选的方法是使用设备树而不是 ATA
..
为了识别Android设备的平台,java系统属性“os.arch"似乎就足够了: Log.i("mytag", "os.arch:" + System.getProperty("os.arch")); 大多数 ARM 设备响应:os.arch: armv7l x86 模拟器响应:os.arch: i686 对于真实 Intel 和 MIPS 设备的输出是什么? x86 An
..
我有一个使用 STM32F103 (ARM Cortex M3) 的嵌入式项目,它在发布模式下偶尔会出现硬故障.作为恢复的一部分,我想从硬故障之前检索 PC 值并将其存储在电池支持区域中以供以后调试. 如何确定发生硬故障时程序计数器的值?显然,PC 现在已设置为其在硬故障中断内的位置. 我应该去哪里看?有正常模式寄存器组的地址吗? 谢谢! 解决方案 Cortex-M3 使
..
我正在开发应用程序(用 C++ 编写),它在运行时生成一些机器代码(现在是 Linux,x86-64,但我计划在 ARM 上迁移).接下来它将生成的代码存储在内存中并通过跳转到内存位置来执行它.很长一段时间我都遇到了分配可执行内存的问题,但我终于解决了: uint8_t *memory = mmap (NULL, length, PROT_READ | PROT_WRITE | PROT_EXE
..
有一个类似的帖子涵盖了常规寄存器.NEON 寄存器呢?据我记得,寄存器的上半部分或下半部分必须在函数调用中保留.我在任何地方都找不到该信息,有人可以澄清一下吗? 谢谢 来自 AAPCS,§5.1.1 核心寄存器: r0-r3 是参数和暂存寄存器;r0-r1也是结果寄存器 r4-r8 是被调用者保存寄存器 r9 可能是被调用者保存寄存器,也可能不是(在 AAPCS 的某些变体中
..
我想在 U-Boot 和 Linux 内核中添加自定义的 atag 变量. 我怎样才能做到这一点? U-Boot 和 Linux 中是否有添加 ATAG 变量的程序? 解决方案 按照这个程序, 要实现这一目标,需要修改 2 个部分.一个是U-Boot,一个是Linux内核. 1. U-Boot 需要更改:A. 确保 CONFIG_CMDLINE_TAG/CONFIG_SETU
..
我想计算在 ARM cortex-M4(或 cortex-M3)处理器上执行的每个周期的指令数. 需要的是:我要分析的代码的指令数(在运行时执行)和代码执行所需的周期数.p> 1 - 循环数 使用循环计数器非常简单直接. volatile unsigned int *DWT_CYCCNT ;volatile unsigned int *DWT_CONTROL ;volatile u
..
我正在尝试编译 opus 音频编解码器 (http://www.opus-codec.org/downloads/) 用于 Android 应用程序.我正在使用 Android NDK(版本 6)来编译我的库.到目前为止,我必须为我的应用程序编译的本机 C 库非常简单,我已经能够将我的 Android.mk 文件基于 jni,主要基于教程或其他示例.但是,Opus 的编译看起来要复杂一些.tar.
..
我在使用终端命令 gradle clean assembleRelease 构建我的 android studio 代码时不断收到此警告: 由于缺少 ABI 'ARMEABI' 的剥离工具,无法剥离库 'lib.so'.按原样打包. 请帮助我解决此警告. 注意:我知道这不会影响我的应用程序的行为,但是我的 APK 太庞大了,这肯定会帮助我减小 APK 的大小.所以我需要解决这个问
..
FJCVTZS 是“浮动的"-point Javascript 转换为有符号定点,向零舍入".Arm v8.3-A 芯片及更高版本支持它.这很奇怪,因为您不希望看到 JavaScript 如此接近裸机. 我可以找到该指令作用的解释,但找不到它存在的原因.这个线程说“它作为单个指令存在是因为 JS 缺少整数类型意味着某些用例经常因为没有好的算法原因而需要此操作.".这似乎是合理的,但我想要更详
..
我越看这个 PDF (应用程序二进制接口ARM 架构:基本标准)我越不理解它的含义.我还想对 ARM 架构的过程调用标准 和 用于 ARM 架构的 ELF. 解决方案 ABI(Application Binary Interface)是定义低级概念之间映射的标准高级语言和特定硬件/操作系统平台机器代码的能力.这包括: C/C++/Fortran/...数据类型在内存中的布局方式(数据
..
我见过 很多关于在 Raspberry Pi 上运行 Mono/.NET 代码的讨论.在 Raspberry Pi 上实际运行任何 Mono 代码是否成功? 在他们的网站上,他们列出了在该设备上运行的几个 Linux 发行版,其中一些发行版包括 Mono.但是,没有详细说明 Mono 是否适用于它. 有有效的实现吗? 解决方案 Raspberri Pi 板上的人是 报告说 Mo
..
我有一个具有时间关键 ISR 的嵌入式应用程序,它需要遍历一个大小为 256 的数组(最好是 1024,但 256 是最小值)并检查一个值是否与数组内容匹配.在这种情况下,bool 将设置为 true. 微控制器是 NXP LPC4357,ARM Cortex M4 内核,编译器是 GCC.我已经组合了优化级别 2(3 更慢)并将函数放在 RAM 中而不是闪存中.我还使用指针算术和 for
..
我打算为 Raspberry Pi(基本上是一台小型 ARM 计算机)进行交叉编译.主机将是一个运行 Arch Linux 的 i686 机器. 我的第一反应是使用 Arch Linux 提供的交叉编译器 arm-elf-gcc-base 和 arm-elf-binutils.但是,我阅读的每个 wiki 和帖子似乎都使用了某些版本的自定义 gcc 构建.他们似乎花费了大量时间来烹饪自己的
..
检查 gcc 对 neon 指令 vadd.i16 q0,q0,q0 的支持失败测试.c主函数(){__asm__("vadd.i16 q0, q0, q0");返回0;}arm-linux-androideabi-gcc test.c/tmp/ccfc8m0G.s:汇编器消息:/tmp/ccfc8m0G.s:24:错误:错误指令`vadd.i16 q0,q0,q0' 尝试使用标志 -mcpu=
..
我尝试根据给定的 C 冒泡排序代码在 ARM 汇编程序中编写一个简单的冒泡排序: bubbleSort (int A[], int n){国际温度;诠释我;做 {交换=假;n = n-1;对于 (i=0; i A[i+1] ) {温度 = A[i];A[i] = A[i+1];A[i+1] = 温度;交换=真;}}} while (交换 == tru
..
我是 ARM 的新手,正在为一门课做作业.我感到困惑的是双重条件,例如 if (x > 0 && x
..
我遇到了一个奇怪的问题,有点类似于 这个.我有一个 Windows Phone 8 本机 DLL 项目,主要是 C++,但其中包含 ARM 程序集源.源处于 ARM 模式(即不是 Thumb).C++ 编译为 Thumb. 当 C++ 尝试调用汇编例程时,应用程序崩溃.反汇编中的调用命令是带有立即偏移量的 BLX - 它应该无条件地将模式切换回 ARM,但不知何故它没有. 我有异常的详
..
ARM 汇编中的这一行是做什么的? mrc p15, 0, %0, c9, c13, 0":: “r"(柜台) 什么是p15?通常寄存器以 r 为前缀,例如 r15. 符号::是什么,角色或c9,c1是什么? 解决方案 虽然 MRC 是通用协处理器互操作指令,但 cp15 是 控制处理器 - 所有现代 ARM CPU 都有,ARM 已经使用它来扩展片上单元的指令集,例如缓存、MM
..
我已经研究这个问题一段时间了,我希望有人能指出我的错误.我想我再也看不到森林了. 我有一个用于测试的 LeMaker HiKey 开发板.它的 AArch64,因此它具有 NEON 和其他 cpu 功能,如 AES、SHA 和 CRC32: $ cat/proc/cpuinfo处理器:AArch64 处理器版本 3 (aarch64)...特点: fp asimd evtstrm aes
..