问题标签 [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.
c - 调试内存问题ARM7
我在尝试调试一些看起来非常奇怪的行为时遇到了一些问题。例如,我们有:
并且指针没有明显的原因发生变化。有时是垃圾,有时是代码中其他地方定义的其他常量字符串(或部分)。我们偶尔也会看到代码跳转到不应该运行的不同部分(状态变量似乎在没有被要求的情况下更改)。有 2 或 3 种常见的故障模式,它们似乎是随机发生的。它是一个相对较大的代码库,添加或删除某些部分会改变故障行为(或完全删除它),即使这些部分从未被引用。
目前最好的理论是,这是一个与内存相关的问题,因为我们已经用细齿梳理了所有最近的变化,插入代码段来移动东西的简单行为似乎改变或删除了行为.
调试此问题或类似问题的最佳方法是什么?发现调试器有时很有用,而在其他时候却没有(但这可能是用户错误)。
进一步说明。ARM7,使用 Keil µVision 4 和 armcc v4.1 编译器。
arm - 无中断嵌入式编程
我永远不会相信我会在 2017 年担任这个职位,但我有一个绝对拒绝处理中断的目标系统 (LPC2138),尽管我做了很多尝试。由于各种原因,我确实需要使用它,所以这只是继续使用它的问题。该应用程序是“中断友好的”,具有多个异步 I/O 流(SPI、UART)和定时器信号。对我有利的一件事是,与我的实时需求相比,处理器速度非常快,所以我有很多空闲的咕噜声。
我坚持的方法是在一个大的轮询循环中完成整个事情,这将包括 3 个 FIFO 来处理 I/O。乍一看似乎可行,有没有人根据经验发表任何评论?
中断问题并非微不足道,100% 平台兼容的 hello world 代码片段直接从网络上运行失败,当它们在混乱状态下运行时系统崩溃。如果碰巧在某人知道的某个地方有明确的专家修复,将不胜感激。
bazel - 在 LXC ARM 上构建 Bazel 需要很长时间
我正在使用 LXC ARM7l 架构并尝试在其上构建 bazel,但它需要 50 小时并且在那一刻仍在构建!我认为那是很长的时间,它仍然会打印一些类似的行
有什么不对劲,不是吗?它是什么 ??
谢谢你的建议。
arm - ARM 7 嵌套中断混淆
我一直在阅读有关经典 ARM 7 微控制器的信息。有两种类型的中断:IRQ 和 FIQ。FIQ 允许更快的中断处理并具有比 IRQ 更高的优先级。
它指出现代 ARM 版本具有嵌套中断。
这实际上是否意味着 ARM 7 只能处理分配给 MCU 的 2 个中断,例如来自外部源的 2 个边沿触发中断,仅此而已?
提前致谢
assembly - 如何在 ARM7 上执行模数?
我在 ARM7 上做模数时遇到了很多麻烦。
目前,我有这个代码:
但它根本不起作用。
从我的同学所做的看来,我们应该通过位移来完成,但我不明白这将如何工作。
assembly - 为什么这不会改变内存中 array1 中某些元素的值?
我在 Keil 上编写了一些汇编代码,如果数组中的元素 < 5,则程序会增加该元素。麻烦的是,ARM 代码不会改变内存中 array1 的值。为此,我需要进行哪些更改?
assembly - 为什么 STR 只适用于 0x40000000 和 0x40003FFF 之间的地址?
代码:
此代码将值 2 写入内存位置 0x40000000。当我将其更改为 0x20000000 时,2 无法写入那里。与 0x3FFFFFFF 相同。当我将内存位置设置为 0x40003FFF 时,2 被打印到该位置,但是当我将地址更改为 0x40004000 时,2 无法在那里打印。对于任何更高的地址位置都是一样的,比如 0x50000000。因此,根据这些输出,似乎 STR 仅将值写入 0x40000000 和 0x40003FFF 之间的有限内存范围。
有谁知道为什么会这样?还是我的代码有问题?我正在使用 Keil uVision5、NXP LPC2140。
assembly - 将 64 位数据加载到 32 位寄存器中
假设我有一个 64 位数据的 3 元素数组:
假设我知道“src”的地址(命名为 srcAdr),我可以通过说:
为了得到这个元素更高的 32 位内容,我知道我可以:
问题是,有没有更优雅的方法来做到这一点?比如说,在一条指令中?