博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
代码搬移
阅读量:4285 次
发布时间:2019-05-27

本文共 709 字,大约阅读时间需要 2 分钟。

代码搬移:将nand flash中的bootloader拷贝到内存

规范的代码搬移应该是将nand flash中的bootloader拷贝到内存,但由于到目前为止还没对nand flash进行初始化,且目前编写的bootloader远小于4KB,因此今天的代码搬移是将SRAM中的bootloader拷贝到内存
起点:SRAM
各芯片的SRAM起始地址有所不同,可通过芯片手册查询(S5PV210的SRAM的起始地址为0xd0020000,但因为芯片刚上电BL0从nand flash中拷贝BL1到SRAM时,代码BL1已经添加了16字节的头信息,因此从SRAM拷贝代码到内存时不能将这头信息也拷贝到内存,即起点地址变为0xd0020010)

S3C2440 S3C6410 S5PV210
0x0 0x0c000000 0xd0020010

终点:链接脚本中的代码起始地址

以S3C2440代码为例,汇编代码:

copy_to_ram:    ldr r0, =0x0                @起点    ldr r1, =0x30008000         @终点    add r3, r0, #1024*4         @拷贝4KBcopy_loop:    ldr r2, [r0], #4            @将r0地址指令赋给r2寄存器,完成后r0地址加4    str r2, [r1], #4            @将r2寄存器指令写入r1地址,完成后r1地址加4    cmp r0, r3                  @判断是否拷贝完成    bne copy_loop

转载地址:http://beigi.baihongyu.com/

你可能感兴趣的文章
Xamarin.Forms Performance on Android
查看>>
AndroidManifest.xml <uses-feature> 和 <uses-permisstion>
查看>>
No toolchains found in the NDK toolchains folder for ABI with prefix: mipsel-linux-android
查看>>
【Java】JSP入门
查看>>
【JAVA】Session
查看>>
【Java】EL和JSTL
查看>>
【JAVA】三层架构,综合练习
查看>>
【Java】Filter和Listener
查看>>
【Python3】网络编程基础
查看>>
【Flask】制作用户登陆
查看>>
javascript操作html元素CSS属性
查看>>
献给那些前端学习迷茫的人 -----前端开发必备的11项技能!!!
查看>>
《Javascript权威指南》学习笔记之十四:JavaScript内建类
查看>>
JavaScript实现简单日历
查看>>
论”犯贱“ --生活小记
查看>>
JavaScript实现简单图片滚动 --9张图告诉你,C罗欲哭无泪
查看>>
国外优秀JavaScript资源推荐
查看>>
JS中单引号/双引号以及外部js引入的一些问题
查看>>
加班防猝死的十个小建议
查看>>
《JavaScript权威指南》学习笔记之二十---XMLHttpRequest和AJAX解决方案
查看>>