arm相关内容

ARM指令集中的缩写(Rn, Rd, ...)是什么意思?

最近我检查了 ARM Cortex-M3 处理器的指令集.例如: 添加 , , 这些缩写的确切含义是什么?我猜他们的意思是不同类型的地址,比如直接寻址、相对寻址等等.但究竟是什么? 谢谢! 解决方案 基础知识: Rd 是目的地,Rn 和 Rm 是来源.它们都是通用整数寄存器;FP 将使用 Sd/Sn/Sm 或 Dd/Dn/Dm 单人或双人. AR ..
发布时间:2022-01-17 13:48:30 其他开发

Buildroot包管理

我正在使用 buildroot 创建一个在我的 ARM 平台上运行的 rootfs. 我想在我的平台上有一个包管理器来轻松安装包,比如 ubuntu 中的 apt-get. 我找到了 opkg,可以简单地将其添加到 buildroot 构建中,但我找不到任何有关如何查找存储库的信息. 此外,在网上阅读了一些关于此的内容,我还了解到 buildroot 不包含包管理器.opkg 不 ..
发布时间:2022-01-17 13:48:08 其他开发

什么是非对齐访问?(ARM/基尔)

我正在使用 Keil 为 ARM 7 编写程序集. 我有以下运行时错误: 非对齐访问:ARM 指令在 000000F8H,内存访问在 7F7F7F7FH数据中止:ARM 指令在 000000F8H,内存访问在 7F7F7F7FH 这并没有真正帮助我,因为我不知道“非对齐访问"是什么,(除了显而易见的,但我并不真正理解它的含义)我我试图访问(存储)0x7F7F7F7F,有什么问题? ..
发布时间:2022-01-17 13:46:59 其他开发

itte 在臂组件

下面这行代码在arm组装中做了什么: 000031e6​​ 2916 cmp r1, #22000031e8 bf1a itte ne 我得到了第一行(比较 r1 和 22)但是第二行呢(我以前从未见过 itte 命令,谷歌搜索什么也没返回) 解决方案 是ARM的IF-THEN-ELSE指令,在Thumb-2指令集中引入.(根据您上面的具体示例,如果您在 ITTE 指令之后显示了接下来 ..
发布时间:2022-01-17 13:46:22 其他开发

尝试在 cortex-m3 上加载与位置无关的代码

我有一个嵌入式应用程序,它有一个引导加载程序,它将决定直接从内部闪存运行两个应用程序中的一个.我正在尝试使这些应用程序位置独立,以便它们都可以针对相同的基地址进行编译.没有操作系统,所以没有动态链接器可用.到目前为止,我已经尝试使用 -fpie 选项(使用 gcc)进行构建,但没有取得太大的成功.函数调用似乎是正确的,但全局数据没有正确的地址.本地定义的全局数据的地址偏移量似乎是应用程序与其原始基 ..
发布时间:2022-01-17 13:45:48 其他开发

“银行"是什么意思?

在 Wikipedia 上阅读“ARM 架构",发现如下语句: 寄存器 R0-R7 在所有 CPU 模式下都是相同的;他们从来不是银行. R13 和 R14 跨所有特权 CPU 模式存储,系统除外模式. 银行注册是什么意思? 解决方案 寄存器银行是指在同一地址提供多个寄存器副本. 取自 arm 的第 1.4.6 节 文档 该术语是指无法同时看到所有寄存器的 ..
发布时间:2022-01-17 13:45:14 其他开发

GCC 中树莓派的交叉编译.从哪儿开始?

TL/DR:我在哪里可以找到有关为 ARM (gnueabi) 平台(旨在在 Raspberry Pi 设备上运行)构建 GCC 4.7.0 交叉编译工具链的更多信息?p> 我刚得到一个全新的 Raspberry Pi,我非常渴望开始为它编程.我已经成功安装了 GCC 工具链(我使用的是 Arch Linux 系统映像)并编译了一些基本程序,一切正常. 我也尝试编译 Boost 库,因为我 ..
发布时间:2022-01-17 13:44:31 C/C++开发

linux内核如何管理不到1GB的物理内存?

