问题标签 [arm9]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
79 浏览

linux - 对于 armv4t 处理器系列,是否存在硬浮点和软浮点的概念?

我必须使用哪个工具链来构建 arm 9 处理器系列 (armv4t) 的源代码。我已经用于arm-linux-gnueabihf-gcc -marm -march=armv4t构建我的源代码,但这不起作用。

谁能告诉我硬浮动或软浮动操作系统概念的起源。这个概念是在 arm 9 处理器系列中出现还是以后出现。

0 投票
0 回答
41 浏览

c - 打印ARM926EJ缓存寄存器c7的内容

我试图在清理 D 缓存之前和之后查看缓存寄存器的内容和 c7 中脏位的状态。这个链接:

https://developer.arm.com/docs/ddi0198/latest/programmers-model/register-descriptions/cache-operations-register-c7说“如果缓存包含任何脏行,则第 30 位设置为 0。如果缓存不包含脏行,第 30 位设置为 1。” 我有一个变量 c7Value 初始化为 15(随机数)

当我在上述循环之后打印 c7Value 的值时,该值为零。我认为只有第 30 位会被设置为 0,如果它发现任何缓存线脏。

另外,有没有办法只读取 c7 的内容而不清理它?

其他寄存器如 c1 可以读为:"MRC p15, 0, R1, c1, C0, 0",但是没有指令可以读取 c7。

因此,有人可以告诉我如何打印缓存内容和/或读取 c7 的内容(检查脏状态)吗?

0 投票
0 回答
159 浏览

embedded-linux - ARM926 处理器的 TensorFlow lite 构建失败

全部,

我正在尝试为我的目标处理器 ARM926EJ-S 处理器(ARM5te 架构)构建 tensorflow lite。我已经从 Rasp PI 构建脚本和设置中为我的目标处理器复制了构建脚本和构建设置。这是我在 arm926_makefile.inc 中的目标处理器的构建设置:

构建脚本成功构建了一堆文件。但是,它主要抱怨数学函数,如 std 命名空间的 round、atoi、min、max。我的目标处理器的工具链版本是 arm-linux-g++ (Buildroot 2014.08) 4.9.2。相同的 tensorflow lite 使用 Pi 工具链版本 arm-linux-gnueabihf-g++ (GCC) 8.3.0 成功构建。

我确实看到了在我的工具链中声明和定义的那些数学函数,但它们没有被 tensorflow-lite 构建识别。顺便说一句..我尝试使用 global ::round() 然后它也需要替换很多地方和其他数学函数。必须有简单的方法或传递一些配置才能从我的工具链中启用这些功能。

有人可以指出我为 ARM926 构建 tensorflow-lite 的正确方向吗?

以下是我的工具链中的构建错误:

顺便说一句..我还尝试使用最新的 Rasp Pi 工具链为我的目标处理器构建 tensorflow lite,使用编译选项 -march=armv5te 和 -mcpu=arm926ej-s。它构建但不运行 - 我认为 rasp pi 工具链不会为 ARM926 和 ARMv5te CPU 架构生成正确的机器代码。

我将不胜感激并欢迎任何指针或想法来解决 ARM9 处理器的这个 tensorflow-lite 构建问题。

谢谢,手臂

0 投票
1 回答
122 浏览

assembly - 这条指令需要多少指令周期?

如果我没记错的话ldrb r3, [r1], #1 ,需要 3 个指令周期,同样add r4, r1, #2需要 1 个指令周期,这里不讨论互锁延迟,但我很困惑需要多少个周期cmp r4, r3

请注意:它是带有 ARM9TDMI 流水线时序的 ARM ASSEMBLY。

0 投票
0 回答
156 浏览

python - 有没有办法交叉编译由 Cython 创建的用于 ARM9 的 C 代码?

我在 Windows 10 上使用 Eclipse。用 PyDev 编写的 HelloWorld.pyx 测试程序由 Cython 使用 setup.py 程序以常用方式转换为 HelloWorld.c。

生成的 HelloWorld.c 包含许多 python 头文件。

在 Eclipse 项目中,我使用“xPack GNU Arm Embedded GCC (arm-none-eabi-gcc)”作为“ARM (AArch32) 架构的工具链,并选择了 arm926ej-s Arm 系列 (-mcpu),这是我的目标核心. 如果我现在尝试在 Eclipse 中构建项目,我会收到一些致命错误,包括“io.h”、“Python.h”和“pyconfig.h”在内的一些头文件说“没有这样的文件或目录” .

我从https://www.python.org/downloads/release/python-390/下载了 Python 3.9.0 的“Gzipped source tarball”并将其解压缩并将 Python3.9.0\Include 添加到 Arm Cross Compiler 包含路径(- I) 用于“Python.h”,Python3.9.0\PC 用于“pyconfig.h”,Python\3.9.0\Modules_decimal\libmpdec 用于“io.h”。现在我得到了无穷无尽的错误,从这个开始:

...等等(134个错误)。就 64 位或 32 位定义而言,似乎有些问题。

为了解决这个问题,我使用以下配置命令行在 Python3.9.0 源代码上运行 ./configure:

这将创建一个新的“pyconfig.h”,我将 Eclipse 项目中的旧“pyconfig.h”替换为新的。

当我现在尝试构建项目时,我得到:

我知道这可能不是很多人想要实现的目标。我对这个话题很陌生,如果有人发现这种方法有错误,或者可以给我提示将 Python 代码转换为 C 并为 ARM926ej-s 嵌入式处理器交叉编译它的不同方法,我会非常高兴。