ARM裸机开发bootloader代码搬移从SRAM到DRAM

发布者:科技舞者最新更新时间:2016-06-07 来源: eefocus关键字:ARM  裸机开发  bootloader  代码搬移从 手机看文章 扫描二维码
随时随地手机看文章
本部分分两部分去阐述:

1、ARM启动流程

2、编写代码

一、2440:一上电,就从Nand中取出4KB的代码到SRAM中stepping stone运行,并对内存进行初始化。而后将Nand中代码全部到内存中。

6410:一上电,SROM中的BL0会将Nand中8KB的代码搬移到SRAM中stepping stone运行,并对内存进行初始化。而后将Nand中代码全部到内存中,剩余代码会在内存中运行。

210:一上电,SROM中的BL0会将Nand中代码到IRAM中运行,初始化内存。而后将Nand中全部代码搬移到内存中。

注:2440中stepping stone有4KB 6410中stepping stone有8KB 210中stepping stone 为96KB

二、编写代码

步骤:首先确定搬移的起点和终点,而后使用循环进行搬移。

起点:SRAM

2440:0x0

6410:0x0c000000

210:0x00020000

终点:内存的链接地址

链接起始地址:起始代码在内存中出现的地址。

下面很有必要介绍一下相对地址与绝对地址:

绝对地址:C语言中调用函数;对PC赋值

相对地址:汇编中的B指令,就是进行相对地址操作。它移动相对地址标号的位移。

以6410为例:起点:0x0c000000 终点0x50008000

ARM裸机开发bootloader代码搬移从SRAM到DRAM
 

 

copy_to_ram:
	ldr r0, =0x0c000000
	ldr r1, =0x50008000
	add r3, r0, #1024*4
copy_loop:
	ldr r2, [r0], #4
	str r2, [r1], #4
	cmp r0, r3
	bne copy_loop
	mov pc, lr
 

 


关键字:ARM  裸机开发  bootloader  代码搬移从 引用地址:ARM裸机开发bootloader代码搬移从SRAM到DRAM

上一篇:ARM裸机开发bootloader核心初始化
下一篇:ARM裸机开发笔记1(指令简介)

推荐阅读最新更新时间:2024-03-16 14:56

