精彩arm linux演义

时间:2008-06-08 23:03:49  来源:  作者:

 大家好,许多人和我一样,正在苦读linux源代码,希望有照一日,宝典在手,天下我有。小弟不才,也读了两年,写的几首歪诗。从本级开始,把我所理解的linux如何启动贴出来,不懂之处大家讨论一番。也希望把linux从头到尾讨论一遍,计划写它240回,三年写完(笑。。。),欢迎大家动员一些牛人来参与讨论,提高人气,增加流量。


长篇连载--arm Linux演艺---序
  
  滚滚长江东四水,浪花淘净英雄。
  
  大家好,许多人和我一样,正在苦读linux源代码,希望有照一日,宝典在手,天下我有。小弟不才,也读了两年,写的几首歪诗。从本级开始,把我所理解的linux如何启动贴出来,不懂之处大家讨论一番。也希望把linux从头到尾讨论一遍,计划写它240回,三年写完(笑。。。),欢迎大家动员一些牛人来参与讨论,提高人气,增加流量。
  
  小弟用的是arm920T,跑LINUX 2。4。18,下面是第一回。。。。。
  
  长篇连载--arm linux演艺---第一回
  --------------------------------------------------------------------------------
  
  话说。。。(嘘声,“入正题把!“)
  
  好好:
  
  首先,porting linux的时候要规划内存影像,如小弟的系统有64m SDRAM,
  地址从0x 0800 0000 -0x0bff ffff,32m flash,地址从0x0c00 0000-0x0dff ffff.
  规划如下:bootloader, linux kernel, rootdisk放在flash里。
  具体从 0x0c00 0000开始的第一个1M放bootloader,
  0x0c10 0000开始的2m放linux kernel,从 0x0c30 0000开始都给rootdisk。
  
  启动:
  首先,启动后arm920T将地址0x0c00 0000映射到0(可通过跳线设置),
  实际上从0x0c00 0000启动,进入我们的bootloader,但由于flash速度慢,
  所以bootloader前面有一小段程序把bootloader拷贝到SDRAM 中的0x0AFE0100,
  再从0x 0800 0000 运行bootloader,我们叫这段小程序为flashloader,
  flashloader必须要首先初始化SDRAM,不然往那放那些东东:
  
  .equ SOURCE, 0x0C000100 bootloader的存放地址
  .equ TARGET, 0x0AFE0100 目标地址
  .equ SDCTL0, 0x221000 SDRAM控制器寄存器
  // size is stored in location 0x0C0000FC
  
  .global _start
  _start: //入口点
  
  //;***************************************
  //;* Init SDRAM
  //;***************************************
  
  // ;***************
  // ;* SDRAM
  // ;***************
  
  LDR r1, =SDCTL0 //
  
  // ; Set Precharge Command
  LDR r3, =0x92120200
  //ldr r3,=0x92120251
  STR r3, [r1]
  
  // ; Issue Precharge All Commad
  LDR r3, =0x8200000
  LDR r2, [r3]
Tags:


上一篇:没有了   下一篇:Oracle初始参数中三个关于License的设置

文章评论

共有 0人发表了评论 查看完整内容

推荐教程

最新教程