ARM在LPAE模式下不支持完整的物理地址空间是因为LPAE模式只支持48位的物理地址空间,而不是完整的64位地址空间。如果需要在ARM处理器上使用完整的64位物理地址,则需要使用AArch64模式。
示例代码:
//判断ARM处理器是否支持LPAE模式 if (is_lpae_supported()) { //设置LPAE模式 enable_lpae_mode(); //在LPAE模式下创建一个48位的物理地址 uint64_t physical_address = (uint64_t)page_table_entry << 12; //访问物理地址 (uint32_t)physical_address = data; } else { //使用AArch64模式 enable_aarch64_mode(); //在AArch64模式下创建一个64位的物理地址 uint64_t physical_address = (uint64_t)page_table_entry << 12; //访问物理地址 (uint64_t)physical_address = data; }
上一篇:ARM微控制器加载原始二进制文件
下一篇:arm无桌面ubuntu