DSP + ARM架构处理器为机器视觉带来强大运算和控制能力
一些工业、航空电子控制、视觉应用和高端测量测试,如生物影像处理等在实现控制、显示的同时,还需要较强的运算和信号处理能力。德州仪器 (TI) 近日宣布在现有DSP + ARM产品的成功基础上推出Integra系列处理器C6A816x,集成了高性能ARM Cortex-A8内核和高达1.5 GHz的单内核浮点与定点DSP性能。   “有很多算法在DSP平台可以实现,在ARM上也可以;但有些特定的算法,如数据滤波、图像处理等放在DSP上运行的效率会高很多,可能达到60%以上。因此DSP + ARM 的组合架构堪称理想架构”,TI数字信号处理系统业务拓展经理程自清说,因为 DSP 可专门用于处理密集型信号处理需求、复杂的数学函数以及
[单片机]
DSP + <font color='red'>ARM</font>架构处理器为机器视觉带来强大运算和控制能力
构建arm-linux-gnueabi-gcc-4.6.3交叉编译链
一、准备工作 1、准备文件 binutils-2.22.tar.bz2 gcc-4.6.3.tar.bz2 glibc-2.14.1.tar.xz glibc-ports-2.14.1.tar.gz glibc-linuxthreads-2.5.tar.bz2 gdb-7.4.1.tar.bz2 linux-2.6.38.8.tar.bz2 mpfr-3.1.1.tar.bz2 mpc-1.0.1.tar.gz gmp-5.1.0.tar.bz2 2、建立以下变量,方便稍候的输入 #vim ~/.bashrc export TARGET=arm-linux-gnueabi export PREFIX=/usr/local/ar
[单片机]
快速学Arm(6)--使用JTag和H-JTAG下载编译后的文件
前面一文讲了如何使用串口来下载已经编译好的Test.Hex文件.下面我们再讲一下另外一种下载方法,即JTag下载方法.JTag线的另一端连接到PC的并口上,如果使用的是没有并口的笔记本,使用并口卡也是可以的. 使用JTag下载,使用的软件工具是H-JTAG V0.7.0 BETA.EXE,在开发板光盘中可以找到,路径如下: 这里要注意一个问题:这个工具网上会有更高的版本,对于本开发板来讲,也不是H-JTAG版本越高,就效果越好,在网上我曾经下载了一个9.0,结果下载无法成功.尽可能还是使用开发板自带的版本比较好些.当然,如果你愿意,你可以可以试验一下更高的版本,只要好用就行. 1.将H-JTAG安装好后,启动,如下图
[单片机]
快速学<font color='red'>Arm</font>(6)--使用JTag和H-JTAG下载编译后的文件
ARM linux解析之zImage镜像文件的生成
最开始做个约定:存放linux代码的根目录我们叫做:linux_src,代码用linux-3.0.46进行分析。对于arm系统,$(SRCARCH) = ARM。 可能你会想,究竟linux如何编译生成它的压缩内核镜像zImage的呢?哈哈,下面就来做个解析。 当我们在linux_src目录下输入命令: make zImage 就会进入linux_src/makfile,然后找 zImage目标,这个目标在: linux_src/makfile包含的:include $(srctree)/arch/$(SRCARCH)/Makefile 里面, 位于:linux_src/arch/arm/makfile里: zIma
[单片机]
<font color='red'>ARM</font> linux解析之zImage镜像文件的生成
ARM裸板程序及引申_点亮LED
第001节_辅线1_硬件知识_LED原理图 当我们学习C语言的时候,我们会写个Hello程序。那当我们写ARM程序,也该有一个简单的程序引领我们入门,这个程序就是点亮LED。 我们怎样去点亮一个LED呢? 分为三步: 1.看原理图,确定控制LED的引脚; 2.看主芯片的芯片手册,确定如何设置控制这个引脚; 3.写程序; 先来讲讲怎么看原理图: LED样子有很多种,像插脚的,贴片的。 它们长得完全不一样,因此我们在原理图中将它抽象出来。 点亮LED需要通电源,同时为了保护LED,加个电阻减小电流。 控制LED灯的亮灭,可以手动开关LED,但在电子系统中,不可能让人来控制开关,通过编程,利用芯片的引脚去控制开关。
[单片机]
<font color='red'>ARM</font>裸板程序及引申_点亮LED
基于ARM架构的优化工业控制方案设计详解
运营现代化的工厂和加工车间,在技术上都非常复杂。为实现对机械设备和生产过程的精确控制,生产企业需要采用最新系列的传感器、致动器以及伺服系统。作为添加技术以获得精确控制功能优势的范例,各个联网与自动化层现已通过连接至IT网络的控制网络添加到工厂生产车间,它们可提供商业信息与策略,这些信息和策略转而推动生产决策的制定。 这种网络化的集中工业控制模式使得技术人员与工业控制工程师能够访问丰富的数据,以便对工厂运营过程进行观察、微调和优化。工厂厂长与企业高管只需浏览一下仪表盘便能全面了解整个工厂的工作效率。 在过去,处理过程都是采用手动控制,工厂的每个环节也都是独立运作的。通过访问描述工厂实际运营状态的实时数据,管理人员能够更好地了
[单片机]
基于<font color='red'>ARM</font>架构的优化工业控制方案设计详解
基于ARM和FPGA的智能小车监控系统
0 引言 智能小车是机器人研究领域的一项重要内容。它集机械、电子、检测技术与智能控制于一体。在各种移动机构中,智能小车的轮式移动机构最为常见。轮式移动机构之所以得到广泛的应用,主要是因为容易控制其移动速度和移动方向。智能小车可以适应不同环境,不受温度、湿度等条件的影响,完成危险地段、人类无法介入等特殊情况下的任务。一般的智能小车操作控制复杂、功能单一、不能远程重构。 本文介绍的智能小车可移动视频监控系统,以“飞思卡尔杯”智能小车竞赛提供的车模装置为基础,利用ARM芯片S3C2440A控制图像采集、网络传输、速度采集干扰小的模块,利用FPGA芯片控制电机驱动、舵机控制、电量采集干扰大的模块,当上位机通过Internet访问智
[单片机]
基于<font color='red'>ARM</font>和FPGA的智能小车监控系统
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved