启动代码
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 · 4920 阅读 · 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 · 1197 阅读 · 0 评论 -
u-boot中的.balignl 16,0xdeadbeef的理解
最近在分析u-boot的源代码,看到这一行:.balignl 16,0xdeadbeef不理解了,不知道为什么要这样写,0xdeadbeef,明显是个单词组,写在这里有何意义呢?然后在查阅了众多资料的时候才晃然大悟。下面我一步步来说明:首先要弄明白.balignl的意思,这个其实应该算是一个伪操作符,伪操作符的意思就是机器码里,并没有一个汇编指令与其对应,是编译器来实现其功能的。.转载 2013-10-02 18:32:54 · 1076 阅读 · 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 · 856 阅读 · 0 评论 -
ARM汇编中的LDR及ADR的区别及其在U-BOOT中的应用
我在看U-BOOT的lowlevel_init.S文件时看到以下代码:lowlevel_init:ldr r0, =SMRDATAldr r1, _TEXT_BASEsub r0, r0, r1ldr r1, =BWSCONadd r2, r0, #13*40:ldr r3, [r0], #4str r3, [r1], #4cmp r2, r0bne 0转载 2013-10-06 01:05:11 · 1011 阅读 · 0 评论 -
uboot的lowlevel_init.s解析
boot版本为201103rc1.看了一下lowlevel_init.s里面的代码,发现最难懂的地方当属这里了:ldr r0, =SMRDATAldr r1, _TEXT_BASEsub r0, r0, r1ldr r1, =BWSCON /* Bus Width Status Controller */add r2, r0, #13*4 第一转载 2013-10-09 00:11:43 · 1840 阅读 · 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 · 1197 阅读 · 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 · 699 阅读 · 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 · 1263 阅读 · 0 评论