我正在学习 linux 内核内部结构,在阅读“理解 Linux 内核"时,我遇到了很多与内存相关的问题.其中之一是,如果我的系统上仅安装了 512 MB 的物理内存,Linux 内核如何处理内存映射. 据我所知,内核将 0(或 16)MB-896MB 物理 RAM 映射到 0xC0000000 线性地址并可以直接寻址.所以,在上述我只有 512 MB 的情况下: 内核如何从 512 M ..

是否可以制造支持多个 ISA 的处理器?(例如:ARM + x86)

自 Skylake(?) 架构以来,英特尔一直在内部将 CISC 指令解码为 RISC 指令,而 AMD 自 K5 处理器以来一直在这样做.那么这是否意味着 x86 指令在执行过程中被翻译成一些奇怪的内部 RISC ISA?如果这是正在发生的事情,那么我想知道是否有可能创建一个能够理解(即内部转换为自己的专有指令)x86 和 ARM 指令的处理器.如果可以的话,性能会是怎样的?为什么还没有完成? ..
发布时间:2022-01-17 13:44:00 其他开发

将数据与 ARM 中的指令区分开来

在(32 位)ARM Linux 内核中,如何区分嵌入在代码段中的数据和指令? 最好有一个轻量级的方法,比如位掩码,可以很容易地实现.将反编译器嵌入内核是不明智的. 解决方案 一般来说,你要求的是不可能的. 考虑一下这个函数,它碰巧使用了一个太大而无法编码为立即数的数据值: @ void patch_nop(void *code_addr);补丁号:ldr r1, =0xe1 ..
发布时间:2022-01-17 13:43:50 其他开发

llvm-gcc 汇编器:LDR 语法

这段代码在 gcc 上编译得很好,但是当使用 llvm (llvm-gcc) 时,它会在 ldr "constant expression expected"> 问题在于语法:如何指定数组所在的位置?我不想以字节为单位对位移进行硬编码:ldr r7, [pc, #some_shift] 而是使用文字来保持代码的清洁和安全. 知道如何让它工作吗? .globl func_name功能名称 ..
发布时间:2022-01-17 13:43:42 其他开发

Printf 更改寄存器中的值,ARM 汇编

我是汇编编程的新手,我正在为 ARM 编程.我正在制作一个包含两个子例程的程序:一个在内存中的字节向量上附加一个字节信息,一个打印这个向量.向量的第一个地址包含后面的元素数量,最多 255 个.当我使用 GDB 调试它时,我可以看到“appendbyte"子例程工作正常.但是当涉及到“printvector"时,就会出现一些问题.首先,在寄存器 r1 中加载的元素是错误的(它加载了 0,而它应该是 ..
发布时间:2022-01-17 13:43:01 其他开发

什么是 ARM 安全模式下的分区检查器

根据这个链接http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0333h/Chdfjdgi.html 下 系统启动顺序... 对分区检查器进行编程以分配可用于非安全操作系统的物理内存. 什么是分区检查器?它是一个有寄存器的子系统,它的编程模型是什么? 解决方案 什么是分区检查器? ..
发布时间:2022-01-17 13:42:46 服务器开发

适用于 iPhone 的 MySQL C API 库

有谁知道在哪里可以获得为 arm iPhone 架构编译的 MySQL 库? 或者如何为arm交叉编译MySQL? 感谢 解决方案 我是这样做的: 1) 从MySQL下载Connector/C的源代码版本 2) 下载cmake(如果你安装了macports,输入“sudo port install cmake") 3) 从 http://sites.googl ..
发布时间:2022-01-17 13:42:08 移动开发

使用 ARM 循环计数后处理“objdump --disassemble"

是否有可用于对某些 objdump --disassemble 输出进行后处理以使用循环计数进行注释的脚本?特别是对于 ARM 家族.大多数情况下,这只是与计数的表查找的模式匹配.我猜可能需要像 +5M 这样的注解五个内存周期. Perl、python、bash、C 等都可以.我认为这可以通用,但我对 ARM 感兴趣,它有一个 正交 指令集.这是关于 68HC11 做同样事情的线程.该脚本需要一个 ..
发布时间:2022-01-17 13:41:37 其他开发