当前位置:  技术问答>linux和unix

对start.s的一点小疑问~~~

    来源: 互联网  发布时间:2016-07-27

    本文导语:  start.s中有一段搬移代码  将uboot搬进ram    是一小段汇编 relocate: /* relocate U-Boot to RAM     */ adr r0, _start ldr r1, _TEXT_BASE cmp r0, r1 beq stack_setup ldr r2, _armboot_start ldr r3, _bss_start sub r2, r3, r2 add r2, ...

start.s中有一段搬移代码  将uboot搬进ram    是一小段汇编
relocate: /* relocate U-Boot to RAM     */
adr r0, _start
ldr r1, _TEXT_BASE
cmp r0, r1
beq stack_setup

ldr r2, _armboot_start
ldr r3, _bss_start
sub r2, r3, r2
add r2, r0, r2

copy_loop:
ldmia r0!, {r3-r10}
stmia r1!, {r3-r10}
cmp r0, r2
ble copy_loop

这段一般是从nor flash复制进ram
我想问的就是这个操作有没有涉及到nor flash的读取操作呢????没有的话那我们uboot中的nor flash驱动干嘛用列,有的话怎么没有看到调用呢????疑问

|
NOR的读取是线性的,
而写的时候是由命令按照block的模式写入的。

|
ldmia/stmia就是读flash到ram, 正如楼上说的,线性读, block写


ldmia r0!, {r3-r10}  ##r0是uboot的地址, 前面的代码有个判断, 如果start是在内存中就不需要搬了
stmia r1!, {r3-r10}  ##r1内存地址, 指令有!, r0和r1在不断变化
cmp r0, r2           ##r2是uboot.bin的大小, 前面的代码计算出来的

|
就是说读写和内存一样,
不过它的写 只能把1变成0,而已,
因此,写前都搞成1(也就是erase,),再写,哈哈,


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.swing枚举swingworker.statevalue的类成员方法: started定义及介绍
  • 为什么我的Linux启动时,在starting sendmail 和 starting sm-client时非常慢?
  • java命名空间javax.sound.midi类shortmessage的类成员方法: start定义及介绍
  • httpd start和/etc/init.d/httpd start有什么区别?
  • java命名空间javax.sound.sampled类lineevent.type的类成员方法: start定义及介绍
  • PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
  • java命名空间javax.management.monitor类monitor的类成员方法: start定义及介绍
  • 如何改变button上的标签,比如start按钮按下之后变成stop,在按一次又成start.如此循环。
  • java命名空间javax.management.monitor接口monitormbean的类成员方法: start定义及介绍
  • gdb的start命令不能用?求解
  • java命名空间javax.swing类timer的类成员方法: start定义及介绍
  • 如何改变button上的标签,比如start按钮按下之后变成stop,在按一次又成start.如此循环。 iis7站长之家
  • java命名空间javax.swing.text.html类html.attribute的类成员方法: start定义及介绍
  • 如何让自启动程序在“服务”里有start、stop选项?
  • java命名空间javax.xml.stream接口xmlstreamconstants成员方法: start_document定义参考
  • 关于Java Web Start的问题,
  • java命名空间javax.xml.stream接口xmlstreamconstants成员方法: start_element定义参考
  • 请问hard_start_xmit()何时被调用的问题
  • java命名空间javax.management.timer类timer的类成员方法: start定义及介绍
  • redhat 9 在starting sendmail 时要用好长时间
  • java命名空间java.awt类font的类成员方法: layout_no_start_context定义及介绍
  • 关于starting anacron的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3