
启动代码
lidaqiang99
这个作者很懒,什么都没留下…
展开
-
__asm__ __volatile__("": : :"memory")等系列问题
__asm__ __volatile__("": ::"memory") 内存屏障(memory barrier) #define set_mb(var, value) do { var = value;mb(); } while (0) #define mb() __asm__ __volatile__ ("" : : :"memory") 1)set_mb(),mb(),b转载 2013-10-02 20:52:11 · 5058 阅读 · 0 评论 -
汇编中标号 在c中的使用
u-boot/cpu/xx/start.S中: _TEXT_BASE: .word TEXT_BASE /*uboot映像在SDRAM中的重定位地址,我设置为0xa170 0000 */ .globl _armboot_start _armboot_start: .word _start /*_start是程序入口,链接完毕它的值应该是0xa170 0000=TEXT_转载 2013-10-02 20:17:00 · 1220 阅读 · 0 评论 -
u-boot中的.balignl 16,0xdeadbeef的理解
最近在分析u-boot的源代码,看到这一行: .balignl 16,0xdeadbeef 不理解了,不知道为什么要这样写,0xdeadbeef,明显是个单词组,写在这里有何意义呢?然后在查阅了众多资料的时候才晃然大悟。 下面我一步步来说明: 首先要弄明白.balignl的意思,这个其实应该算是一个伪操作符,伪操作符的意思就是机器码里,并没有一个汇编指令与其对应,是编译器来实现其功能的。.转载 2013-10-02 18:32:54 · 1102 阅读 · 0 评论 -
ARM汇编伪指令 .word
经常碰到那些以“.”打头的一些令人头疼的伪指令, 至于.globl _start .balign .align .data .text等等就算了,最最bt的如下: _undefined_instruction: .word undefined_instruction 这个.word令人费解。网上的技术人员都不屑回答,说请参考GNU ASM。我去看了,对于.word解释如下: h转载 2013-10-06 01:00:18 · 882 阅读 · 0 评论 -
ARM汇编中的LDR及ADR的区别及其在U-BOOT中的应用
我在看U-BOOT的lowlevel_init.S文件时看到以下代码: lowlevel_init: ldr r0, =SMRDATA ldr r1, _TEXT_BASE sub r0, r0, r1 ldr r1, =BWSCON add r2, r0, #13*4 0: ldr r3, [r0], #4 str r3, [r1], #4 cmp r2, r0 bne 0转载 2013-10-06 01:05:11 · 1061 阅读 · 0 评论 -
uboot的lowlevel_init.s解析
boot版本为201103rc1. 看了一下lowlevel_init.s里面的代码,发现最难懂的地方当属这里了: ldr r0, =SMRDATA ldr r1, _TEXT_BASE sub r0, r0, r1 ldr r1, =BWSCON /* Bus Width Status Controller */ add r2, r0, #13*4 第一转载 2013-10-09 00:11:43 · 1874 阅读 · 0 评论 -
ARM汇编中ldr与adr的区别(转)
转自:http://coon.blogbus.com/logs/2738861.html ldr r0, _start adr r0, _start ldr r0, =_start nop mov pc, lr _start: nop 编译的时候设置 RO 为 0x0转载 2013-10-06 01:04:21 · 1229 阅读 · 0 评论 -
u-boot
U-Boot 移植 一、BootLoader 原理 1. 嵌入式linux软件分布 一般情况下嵌入式linux软件分为以下几部分: a. 引导加载程序,包括厂商在内部ROM中固化的启动代码,(其主导作用是为了引导BootLoader)和BootLoader两部分。 b. linux内核和driver。 c. 根文件系统和文件系统(建立在Flash内存设备之上的文件系统,比如:EXT4,原创 2013-09-28 00:03:10 · 717 阅读 · 0 评论 -
嵌入式系统 Boot Loader 技术内幕---http://www.ibm.com/developerworks/cn/linux/l-btloader/
1. 引言 在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行。一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次: 1. 引导加载程序。包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两大部分。 2. Linux 内核。特定于嵌入式板子的定制内核以及内核的启动参数。 3. 文件系统。包括根文件系统和建转载 2013-09-28 00:07:47 · 1288 阅读 · 0 评论