问题标签 [armv6]

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 投票
1 回答
460 浏览

iphone - 为 ARMv6、ARMv7 和 i386 架构构建 f2c

我想为 ARMv6、ARMv7 和 i386 架构构建 f2c 库。

我找到了这个链接ftp://ftp.netbsd.org/pub/NetBSD/packages/pkgsrc/devel/libf2c/README.html,但是当我使用 ARM 库时,Xcode 会生成一个警告:

“忽略文件/Projects/Demo/FortranDemo/libf2c.a,文件是为存档而构建的,它不是被链接的体系结构(armv6)”,对于armv7也是如此。

有人可以帮我吗?

0 投票
1 回答
3469 浏览

arm - 设置中断向量表,ARMv6

我正在尝试在我的 ARMv6 裸机应用程序中使用用户模式和 SVC,但为此我需要设置 ARMv6 中断向量表的 SVC 条目以分支到我的中断处理程序。但是,我找不到一个很好的例子来说明如何做到这一点(即:我需要设置什么内存地址,以及设置什么)。我过去做过类似的事情,但总是使用更全面的引导加载程序(RedBoot)为我设置了一些。任何帮助,将不胜感激。

我正在使用以下方法测试我的应用程序:

0 投票
4 回答
9080 浏览

gcc - 从 C、GCC(裸机)调用 ARM 程序集

我正在尝试使用 GCC 在 ARM 中进行一些裸机编程并在 QEMU 上进行测试。每当我从 C 调用 ARM 标签时,我的程序就会挂起。我有一个简单的代码示例,它在https://gist.github.com/1654392上显示了问题——当我在该代码中调用 activate() 时,它挂起。

我用 objdump 观察到,当我从汇编代码到 C 代码(从 _start 开始)执行 bl 时,它会生成一个切换到拇指指令的小包装器。似乎 C 代码都是在拇指指令中生成的,但我所有的程序集都是在 ARM(32 位)指令中生成的。我无法弄清楚为什么会这样或如何解决它。

0 投票
4 回答
6704 浏览

arm - Relocate the ARM exception vectors?

How would I relocate the ARM exception vectors?

Basically, I need to be able to remap them in a way, so when the ARM core tries to execute the vector, it should execute the custom exception vector that is stored in kernel's RAM bit and not in the ROM that is at 0x0. Is that possible? Or am I meant to route the interrupts to the kernel from the ROM?

So essentially, is there a way of telling the ARM core, "here is the new address for your vector table"? I know that you can start the CPU in the high vector mode, but that's not what I'm looking for. I need to be able to set the vector base to a custom address dynamically.

0 投票
1 回答
4266 浏览

arm - ARM11 翻译后备缓冲区 (TLB) 的使用情况?

是否有一个体面的指南来解释如何在ARM1176JZF-S内核上使用 TLB(翻译后备缓冲区)表?

在查看了该 ARM 平台的技术文档后,我仍然不知道 TLB 是什么或它看起来像什么。据我了解,每个 TLB 条目都将一个虚拟页面映射到一个物理页面,从而允许重新映射和控制内存权限。

除此之外,我完全不知道如何使用它们。

  • TLB 条目有什么结构?如何创建新条目?
  • 如何在用户空间线程的上下文切换中处理 VM?如何确保这些线程只能访问分配给其父进程的特定页面(强制内存保护)?我是否为每个上下文保存 TLB 状态?
  • 为什么有两个 TLB?如果 MicroTLB 只能有 10 个条目,我可以使用它做什么?当然,我需要超过 10 个。
  • 它说主要 TLB 的一部分是“一个由八个元素组成的全关联数组,可锁定”。那是什么?主 TLB 是否只能有 8 个条目?

先感谢您。如果有人解释什么是 TLB,我会非常高兴。我目前正在为我的内核开发一个内存映射器,而且我几乎走到了死胡同。

0 投票
1 回答
786 浏览

gcc - 裸机 mod (%) 挂在带有 libgcc 的 ARMv6 上

当我尝试在我的 ARM 裸机程序的 C 代码中使用 % 时,它需要来自 libgcc 的包装器。没问题,我可以将它链接进去。当我这样做时,链接器停止抱怨,但随后程序在 mod 使用时挂起(如果我看到寄存器实际上以莫名其妙的方式开始循环)。用 % 注释掉该行会使程序不会以这种方式挂起,所以这绝对是问题所在。

我在https://gist.github.com/1724746构建了一个简单的问题示例

我使用以下方法运行测试:

