1、u-boot-2016.11的第一个启动的文件为archarmlibvectors.S,系统上电时,产生复位异常,从vectors.S中的reset跳转到start.S (archarmcpuarm920t),在该文件中修改系统时钟代码,并添加上icache的启动代码加快启动速度(添加到屏蔽IRQ中断代码之后):
/******************初始化系统时钟********************/
ldr r0,=0x4c000014
mov r1,#0x05 /*FCLK:HCLK:PCLK = 1:4:8 = 400M:100M:50M*/
str r1,[r0]
mrc p15, 0, r1, c1, c0, 0
orr r1, r1, #0xc0000000
mcr p15, 0, r1, c1, c0, 0
ldr r0,=0x4c000004
ldr r1,=0x5c011
str r1,[r0]
/******************启动ICACHE********************/
mrc p15, 0, r0, c1, c0, 0@ read control reg
orr r0, r0, #(1<<12)
mcr p15, 0, r0, c1, c0, 0 @ write it back
注释掉Smdk2440.c(boardsamsungsmdk2440)中的board_early_init_f函数中的时钟配置:
2、随后进入lowlevel_init.S(boardsamsungsmdk2440)中的lowlevel_init配置初始化2440的存储控制器包括SDRAM初始化,将存储控制器13个寄存器的值替换为自己的寄存器的值:
3、编译,烧写到NORflash,输出乱码。查找下来是Speed.c(archarmcpuarm920ts3c24x0)中的获取时钟函数get_HCLK有问题,没有配置CONFIG_S3C2440,到includeconfigssmdk2440.h中去配置:
注意!不要使用如下注释方法,会报错。
再编译,烧写到NORflash,成功启动并打印出信息,识别出SDRAM大小,如图:
上一篇:u-boot-2016.11移植到S3C2440之新建一个单板(1)
下一篇:详细解析uboot移植(针对开发板mini2440)
推荐阅读最新更新时间:2024-10-26 06:54
设计资源 培训 开发板 精华推荐
- AM1S-0518SZ 1W DC-DC转换器典型应用
- LT8330EDDB 8V 至 40V 输入、±15V 转换器的典型应用电路
- 尺子新工程
- 基于FM5324G的锂电池充放电模块
- LT1307BCMS8 单节电池供电恒流 LED 驱动器的典型应用电路
- EVAL-ADM2914EBZ,用于服务器 ADM2914 微处理器电源监控的评估板
- LT8315HFE 20 至 450Vin 隔离式 12Vout 隔离反激式转换器的典型应用电路
- 使用 ON Semiconductor 的 STK404-120S 的参考设计
- LT3091MPR 负输出电流监视器的典型应用
- LF18ABDT-TR 1.8V 低压降稳压器的典型应用