我对ARM Cortex A8中PLD指令的使用有一些疑问。由于我在循环内使用指令,因此可能存在越界内存访问。我怀疑这是否会导致段错误。我在ARM manual which states that中读到
Because a PLD instruction is handled as any other load instruction by all levels of cache, the PLD instruction follows standard data-dependency rules and eviction procedures. During any stage of PLD execution, the PLD instruction is ignored in case of an address translation fault, a cache hit, or an abort.
因此,如果进行越界内存访问,相应的 PLD 指令是否会被忽略是我的疑问。
最佳答案
PLD 指令不会产生段错误。如果 PLD 要求内存系统访问不存在的内存区域,则会被忽略。
来自 ARM ARM
block 引用>The Preload instructions are hints, and so implementations can treat them as NOPs without affecting the functional behavior of the device. The instructions do not generate synchronous Data Abort exceptions, but the memory system operations might, under exceptional circumstances, generate asynchronous aborts.
...
However, a memory operation performed as a result of one of these memory system hints might trigger an asynchronous event, so influencing the execution of the processor. Examples of the asynchronous events that might be triggered are asynchronous aborts and interrupts.
关于arm - PLD指令的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13139872/