然后 ^ax 退出它,并且注释掉 % 行,我得到了我期望输出的字节,但是在那里我没有得到任何这样的输出。

知道这里发生了什么吗?

编辑:我使用的交叉编译器是 Ubuntu 上的默认值:https ://launchpad.net/gcc-linaro

0 投票
1 回答
392 浏览

xcode - armv6 和 armv7 架构有多大?

当我提交我的应用程序以供审核时,我收到电子邮件并说正在处理中,我的应用程序大小从 14mb 跃升至 34mb。这是巨大的,完全不公平!

我认为这都是由于 arm 架构造成的。但是,他们怎么可能那么大?这意味着不可能低于 3g 限制。

我的逻辑有问题吗?而且,手臂架构有多大?

0 投票
2 回答
362 浏览

ios - Xcode 4.2 + armv6 + release = 错误?

我不确定我的问题出在哪里,但情况如下。我有一个通用应用程序设置为 3.2 和 Base SDK iOS 5.0 的部署目标。该项目是在 Xcode 4.2 中创建的。

我已将我的体系结构设置为包括 armv6 和 armv7 用于“调试”和“发布”

“仅构建活动架构”设置为“否”

在开发我的应用程序时,我遇到了一个奇怪的错误,即我的 x 和 y 值无法在旧设备上正确输出(y 总是等于 x)。

从“Info.plist”中删除“必需的设备功能”后,问题就消失了。

但是,似乎当我实际存档我的应​​用程序以进行分发时,问题仍然存在!这怎么解释?我还能检查什么?

0 投票
2 回答
6993 浏览

android - ARM NEON 汇编器 - 用法和理解

我是汇编程序和 NEON 编程的新手。我的任务是使用 NEON 指令将部分算法从 C 转换为 ARM 汇编程序。该算法采用一个 int32 数组,从该数组加载不同的值,进行一些位移和异或并将结果写入另一个数组。稍后我将使用具有 64 位值的数组,但现在我只是尝试重写代码。

所以这是我关于NEON指令的问题:

1.)如果我加载这样的寄存器:

它会从内存中仅加载 32 位还是 2x32 位来填充 64 位霓虹 D 寄存器?

2.) 如何访问 D-Register 的 2/4/8 (i32, i16, i8) 部分?

3.)我正在尝试从具有偏移量的数组中加载不同的值,但它似乎不起作用......我做错了什么......这是我的代码:(它是一个整数数组,所以我´ m 尝试加载例如 3 元素,其偏移量应为 64Bit = 8 Byte)

其中“a”是数组,“out”是指向整数的指针(用于调试)。

4.)从数组中加载一个值后,我需要将其向右移动,但它似乎不起作用:

5.) 是否可以只在 Neon 寄存器中加载 1 个字节,这样我就不必移动/屏蔽某些东西来只获得我需要的一个字节?

6.) 我需要使用 Inline 汇编器,但我不确定最后一行是做什么用的:

7.) 你知道任何带有代码示例的好的 NEON 参考吗?

该程序应在三星 Galaxy S2、cortex-A9 处理器上运行,如果这有什么不同的话。谢谢您的帮助。

- - - - - - - - 编辑 - - - - - - - - - -

这就是我发现的:

  1. 它将始终加载完整的寄存器(64 位)
  2. 您可以使用“vmov”指令将霓虹灯寄存器的一部分传输到手臂寄存器。
  3. 偏移量应该在一个臂寄存器中,并将在内存访问后添加到基地址。
  4. 它是“被破坏的注册列表”。每个使用的寄存器,既不在输入列表中,也不在输出列表中,应该写在这里。
0 投票
3 回答
1116 浏览

ios5 - 现有应用程序:从 iOS 4.2 升级到 iOS 5.0

我使用 iOS5 重写了我在 iTunes 商店中的应用程序。

  • 原始应用在 iOS 4.2 及更高版本上支持 armv6 和 armv7。
  • 新应用仅在 iOS5.0 及更高版本上支持 armv7(因为 iOS5 API 仅在 armv7 上支持)

所以问题来了。iTunes 不会让我升级应用程序,因为这意味着一些用户将无法获得升级。错误信息:

此捆绑包无效。UIRequiredDeviceCapabilitiesInfo.plist可能不包含会阻止此应用程序在以前版本支持的设备上运行的值。

中的值UIRequiredDeviceCapabilities是 armv7。armv7 是必需的 b/c iOS5 api。

我该怎么办?我要拉旧应用程序并用新应用程序替换它吗?我的客户呢?他们将如何升级?有什么解决方法吗?