ln: creating symbolic link `asm' to `asm-arm': Operation not supported
摘要:在编译u-boot的时候出现了这样的错误: Configuring for smdk2410 board... ln: creating symbolic link `asm' to `asm-arm': Operation not supported make: *** [smdk2410_config] Error 1 在网上查找原因得: 出现这类问题,主要是由于在编译的时候,要用ln去建立一些软链接, 而这些文件是从Windows中,通过VMWare虚拟机共享进Linux的, 而虽然此种操作在Linux系统中很常见,但Windows不支持,所以, 编译会报错。 有个解决办
阅读全文
ARM寄存器
摘要:一、ARM工作状态下的寄存器组织ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个位状态寄存器。但是这些寄存器不能被同时访问,具体哪些寄存器是可以访问的,取决ARM处理器的工作状态及具体的运行模式。但在任何时候,通用寄存器R14~R0、程序计数器PC(即R15)、一个状态寄存器都是可访问的。通用寄存器通用寄存器包括R0~R15,可以分为3类:(1)未分组寄存器R0~R7(2)分组寄存器R8~R14(3)程序计数器PC(R15)1.未分组寄存器R0~R7在所有运行模式下,未分组寄存器都指向同一个物理寄存器,它们未被系统用作特殊的用途.因此在中断或异常处理进行运行模式转换时,由于不
阅读全文
ARM汇编指令集
摘要:一、跳转指令。跳转指令用于实现程序流程的跳转,在ARM程序中有以下两种方法可以实现程序流程的跳转。Ⅰ.使用专门的跳转指令。Ⅱ.直接向程序计数器PC写入跳转地址值。 通过向程序计数器PC写入跳转地址值,可以实现在4GB的地址空间中的任意跳转,在跳转之前结合使用 MOV LR,PC等类似指令,可以保存将来的返回地址值,从而实现在4GB连续的线性地址空间的子程序调用。ARM指令集中的跳转指令可以完成从当前指令向前或向后的32MB的地址空间的跳转,包括以下4条指令:1、B指令B指令的格式为: B{条件} 目标地址 B指令是最简单的跳转指令。一旦遇到一个B指令,ARM处理器将立即跳转到给定的目标地址,从
阅读全文
uboot使用
摘要:我一贯认为:对于一个技术类的东西,你连用都不会用,那根本就不可能会开发。就好像一个人连Linux不会用,那还谈何开发Linux程序呢? 同样的要开发和移植U-boot,首先要对U-boot有一定的了解,起码要会使用。 所以这里我们首先熟悉一下U-boot的使用以及如何将U-boot烧入mini2440。 当然在这之前首先必须保证你的板子上已经有了U-boot。如果没有那就先烧上一个吧。针对mini2440的U-boot-2009.11的bin文件我已经上传到了博客中,可以直接烧入,请到这里下载:u-boot-2009.11 for mini2440 Source release把它烧到mini
阅读全文
uboot简介
摘要:1、嵌入式Linux软件结构与分布在一般情况下嵌入式Linux系统中的软件主要分为以下及部分:(1)引导加载程序:其中包括内部ROM中的固化启动代码和Boot Loader两部分。而这个内部固化ROM是厂家在芯片生产时候固化的,作用基本上是引导Boot Loader。有的芯片比较复杂,比如Omap3,他在flash中没有代码的时候有许多启动方式:USB、UART或以太网等等。而S3C24x0则很简单,只有Norboot和Nandboot。(2)Linux kernel 和drivers。(3)文件系统。包括根文件系统和建立于Flash内存设备之上的文件系统(EXT4、UBI、CRAMFS等等)
阅读全文
uboot代码简要分析
摘要:本次移植使用的是U-boot-2009.11。 先来看看源码目录结构,再按照代码的执行顺序简单地分析源码1.U-boot源码整体框架源码解压以后,我们可以看到以下的文件和文件夹:cpu与处理器相关的文件。每个子目录中都包括cpu.c和interrupt.c、start.S、u-boot.lds。cpu.c初始化CPU、设置指令Cache和数据Cache等interrupt.c设置系统的各种中断和异常start.S是U-boot启动时执行的第一个文件,它主要做最早其的系统初始化,代码重定向和设置系统堆栈,为进入U-boot第二阶段的C程序奠定基础u-boot.lds链接脚本文件,对于代码的最后组
阅读全文