uboot
文章平均质量分 91
lin111000713
这个作者很懒,什么都没留下…
展开
-
什么是重定位?
【zuiha】6.1 存储器的基本概念 主存储器管理仍然是今天操作系统十分重要的内容;能否合理而有效的使用主存,在很大成度上反映了操作系统的性能,并直接影响到整个计算机系统作用的发挥。6.1.1 存储器的层次 目前在许多计算机系统中,采用三级存储器结构,即高速缓冲存储器、主存储器和外部存储器。三级存储器的比较 从高速缓存到外存,其容转载 2014-08-21 16:22:33 · 1301 阅读 · 0 评论 -
AMR寄存器的别名 + APCS
ARM中的寄存器的别名默认的情况下,这些寄存器只是叫做r0,r1,...,r14等,而APCS 对其起了不同的别名。使用汇编器预处理器的功能,你可以定义 R0 等名字,但在你修改其他人写的代码的时候,最好还是学习使用 APCS 名字。一般编程过程中,最好按照其约定,使用对应的名字,这样使得程序可读性更好。关于不同寄存器所对应的名字,见下表:Table 3转载 2014-09-28 22:35:08 · 1220 阅读 · 0 评论 -
gd_t和bd_t 以及 *gd asm ("r8")
2011-10-20 11:02:58 分类: 嵌入式gd_t和bd_t是u-boot中两个重要的数据结构,在初始化操作很多都要靠这两个数据结构来保存或传递.分别定义在./include/asm/global_data.h和./include/asm/u_boot.h1.gd_t: global data数据结构定义,位于文件 include/asm-arm/g转载 2014-09-28 22:55:35 · 1097 阅读 · 0 评论 -
在arm平台使用ldd命令
2010-08-05 17:32:41| 分类: Linux | 标签: |举报 |字号大中小 订阅ldd是一个脚本命令,基于shell,要在arm平台上使用,需进行如下操作:1、 找到/usr/local/arm/4.3.2/arm-linux/sys-root/usr/bin/ldd,编辑之2、 第一行#! /bin/bash改为busybox sh所在路径如#转载 2014-09-25 22:48:32 · 4332 阅读 · 0 评论 -
arm-none-linux-gnueabi-readelf看库依赖
1、问题描述:运行一个程序,会出现-/bin/sh: xxx :not fount打开/sbin下会发现这个xxx可执行文件是存在的,这可能是文件系统中(/lib)中缺少某些库导致的。 2、解决方法-以hello.c示例以hello.c为例,编译出了hello可执行文件,放到了/sbin中,并且在/etc/init.c/rcS中添加:/sbin/hello &运行时出现转载 2014-09-25 23:10:52 · 1852 阅读 · 0 评论 -
undefined reference to ‘raise’
[日期:2011-12-24] 来源:Linux社区 作者:wwd574000815 [字体:大 中 小] 将cpu /arm920t/config.mk 改为PLATFORM_RELFLAGS += -fno-strict-aliasing -fno-common -ffixed-r8 / -msoft-floatPLATFORM_CPPFLAGS +=转载 2014-09-14 14:19:36 · 610 阅读 · 0 评论 -
u-boot-1.1.6编译过程中出现cannot find -lc
分类: Linux 系统管理 2013-06-03 00:54 488人阅读 评论(0)收藏举报在尝试u-boot-1.1.6向mini2440移植的过程中,遇到下面的编译问题:opt/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-ld: cannot find -lc打开u-boot-转载 2014-09-13 16:33:08 · 641 阅读 · 0 评论 -
指令STMFD和LDMFD分析
可以指向不同的位置。栈指针指向栈顶元素(即最后一个入栈的数据元素)时称为FULL栈;栈指针指向与栈顶元素相邻的一个可用书局单元时称为EMPTY栈。数据栈的增长方向也可以不同。当数据栈向内存地址减小的方向增长时,称为Descending栈;当数据栈向内存地址增加的方向增长时,称为 Ascending栈综合上面两点,可以存在以下四种数据栈:FD - Full DescendingED转载 2014-08-18 10:50:19 · 963 阅读 · 0 评论 -
关于韦东山书上的裸机程序在mini2440上的运行
近来又开始学习韦东山书上的裸机驱动,在运行SDRAM中的代码的时候发现不能正确运行,当初下载的方法是通过mini2440自带的supervivi的d命令烧写程序。现在想想真是犯了很多错误。在韦东山的书上不止一次强调这些裸机程序要下载到nandflash上运行,但我都是通过supervivi的d命令来下载到SDRAM中运行,呵呵,能正常运行才怪。现在稍微总结下: 1.这些裸机程序是需转载 2014-08-17 23:14:21 · 1903 阅读 · 1 评论 -
程序从片内地址0开始,但为什么链接地址又设0x30000000,那不就从0x30000000开始了,反汇编可以看到不是从0开始的
分类: 嵌入式硬件--裸机 2012-04-11 10:37 1592人阅读 评论(1)收藏举报汇编存储flash谢谢韦老大和独孤君韦老大回答:1. 裸板程序烧在FLASH上 一上电,肯定从0地址运行2. 但是,0地址要么对应NOR FLASH,要么对应只有4K的片内内存3. 程序要读写数据,或是程序大于4K,怎么办?4. 程序就要复制到转载 2014-08-15 12:11:46 · 2465 阅读 · 0 评论 -
程序运行地址和加载地址-为什么使用位置无关指令
在嵌入式编程中,我们经常讲程序保存在 nand flash中。但是我们知道,nand flash的接口设计和 RAM 的接口设计是不一样的。他的 数据线通常都是复用的,所以通常存取都是以块为单位(nor flash带有RAM接口,有足够的地址线来寻址,所以可以访问内存中每一个字节) 这导致了,nand flash不可以片内执行程序(nor flash可以,因为他能存取内存每一个字节)转载 2014-08-15 15:12:27 · 692 阅读 · 0 评论 -
S3C2440存储器扩展研究——剖析nWE, nWBE, nBE间关系
S3C2440存储器扩展研究——剖析nWE, nWBE, nBE间关系(2009-06-17 20:51:05)转载▼标签:s3c2440nwe 存储器扩展彻底研究——剖析nWE, nWBE, nBE三者之间的关系1.存储器扩展地址、数据线的连接方法重点参见2440手册,主要涉及地址对齐问题,较容易理解,此处不作论述。转载 2014-08-17 11:57:17 · 1095 阅读 · 0 评论 -
ARM的FP寄存器
分类: LINUX原文地址:ARM的FP寄存器 作者:chenxibing008ARM的FP寄存器说明。FP实际上就是R11寄存器,在APCS调用规则中,使用R11作为帧指针寄存器。C程序在编译过程中,通常将所有函数的局部变量都分配到一个连续的存储区中,而这个存储区存放于堆栈中,被称为函数的“存储帧”,通过一个指针访问,这个指针就是帧指针寄存器。转载 2014-08-16 16:43:10 · 867 阅读 · 0 评论 -
Source Insight建工程之Uboot
Source Insight建工程之Uboot 分类: 好的工具 2011-09-04 20:07 4028人阅读 评论(0) 收藏 举报 includetree2010makefilefile 对于嵌入式学习经常就要和Uboot和内核打交道,Source Insight便是我认为非常好的源码查看工具。对于Uboot和内核源码的查看,它有着非常好的索引方式,且拥有非常方便的快捷键操作方式。对于庞大转载 2014-08-13 17:30:43 · 734 阅读 · 0 评论 -
位置无关代码(PIC)的思考
经过编译、汇编和链接后才变成可执行文件,在链接时,要对所有目标文件进行重定位(relocation),建立符号引用规则,同时为变量、函数等分配运行地址。当程序执行时,系统必须把代码加载到链接时所指定的地址空间,以保证程序在执行过程中对变量、函数等符号的正确引用,使程序正常运行。在具有操作系统的系统中,重定位过程由操作系统自动完成。 在设计Bootloader程序时,必须在裸机环境中进行,这时Bo转载 2014-08-26 16:53:07 · 640 阅读 · 0 评论 -
adr和ldr的区别
同学们在学习ARM指令时,多数都会对adr和ldr这两个命令产生疑惑,那他们究竟有什么区别呢?其实这两个都是伪指令:adr是小范围的地址读取伪指令,ldr是大范围的读取地址伪指令。可实际上adr是将基于PC相对偏移的地址值或基于寄存器相对地址值读取的为指令,而ldr用于加载32为立即数或一个地址到指定的寄存器中。到这儿就会看到其中的区别了。如果在程序中想加载某个函数或者某个在联接时候指定的地址转载 2014-08-13 10:03:12 · 501 阅读 · 0 评论 -
nandflash下通过supervivi命令行实现挂载root_qtopia的NFS挂载
nandflash下通过supervivi命令行实现挂载root_qtopia的NFS挂载2013-03-31 22:57 304人阅读 评论(0)收藏举报 在嵌入式开发过程中经常涉及到qt图形界面的显示问题,如果每次都通过编译内核下载根文件系统就显得有点不方便,所以一个简单的方法就是使用NFS挂载root_qtopia文件系统。 第转载 2014-08-13 16:29:37 · 554 阅读 · 0 评论 -
SRAM与SDRAM的区别
SDRAM(Synchronous Dynamic Random Access Memory)同步动态随机存取存储器,同步是指Memory工作需要步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是由指定地址进行数据读写。目前的168线64bit带宽内存基本上都采用SDRAM芯片,工作电压3.3V电压,存取速度高达7.转载 2014-08-13 08:38:46 · 470 阅读 · 0 评论 -
gd变量声明
register volatile gd_t *gd asm ("r8")如下的两个结构,我们主要的是关心下面一行声明:#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r8")这个声明告诉编译器使用寄存器r8来存储gd_t类型的指针gd,即这个定义声明了一个指针,并且指转载 2014-09-28 22:54:35 · 491 阅读 · 0 评论