代码搬移

1.起点与终点

起点

终点(连接起始地址决定第一行代码出现的位置)

2.代码

 1 copy_to_ram:
 2     ldr r0, =0x0c000000
 3     ldr r1, =0x50008000
 4     add r3, r0, #1024*4
 5
 6 copy_loop:
 7     ldr r2, [r0], #4
 8     str r2, [r1], #4
 9     cmp r0, r3
10     bne copy_loop
11
12     mov pc, lr
时间: 2024-11-13 08:37:38

代码搬移的相关文章

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

ARM启动流程 1.处理器内部RAM的大小有限,不能拷贝全部的Bootloader,所以需要用内部RAM BL1的代码来拷贝BL2的代码到内存中.规范的方式的代码搬移的起点是flash,终点是内存.但是由于nand flash还没有初始化,所以先从内部ram中把BL1搬移到内存中.等到初始化nand flash后在采用规范的代码搬移方式. 2.起点SRAM地址:2440 0x00000000,6410 0x0C000000,210 0xD0020000 3.链接起始地址决定了程序第一行代码在内存

【重构.改善既有代码的设计】7、在对象之间搬移特性(如何优化类)

7.在对象之间搬移特性 Move Method(搬移函数) 描述:有个函数与其所驻class之外的另一个class进行更多交流:调用后者,或被后者调用.在该函数最常引用(指涉)的class中建立一个有着类似行为的新函数.将旧函数变成一个单纯的委托函数(delegating method),或是将旧函数完全移除. 原因:高耦合.依赖情节. 注意:1.在迁移的时候,要考虑函数用到的属于原class的变量及其他函数,是否也应该迁移,这会是更大的收获.2.不是所有变量都需要移动的,不能移动的作为调用参数

重构笔记——搬移字段

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42780243         在上一篇文章中介绍了"搬移函数".本文将介绍"搬移字段"这种重构手法.         下面让我们来学习这种重构手法吧. 开门见山         发现:程序中某个字段被其所驻类之外的另一个类更多地用到. 解决:在目标类新建一个字段,修改原字段的所有用户,令它们改用新字段. 动机 在类之间移动状态

重构笔记——搬移函数

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42679983         我们都知道,类往往因为承担过多的责任而变得臃肿不堪.这种情况下,一般会使用"提炼类"这种手法将一部分责任分离出去.如果一个类变得"不负责任",一般会使用"内联类"这种手法将它融入另一个类.如果一个类使用了另一个类,一般会运用"隐藏委托关系"手法将这种关系隐藏

重构摘要7_在对象之间搬移特性

<重构-改善既有代码的设计>Martin Fowler 摘要: 第七章 在对象之间搬移特性 Move Method 搬移函数 你的程序中,有个函数与其所驻类之外的另一个类进行更多交流:调用后者,或被后者调用 在该函数最常引用的类中建立一个有着类似行为的新函数.将旧函数变成一个单纯的委托函数,或者将旧函数完全移除. Move Field 搬移字段 某个字段被其所驻类之外的另一个类更多地用到. 如果我需要对类做许多处理,保持小步前进是有帮助的. Extract Class 提炼类 某个类做了应该由

【Java重构系列】重构31式之搬移方法

重构第二式:搬移方法 (Refactoring 2: Move Method) 毋容置疑,搬移方法(Move Method)应该是最常用的重构手段之一,正因为太常用而且较为简单,以至于很多人并不认为它是一种很有价值的重构,但事实并非如此,在最初的代码诞生之后,有些方法可能会被放在一些不合适的地方,例如,一个方法被其他类使用比在它所在的类中的使用还要频繁或者一个方法本身就不应该放在某个类中时,我们应该考虑将它移到更合适的地方.搬移方法,顾名思义就是将方法搬移至合适的位置,如将方法搬移到更频繁地使用

重构手法之在对象之间搬移特性【4】

返回总目录 本小节目录 Introduce Foreign Method(引入外加函数) Introduce Local Extension(引入本地扩展) 7Introduce Foreign Method(引入外加函数) 概要 你需要为提供服务的类增加一个函数,但你无法修改这个类. 在客户类中建立一个函数,并以第一参数形式传入一个服务类实例. 动机 好吧,我得不得说这个在C#中称为:扩展函数.这个其实也没什么好说的,这种事情发生过太多次了.假说你正在使用string类,它基本上提供了我们所需

学习重构(3)-在对象之间搬移特性

1. Move Method(搬移函数) 在该函数最常用的勒种简历一个有着类似行为的新函数,将就函数变成一个单纯的委托函数,或是将就函数完全移除. 应用场景:搬移函数是重构理论的支柱,如果一个类有太多行为,或者一个类与另一个类有太多合作而形成高度耦合,我们就需要搬移函数.通过这种手段,我们可以使系统中的类更简单,这些类最终也将更干净利落的实现系统交付的任务. 示例: class A... void a1()... void a2() { B b = new B(); b.b1(); b.b2()

智能视频监控中的遗留物或搬移物检测

智能视频监控中的遗留物或搬移物检测 [email protected] http://blog.csdn.net/kezunhai 遗留物或搬移物检测是智能视频监控中的一项基本功能,基本上是智能视频监控领域的必备功能.然而,在实际应用中漏报或误判率依然很高.常见的遗留物或搬移物检测算法主要分为两类,一类是先检测,再根据检测前景在场景中的停留时间来判定是否为遗留物或搬移物:另一类,则是先检测,然后采用跟踪方法来判断是否为遗留物或搬移物,该类方法由于目标跟踪本身存在的难点,在实际应用的场景受到了很大