LINUX内核在arm平台上的移植.ppt.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LINUX内核在arm平台上的移植.ppt.ppt

LINUX内核在arm平台上的移植;实验目的 实验内容 Bootloader Linux内核 实验步骤 ;实验目的;实验内容;嵌入式Linux系统构成;Bootloader介绍;Bootloader的启动流程;Linux内核介绍;Linux内核结构;Linux内核结构(续);Linux内核移植 1;Init.S;/* * Setup the initrd parameters to pass to the kernel. This can either be * passed in via a param_struct or a tag list. We spot the param_struct * method by looking at the first word; this should either indicate a page * size of 4K, 16K or 32K. */ ldmia r13, {r4-r8} @ get size and addr of initrd @ r5 = ATAG_INITRD @ r6 = initrd start @ r7 = initrd end @ r8 = param_struct address ldr r9, [r8, #0] @ no param struct? teq r9, #0x1000 @ 4K? teqne r9, #0x4000 @ 16K? teqne r9, #0x8000 @ 32K? beq param_struct ldr r9, [r8, #4] @ get first tag teq r9, r4 bne taglist @ ok, we have a tag list /* * We didnt find a valid tag list - create one. */ str r4, [r8, #4] mov r4, #8 str r4, [r8, #0] mov r4, #0 str r4, [r8, #8] /* * find the end of the tag list, and then add an INITRD tag on the end. * If there is already an INITRD tag, then we ignore it; the last INITRD * tag takes precidence. */;taglist: ldr r9, [r8, #0] @ tag length teq r9, #0 @ last tag? addne r8, r8, r9 bne taglist mov r4, #16 @ length of initrd tag mov r9, #0 @ end of tag list terminator stmia r8, {r4, r5, r6, r7, r9} mov pc, r12 @ call kernel /* * We found a param struct. Modify the param struct for the initrd */ param_struct: add r8, r8, #16*4 stmia r8, {r6,r7} @ save in param_struct mov pc, r12 @ call kernel move: ldmia r4!, {r7 - r10} @ move 32-bytes at a time stmia r5!, {r7 - r10} ldmia r4!, {r7 - r10} stmia r5!, {r7 - r10} subs r6, r6, #8 * 4 bcs move mov pc, lr data: .word initrd_start .word initrd_addr .word initrd_len .word kernel_start .word kernel_addr .word kernel_len .word 0 @ r4 = ATAG_CORE .word 0 @ r5 = ATAG_INITRD .word initrd_addr @ r6 .word initrd_len @ r7 .word params @ r8 .type

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档