- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux源码分析之cpu初始化kernelheads
linux-2.6.20.6/arch/arm/kernel/head.S
这是解压内核后内核入口所在的文件,完成内核解压后将控制权将转移到这里的入口。
先看一下 arch/arm/kernel/vmlinux.lds 这个链接脚本,在开头
186. OUTPUT_ARCH(arm)
187. ENTRY(stext)
188. jiffies = jiffies_64;
189.
这里指定 stext 为入口。
下而回过头来看 head.S 中内容,
74. __INIT
75. .typestext,%function
76. ENTRY(stext)
77. msrcpsr_c,#PSR_F_BIT|PSR_I_BIT|SVC_MODE@ensuresvcmode
78. @andirqsdisabled
79. mrcp15,0,r9,c0,c0@ get processorid
80. bl__lookup_processor_type@r5=procinfor9=cpuid
81. movsr10,r5@invalidprocessor(r5=0)? // 处理器信息结构基地址保存到r10
82. beq__error_p@yes,error p
83. bl__lookup_machine_type@r5=machinfo
84. movsr8,r5@invalidmachine(r5=0)? // 机器类型结构的基地址保存到r8
85. beq__error_a@yes,error a
86. bl__create_page_tables
87.
开头的 __INIT 是一个宏定义在 include/linux/init.h 中:
55. #define __INIT .section .init.text,ax
a 表示 Section contains allocated data
x 表示 Section contains executable instructions.
ENTRY(stext) 也是一个宏,在 include/linux/linkage.h 中定义
30. #ifndef ENTRY
31. #define ENTRY(name) /
32. .globl name; /
33. ALIGN; /
34. name:
35. #endif
36.
这段代码首先设置 cpu 工作模式为 svc 模式,禁止 FIQ 、 IRQ 。然后查找处理器类型、查找机器类型,如果出现错误则进行相应的处理,如果没错,则创建页表。下面分别看看这三个函数。
__create_page_tables 在 211 行定义,这个函数在后面介绍,先看看其他两个。
__lookup_processor_type 这个函数定义在 arch/arm/kernel/head-common.S 的第 146 行,
146. __lookup_processor_type:
147. adr r3, 3f
148. ldmda r3, {r5 - r7}
149. sub r3, r3, r7 @ get offset between virt
150. add r5, r5, r3 @ convert virt addresses to
151. add r6, r6, r3 @ physical address space
152. 1: ldmia r5, {r3, r4} @ value, mask
153. and r4, r4, r9 @ mask wanted bits
154. teq r3, r4
155. beq 2f
156. add r5, r5, #PROC_INFO_SZ @ sizeof (proc_info_list)
157. cmp r5, r6
158. blo 1b
159. mov r5, #0 @ unknown processor
160. 2: mov pc, lr
161.
162. /*
163. * This provides a C-API version of the above function.
164. */
165. ENTR
您可能关注的文档
- ISTA包装测试-G.doc
- ISTA包装测试-H.doc
- IT-for-SCM.doc
- ITAT选修课通知.doc
- issue-孙远工具箱seventeen整理.doc
- ItisafreeassociationofindependentcountriesthatwereoncecoloniesofBritain.doc
- itpa基本物理问题的研究课题申请书格式.doc
- IssueswithZC-basedPSCdesign.doc
- ITU-TK光缆的防护.doc
- IT专业英语词汇精选(F).doc
- 甘肃省XB师范大学附属中学2025届高三上学期一模诊断考试地理答案.doc
- 甘肃省XB师范大学附属中学2025届高三上学期一模诊断政治含解析.doc
- 安徽省皖江名校2024-2025学年高一上学期12月联考英语无答案.doc
- 2025年1月八省联考高考综合改革适应性测高三化学陕西山西宁夏青海卷无答案.doc
- 2025年1月八省联考高考综合改革适应性测高三化学四川卷无答案.doc
- 2025年1月八省联考高考综合改革适应性测高三政治陕西山西宁夏青海卷无答案.doc
- 2025年1月内蒙古自治区普通高等学校招生考试适应性测试(八省联考)历史无答案.doc
- 2025年1月内蒙古自治区普通高等学校招生考试适应性测试(八省联考)历史含解析.doc
- 2025年1月四川省普通高等学校招生考试适应性测试(八省联考)历史含解析.doc
- 2025年1月四川省普通高等学校招生考试适应性测试(八省联考)政治无答案.doc
文档评论(0)