当前位置: 首页 > news >正文

[国嵌攻略][042][代码搬移不可少]

ARM启动流程

1.处理器内部RAM的大小有限,不能拷贝全部的Bootloader,所以需要用内部RAM BL1的代码来拷贝BL2的代码到内存中。规范的方式的代码搬移的起点是flash,终点是内存。但是由于nand flash还没有初始化,所以先从内部ram中把BL1搬移到内存中。等到初始化nand flash后在采用规范的代码搬移方式。

2.起点SRAM地址:2440 0x00000000,6410 0x0C000000,210 0xD0020000

3.链接起始地址决定了程序第一行代码在内存中出现的位置,链接起始地址做为拷贝的终点

终点DRAM地址:2410 0x30000000,6410 0x50000000,210 0x20000000

 

代码搬移

copy_from_ram_to_mem:
	//初始化地址
	ldr r1, =RAM_ADDR
	ldr r2, =MEM_ADDR
	add r0, r1, #BOOT_SZIE
	
	//复制代码
loop:
	ldr r3, [r1], #4
	str r3, [r2], #4
	cmp r1, r0
	bne loop

	mov pc, lr

 

转载于:https://www.cnblogs.com/d442130165/p/4923730.html

相关文章:

  • 有关谷歌Chrome OS笔记本上的Flash Player
  • android基础知识(3)
  • java异常处理
  • Jangaroo:把ActionScript编译为JavaScript
  • 入侵网游服务器手记
  • win7 32bit下安装mysql server
  • 有时候就是看不进论文-jQuery动画特效篇MySQL
  • Java之父回应苹果停止更新Java
  • CompoundButton.OnCheckedChangeListener与RadioGroup.OnCheckedChangeListener冲突
  • 当项目经理是一种修炼
  • git重写历史记录
  • Python导出Excel为Lua/Json/Xml实例教程(一):初识Python
  • 在京高校大学生“准”程序员召集令(新发布上课时间及地点)
  •  D - 粉碎叛乱F - 其他起义
  • Ruby的GC机制源码分析(4)
  • [nginx文档翻译系列] 控制nginx
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • CentOS 7 修改主机名
  • Create React App 使用
  • create-react-app项目添加less配置
  • echarts的各种常用效果展示
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • Git 使用集
  • js数组之filter
  • Map集合、散列表、红黑树介绍
  • MySQL用户中的%到底包不包括localhost?
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • React的组件模式
  • Redis学习笔记 - pipline(流水线、管道)
  • redis学习笔记(三):列表、集合、有序集合
  • Redis在Web项目中的应用与实践
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 反思总结然后整装待发
  • 工作中总结前端开发流程--vue项目
  • 后端_MYSQL
  • 前端_面试
  • 区块链将重新定义世界
  • 鱼骨图 - 如何绘制?
  • 翻译 | The Principles of OOD 面向对象设计原则
  • 通过调用文摘列表API获取文摘
  • 昨天1024程序员节,我故意写了个死循环~
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • #NOIP 2014# day.1 T2 联合权值
  • #pragma pack(1)
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (7)STL算法之交换赋值
  • (C语言)逆序输出字符串
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (论文阅读30/100)Convolutional Pose Machines
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • .Net 6.0 处理跨域的方式
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions