首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

分析篇(2)-lowlevel.init.S

2012-09-14 
分析篇(二)-----lowlevel.init.S分析篇(二)-----lowlevel.init.S-----------------------------使用环境 P

分析篇(二)-----lowlevel.init.S
分析篇(二)-----lowlevel.init.S
-----------------------------
使用环境
PC:     ubuntu 11.04
kernel: 2.6.32-28-generic
corss:  arm-linux-gcc 4.3.2
arm:    s3c6410
-----------------------------
作者: LvApp
联系方式: 97164811@qq.com

一切版权均有作者所有,欢迎转载,请指明出处,如何修改请与本人联系,谢谢

今天主要分析上次说的lowlevel_init.S 这个文件board/samsung/smdk6400/lowlevel_init.S
这个文件内的lowlevel_init 就是系统初始化的时候被调用的,在这里面完成很多事情,主要为:
1:led设置
2:禁止看门狗
3:禁止所有的中断
4:设置系统时钟
5:设置nand相关的寄存器
6:设置内存blank相关寄存器


下面直接看代码:


这里开始就是跟中断相关了

/* * NAND Interface init for SMDK6400 */nand_asm_init:ldrr0, =ELFIN_NAND_BASE/* 此处由于是第一次获取,读取到的应该是复位值 0x0000100X * 此处设置了nand时序线上的延时时间,采用最大值 TACLS TWRPH0 TWRPH1 均为7 *  * TACLS = HCLK * TACLS  * TWRPH0 = HCLK * (TWRPH0 + 1) * TWRPH1 = HCLK * (TWRPH1 + 1) */ldrr1, [r0, #NFCONF_OFFSET]orrr1, r1, #0x70orrr1, r1, #0x7700strr1, [r0, #NFCONF_OFFSET]/* 开始nand控制器,禁止2个NAND芯片,未使能 */ldrr1, [r0, #NFCONT_OFFSET]orrr1, r1, #0x07strr1, [r0, #NFCONT_OFFSET]movpc, lr/** NAND Interface init for SMDK6400*/nand_asm_init:ldrr0, =ELFIN_NAND_BASE/* 此处由于是第一次获取,读取到的应该是复位值 0x0000100X * 此处设置了nand时序线上的延时时间,采用最大值 TACLS TWRPH0 TWRPH1 均为7 *  * TACLS = HCLK * TACLS  * TWRPH0 = HCLK * (TWRPH0 + 1) * TWRPH1 = HCLK * (TWRPH1 + 1) */ldrr1, [r0, #NFCONF_OFFSET]orrr1, r1, #0x70orrr1, r1, #0x7700strr1, [r0, #NFCONF_OFFSET]/* 开始nand控制器,禁止2个NAND芯片,未使能 */ldrr1, [r0, #NFCONT_OFFSET]orrr1, r1, #0x07strr1, [r0, #NFCONT_OFFSET]movpc, lr

对于nand的详细介绍,会在移植帖中讲解..这里只需要简单的知道下就好了..第一阶段对nand的操作,只有copy了...

我们把复杂的处理,都放到第二阶段,到时候会跟大家讲解mtd管理的流程...


Finish!
Thanks a lot;

热点排行