问题标签 [arm7]

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 回答
1900 浏览

assembly - 如何将寄存器值存储在变量ARM7中

我正在尝试编写一个程序来将两个值中较大的一个存储在变量中larger

我是 ARM7 的新手,无法弄清楚如何将寄存器中的值存储到该标签变量中。

这是我的错误代码:

在此处输入图像描述

0 投票
2 回答
74 浏览

c - 调试内存问题ARM7

我在尝试调试一些看起来非常奇怪的行为时遇到了一些问题。例如,我们有:

并且指针没有明显的原因发生变化。有时是垃圾,有时是代码中其他地方定义的其他常量字符串(或部分)。我们偶尔也会看到代码跳转到不应该运行的不同部分(状态变量似乎在没有被要求的情况下更改)。有 2 或 3 种常见的故障模式,它们似乎是随机发生的。它是一个相对较大的代码库,添加或删除某些部分会改变故障行为(或完全删除它),即使这些部分从未被引用。

目前最好的理论是,这是一个与内存相关的问题,因为我们已经用细齿梳理了所有最近的变化,插入代码段来移动东西的简单行为似乎改变或删除了行为.

调试此问题或类似问题的最佳方法是什么?发现调试器有时很有用,而在其他时候却没有(但这可能是用户错误)。

进一步说明。ARM7,使用 Keil µVision 4 和 armcc v4.1 编译器。

0 投票
2 回答
497 浏览

arm - 无中断嵌入式编程

我永远不会相信我会在 2017 年担任这个职位,但我有一个绝对拒绝处理中断的目标系统 (LPC2138),尽管我做了很多尝试。由于各种原因,我确实需要使用它,所以这只是继续使用它的问题。该应用程序是“中断友好的”,具有多个异步 I/O 流(SPI、UART)和定时器信号。对我有利的一件事是,与我的实时需求相比,处理器速度非常快,所以我有很多空闲的咕噜声。

我坚持的方法是在一个大的轮询循环中完成整个事情,这将包括 3 个 FIFO 来处理 I/O。乍一看似乎可行,有没有人根据经验发表任何评论?

中断问题并非微不足道,100% 平台兼容的 hello world 代码片段直接从网络上运行失败,当它们在混乱状态下运行时系统崩溃。如果碰巧在某人知道的某个地方有明确的专家修复,将不胜感激。

0 投票
1 回答
44 浏览

bazel - 在 LXC ARM 上构建 Bazel 需要很长时间

我正在使用 LXC ARM7l 架构并尝试在其上构建 bazel,但它需要 50 小时并且在那一刻仍在构建!我认为那是很长的时间,它仍然会打印一些类似的行

图片

有什么不对劲,不是吗?它是什么 ??

谢谢你的建议。

0 投票
1 回答
904 浏览

arm - ARM 7 嵌套中断混淆

我一直在阅读有关经典 ARM 7 微控制器的信息。有两种类型的中断:IRQ 和 FIQ。FIQ 允许更快的中断处理并具有比 IRQ 更高的优先级。

它指出现代 ARM 版本具有嵌套中断。

这实际上是否意味着 ARM 7 只能处理分配给 MCU 的 2 个中断,例如来自外部源的 2 个边沿触发中断,仅此而已?

提前致谢

0 投票
1 回答
2951 浏览

assembly - 如何在 ARM7 上执行模数?

我在 ARM7 上做模数时遇到了很多麻烦。

目前,我有这个代码:

但它根本不起作用。

从我的同学所做的看来,我们应该通过位移来完成,但我不明白这将如何工作。

0 投票
1 回答
110 浏览

assembly - 为什么这不会改变内存中 array1 中某些元素的值?

我在 Keil 上编写了一些汇编代码,如果数组中的元素 < 5,则程序会增加该元素。麻烦的是,ARM 代码不会改变内存中 array1 的值。为此,我需要进行哪些更改?

0 投票
1 回答
117 浏览

assembly - 为什么 STR 只适用于 0x40000000 和 0x40003FFF 之间的地址?

代码:

此代码将值 2 写入内存位置 0x40000000。当我将其更改为 0x20000000 时,2 无法写入那里。与 0x3FFFFFFF 相同。当我将内存位置设置为 0x40003FFF 时,2 被打印到该位置,但是当我将地址更改为 0x40004000 时,2 无法在那里打印。对于任何更高的地址位置都是一样的,比如 0x50000000。因此,根据这些输出,似乎 STR 仅将值写入 0x40000000 和 0x40003FFF 之间的有限内存范围。

有谁知道为什么会这样?还是我的代码有问题?我正在使用 Keil uVision5、NXP LPC2140。

0 投票
1 回答
401 浏览

assembly - 将 64 位数据加载到 32 位寄存器中

假设我有一个 64 位数据的 3 元素数组:

假设我知道“src”的地址(命名为 srcAdr),我可以通过说:

为了得到这个元素更高的 32 位内容,我知道我可以:

问题是,有没有更优雅的方法来做到这一点?比如说,在一条指令中?

0 投票
1 回答
100 浏览

embedded - ARM7 ViSUAL 仿真器和 Keil uVision4

关于ARM7 ViSUAL EMulator和Keil uVision4有两个问题。

  • 在 ARM7 ViSUAL Emulator 上运行它并解释它的作用。
  • 考虑如何声明变量 Value1、Value2、Value3 和 Result。解释为什么这不能使用 Keil uVision4 编译。

我已经运行了代码,但我仍然不明白它的作用。

ARM7 模拟器上的结果