本文共 651 字,大约阅读时间需要 2 分钟。
一、iROM完成的工作
1、关闭看门狗
2、初始化调整缓存
3、初始化栈内存地址
4、初始化堆内存地址
5、初始化块设备拷贝函数
6、设置PLL并且设备系统时钟
7、拷贝BL1阶段的代码到SRAM中
8、检查被拷贝程序的校验和
9、检查是否安全模式
10、跳转到BL1的起始代码处
注意:iROM中已经有固化的代码,其实不需要再做一遍,但引导程序为了能够通用会把iROM中做的事情再做一遍。
二、BL1中需要完成的工作
1、以引导操作系统为目的
1.电源锁定
2.初始化DRAM
3.设置内存映射表
4.重新设置堆、栈的内存地址
5.拷贝BL2到DRAM中
6.跳转到BL2中运行
2、以控制硬件设置为目的
1.电源锁定
2.开始执行控制硬件的业务逻辑代码
注意:BL1中的代码前16个字节为校验和
三、电源锁定
地址: 0xE010_E81C
值:b[0] = 1 b[8] = 1 b[9] =1
ldr r0, =0xe010e81c unsigned int* p = 0xe010e81c;
ldr r1, [r0] unsigned int val = *p;
orr r1, r1, #0x300 val = val | 0x300;
orr r1, r1, #0x1 val = val | 0x1;
str r1, [r0] *p = val;
注意:汇编语言中 . 代表当前位置,b . 就是死循环
四、计算校验和
根据官方提供mkv210_image.c,重写一份添加校验和工具。
转载地址:http://ecq.baihongyu.com/