ARMv6 引入了一个很棒的功能 -未对齐的内存访问,这使得代码中的某些事情变得更加简单和更快。但微软只在winCE6中提供了API。现在大多数 PDA 都基于 WinMobile6(基于 CE 5.x)。默认情况下禁用未对齐访问:(
我尝试在 CP15 寄存器中设置未对齐标志,但这不起作用 - 我在读取未对齐数据时发生崩溃。
是否可以在 WinMobile6 上启用未对齐访问?
Edit:我找到了该工具,它可以启用未对齐的访问,但我想从我的代码中打开/关闭它。它是nue高级处理器 http://www.nuerom.com/BlogEngine/page/nueAdvancedProcessor.aspx.
有一个未对齐访问标志(CP15 控制寄存器中的 U 位)和一个对齐错误检查器(A 位)。确保您拥有适合您想做的事情的正确组合。特别是,如果设置了 A 位,则所有未对齐的访问都将导致数据中止异常,即使您设置了 U 位。查看有关该内容的 ARM 文档 - 所有内容均可在http://www.arm.com http://www.arm.com.
特别是,您需要 ARM 体系结构参考手册中的 A2.8.2 节“ARMv6 系统中的未对齐数据访问”。文档编号 ARM DDI 0100I。它的标题是“ARMv5 架构参考手册”,但包含初始 ARMv6 信息。我希望这个链接有效:http://infocenter.arm.com/help/topic/com.arm.doc.ddi0100i/index.html http://infocenter.arm.com/help/topic/com.arm.doc.ddi0100i/index.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)