cost 190 ms
在 ARMv6 汇编中,一个代码不起作用,但修改后的版本有效。 为什么? - in ARMv6 assembly one code is not working, but the modified version works. Why?

我在 armv6 程序集中有一个程序,它计算 (x +y)^2 的结果此代码不起作用,并返回:“不受支持的 ARM 系统调用:0xffffffdf” 但是这个经过稍微编辑并且可以工作(或者没有?): 谁能告诉我为什么第一个代码不起作用? 第二个甚至有效吗? ...

明确 TST 指令 - ARM 组装 - Clarity About TST Instruction - ARM Assembly

所以这里我有以下代码(ARMv6 程序集): 我理解除tst指令以外的所有行。 我在网上做了一些研究,我能找到的最好的定义是: 测试寄存器是零还是负。 在寄存器与其自身之间执行逻辑与。 我在理解它的含义时遇到了一些麻烦,所以我尝试使 C 等同于tst指令,这就是我得到的: 上面的代码似乎不起作用。 ...

为什么非连续加载速度更快,即使缓存未命中惩罚保证为零? - Why are non-consecutive loads faster, even when the cache miss penalty is guaranteed to be zero?

背景: 我用 C 写了一个函数并用arm-none-eabi-gcc (7-2018-q2-update) 编译它。 为循环体生成的汇编代码看起来每次迭代需要 20 个周期,包括 2 个等待状态,用于加载操作访问非易失性程序存储器中的常量数据。 但是,我的 MCU 的 NVM 控制器缓存说缓存未 ...

优化级别的宏 (ARMCC V6) - Macro for optimization level (ARMCC V6)

有预定义的宏,例如__OPTIMIZE__ (在所有优化编译中定义)和__OPTIMIZE_SIZE__ (如果编译器正在优化大小则定义)。 我使用这些宏来检查是否为发布目标设置了正确的优化级别,如果没有,我会打印出警告。 是否有可能检查是否设置了优化级别-Ofast ? 可能类似于__OPTIM ...

从 Ada 中的地址 0x0 读取 - Reading from Address 0x0 in Ada

我在裸板运行时运行,从地址零读取数据是我的软件中的一个有效用例。 但是,运行时将地址 0x0 视为null ,并在使用-O2编译时在以下代码中引发异常。 使用-O1编译时,代码的行为符合预期: 有没有办法解决这个问题? 我的平台上的详细信息: Ravenscar 小尺寸运行时移植到 Arm Cor ...

在Armv6上外围端口重新映射和对齐 - Peripheral port remapping and alignment on armv6

在一个旧的Android平板电脑的引导程序中,我找到了一个代码块,该代码块禁用了mmu,然后重新映射了外围端口(发生了向超级用户模式的传输,但未显示)。 我真的不明白如何重新映射外围端口。 《 ARM1176JZF-S技术参考手册》的第3-131页介绍了寄存器的工作方式。 位 ...

确定在 Pi Zero W (armv6) 上导致“非法指令”的库,并修复构建 - Determining the library which causes "Illegal instruction" on a Pi Zero W (armv6), and fixing the build

我知道 Pi Zeros 上的很多编译问题是由于它们使用 armv6,而较新的 Raspberry Pi,如 3 A+ 和 B+ 使用 armv7。 但是,我不明白如何在导致问题的应用程序中找到有问题的库,以及是否可能有一个简单的解决方法来解决这个问题。 背景: 我正在尝试将应用程序从 Linux ...

armv7生成的ELF文件,armv6生成的.o文件,同时使用-march=armv6,为什么? - ELF file generated in armv7, .o files in armv6, while using -march=armv6, why?

我正在尝试将我的程序编译为 armv6,但 ELF 文件是为 armv7 构建的,即使我使用-march=armv6选项也是如此。 所有的.o文件都编译到了armv6,只有ELF文件是错误的。 基本上我是这样编译的: arm-linux-gnueabihf-g++ -static -march= ...

Gcc裸属性留下一些尾随函数序言作为指令 - Gcc naked attribute leaves some trailing function prologue asm instructions

我在cortex-m0上有一个svc异常处理程序的以下实现: 当我为cortex-m0构建它时,它看起来像这样: 当然,导致硬故障,R7中的值是“未定义的”,并且它很可能包含不在地址范围内的值。 当我删除裸属性时,程序集更有意义: 我之前没有使用过裸属性,为什么现在 ...

ARM 预取解决方法 - ARM prefetch workaround

我有一种情况,其中某些地址空间是敏感的,因为您阅读它会崩溃,因为那里没有人响应该地址。 bx 不是由编译器作为指令创建的,而是一个 32 位常量的结果,该常量不适合作为单个指令中的立即数,因此设置了 pc 相对负载。 这基本上是文字池。 它碰巧有一些类似于 bx 的位。 可以轻松编写测试程序 ...

如何使用PhoneGap Build的crosswalk webview插件获取ARMv6架构的Android应用程序? - How to get android app for ARMv6 architecture with crosswalk webview plugin from PhoneGap Build?

将crosswalk webview插件添加到我的应用程序后,我收到了x86版本或ARMv7版本。 但我希望我的应用程序也可以在具有ARMv6架构的设备上运行,并且我知道ARMv6架构的应用程序集也可以在ARMv7上运行,但这对ARMv7来说不适用于ARMv6。 这就是我想要获得ARMv6版 ...

ARMv6-M 内存保护单元 - ARMv6-M memory protection unit

在阅读ARMv6-M的文档时,我第一次遇到了内存保护单元(并没有那么复杂)。 根据文档,有一个名为 MPU_RASR 的寄存器(代表“MPU 区域属性和大小寄存器”)并且显然有多个寄存器(如果我理解正确的话,每个内存区域一个)。 我的问题是我怎么知道这个寄存器有多少副本存在? (我从 Valida ...

2015-12-30 00:40:19   1   225    arm / armv6 / mpu  
SIGSEGV在ARMv6上的数组中执行机器代码 - SIGSEGV at executing machine code from array on ARMv6

我正在尝试在ArchLinux下执行第一个Raspberry Pi上存储在数组中的机器代码。 我已经在x86下完成了,但是在ARMv6下我做错了。 问题在于数组中的代码无关紧要,它在执行第一条指令后始终会崩溃。 在gcc 5.2.0中禁用了Thumb交互功能的情况下编译代码。 这是我 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM