历史上的今天
今天是:2024年12月22日(星期日)
2020年12月22日 | S5PV210的SD卡启动实战1~2
2020-12-22 来源:eefocus
《朱老师物联网大讲堂》学习笔记
学习地址:www.zhulaoshi.org
待烧录bin程序大于16kb,
分bl1 16kb,
16kb以后的为bl2两部分,
从sd卡复制bl2到ddr中特定位置,跳转执行bl2。
BL1大致要做,关开门狗,设置栈,开iCache,初始化DDR,从SD卡赋值BL2到DDR中特定位置,
然后跳转执行BL2,
这个图是SD卡布局图,BLOCK 0是保留的,
这个细节在linux下使用命令烧录可以看出来,
#!/bin/sh
sudo dd iflag=dsync oflag=dsync if=210.bin of=/dev/sdb seek=1
而直接使用烧录工具,这个细节就被工具本身屏蔽了,so看不出来,

之前的BL1到BL2的跳转是通过远跳转指令来实现的,那是因为它们是一起链接的,
但是现在这个是独立的,so不能那样跳转,
在这里,因为我们知道BL2的地址是多少,so可以使用地址来进行强制跳转,即函数指针,
下面是老师的代码,看了后,蛮有感觉的,
#define SD_START_BLOCK 45
#define SD_BLOCK_CNT 32
#define DDR_START_ADDR 0x23E00000
typedef unsigned int bool;
// 通道号:0,或者2
// 开始扇区号:45
// 读取扇区个数:32
// 读取后放入内存地址:0x23E00000
// with_init:0
typedef bool(*pCopySDMMC2Mem)(int, unsigned int, unsigned short, unsigned int*, bool);
typedef void (*pBL2Type)(void);
// 从SD卡第45扇区开始,复制32个扇区内容到DDR的0x23E00000,然后跳转到23E00000去执行
void copy_bl2_2_ddr(void)
{
// 第一步,读取SD卡扇区到DDR中
pCopySDMMC2Mem p1 = (pCopySDMMC2Mem)0xD0037F98);
p1(2, SD_START_BLOCK, SD_BLOCK_CNT, (unsigned int *)DDR_START_ADDR, 0); // 读取SD卡到DDR中
// 第二步,跳转到DDR中的BL2去执行
pBL2Type p2 = (pBL2Type)DDR_START_ADDR;
p2();
}
The SD/ MMC host controller is a combo(组合) host for Secure Digital card and MultiMediaCard.
上一篇:s5pv210-SD卡启动详解
下一篇:tq210 内存配置
史海拾趣
|
ENH038QD1-450/650 尺寸大小: 3.8" 分辨率: QVGA 320 x 240 接口: 6-bits TTL interface 亮度 : 450/650nit(cd/m2) 对比度:高对比度、大开口率 显示模式:Normally White 响应时间:Rise 30ms/ Fall 50ms 功耗:3.4W 工作温度: -30℃--- ...… 查看全部问答> |
|
EMS 2009 Call for Papers: Sept. 20-22, 2009, Beijing, China ====================================================================== The 3rd Int’l Conference on Engineering Management and Service Sciences (EMS 2009) CALL FOR PAP ...… 查看全部问答> |
|
我们刚创建的wince家园,想让所有玩wince的人变成朋友。 logo都没来得及做。想先看看坛子上面兄弟的看法。 目的是想找同道之人共同参与,共同出出好点子,让我们搞wince的变成一个强大的同盟。 试运行网站 http://www.armce.cn/ 嘿嘿~~~ 预祝xd ...… 查看全部问答> |
|
平台:arm开发板,用spi总线外接1个fir红外芯片,s3c2440 + linux2.6.24.7 现在2440这边已经做好了,insmod bitbang.ko,s3c24xx.ko,insmod spidev.ko,用testspi,用示波器可以测到时钟和数据的波形都是对的,但不知道如何读写fir的寄存器?以前都 ...… 查看全部问答> |
|
最近一直在学习F28027的库开发模式,用下来感觉其实一般,Ti官方的手册中也没有一个标准,什么函数什么时候调用,前后有什么顺序要求,就是给了一些例子和函数说明,看起来有些模糊。今天在调试SCI的程序,突然发现用库模式的SCI_LOOPBack_INITTrup ...… 查看全部问答> |
|
以LaunchPadXL-C2000为核心板,设计一款可实现正弦波、方波和三角波信号输出的多函数信号发生器。信号频率0.1Hz-1MHz,输出幅度0.1V-5V可调,信号类型、频率及幅度均由按键选定。… 查看全部问答> |




