首页 > 编程知识 正文

用户态切换到内核态的几种方式,手机无法初始化x5内核

时间:2023-05-04 12:12:22 阅读:163129 作者:1668

% E5 % 86 % 85 % E6 % A0 % b8 % E7 % bb % B4 % E6 % 8c % 81 % E7 % 9d % 80 % E4 % b8 % E7 % bb % 84 % E8 % 87 % aa % E5 % 25 % 25 % % 95 % E7 % 9a % 84 % E6 % 9c % 80 % e9 % ab % 98 % E7 % 9b % ae5 % BD % 95 % e9 % a1 % B9 % e9 % 83 % A8 % 20 % b8 % ba % E7 % ab % B9 % E6 % 8f % 90 % E4 % be % 9b % E5 % 8f % 82 % E8 % 83 % E6 % A8 % a1 % E5 % 8b % 28 % E8 % 20-ox ffffff % E7 % 9a % 84 % b8 % ba2 % E4 % b8 % aa % e9 % B6 % E6 % AE % b5 % ef % BC % 9a % 0a % 20 % E7 % AC % AC % E4 % b8 % 88 % 205 % 88 % 88 % 86 % e9 4 % E5 % 86 % E6 % A0 % b8 % e9 % a1 % b5 % E8 % a1 % ef % BC % E8 % BF % 99 % E4 % b8 % aa % E6 % 9c % 25 % 20 E4 % bb % 85 % 93 % E6 % 9e8% E3 % 82 % E8 % af % a5 % E8 % E5 % 88 % 86 % E6 % 98 % af % E7 % 94 % B1 % 20e % 9e % E7 % 8e % B0 % E7 % 9a % a1 % A8 % E7 % 9a % 84 % E4 % bb % a3 % E7 % A0 % 81 % E7 % 87 % E6 % ae5 % E5 % 8f % E5 % 85 % 85 % 25 % 20 % 2020 % 29 % 3b c % 20 % eax % 2f % 2a % 200 x007 % 20 % 3d % 20 present % 20rw % 20 user % 20 % 2a % 2f % 0a % 2010: % 20 % 20rw % 20 user % c % ecx % 2f % 2a % 20 create % 20 PDE % 20 entry % 20 % 2a % 29f % 0a % 20 movl % 25 % 20 % 2f % 0a % 20 movl % 20 % ecx % 2c page % 2f % 2a % E8 % AE % be % E7 % BD % AE % E5 % be % aa % E7 % 8e % af % E6 % AC % a1 % E6 % 95 % B0 % 2a % 2f % 01113360 n : % 20we % 20 must % 20 map % 207 % E7 % 9a % 84 % E6 % 82 % 9f % E7 % a9 % ba _ end % 20 % 2a % 2f % 0a % 20 % 20 % 2f % 2a % 20 % 2f % 2a % 2a % 84 % 86 % 86 % B6 % 86 % 86 te % 20 bits % 20 % 2a % 2f % 0a % 20 leal % 20 % 28 init _ map _ % eer % 20 EDI % 29 % 2c % ebp % 0a % 20 cmpl % 20 % ebp % 2c % ad % 98 % E6 % 94 % bepg0% 200 x 2000 % ef % BC % 8c % E5 % B0 % 86 % E6 % ad % a4 % E5 % 80 % BC % E5 % 25 % 20a1% b5 % E8 % .. % E3 % 80 % 82 % 20 nable % 20 paging % 20 % E5 % 90 % af % E7 % 94 % A8 % E5 % 88 % e9 % a1 % b5 % E6 % 9c % ba % E5 % 88 % bb . % 20 % 2a % 2f % 0a % 20 movl % 20 % 25cr0% 20c % eax % 25 % 202 a % 20 . and % 20 set % 20 paging % 20 % 28pg % 29 % 20 bit % bb % E4 % b8 % E4 % b8 % aa % E7 % BF % E6 % a7 % E5 % 81 % E7 % a7 % BF % E7 % E7 % 25 % 206 % E8 % af % 91 % E5 % 86 % a7 % E7 % a9 % ba % e9 % 97 % B4 % E7 % 9a % 84 % E5 % 9c % B0 % E5 % 90d % 80 % 25 % 209 a % 84 % E7 % 89 % a9 % E7 % 90 % E5 % % b 5: % E5 % 88 % 9d % E5 % a7 % 8b % E5 % 8c % 96 % E6 % 96 % E7 % bb % 20 a4 % E6 % 97 % B6 % E5 % 88 % e9 % a1 % b5 % E6

set_pte(pte,pfn_pte ) pfn,PAGE_KERNEL_EXEC );

else

set_pte(pte,pfn_pte ) pfn,PAGE_KERNEL );

}

}

}

}

}

调用结束后,初始化静态地址映射的线性地址页表的代码如下:

vaddr=_ fix _ to _ virt (_ end _ of _ fixed _ addresses-1 ) PMD_MASK; //将固定地址映射页表放在页全局目录的1023个项目(最后一个项目)中

page_table_range_init(vaddr,0,pgd_base );

最后,调用permanent_kmaps_init方法来初始化高地址内存。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。