11 2016 档案
摘要:假设有一个Date类 Date.h class Date { private: int year, month, day; }; 如果有个Task类的定义要用到Date类,有两种写法 其一 Task1.h class Date; class Task1 { public: Date getData(
阅读全文
摘要:大多数bootloader都分为stage1和stage2两部分,u-boot也不例外。依赖于CPU体系结构的代码(如设备初始化代码等)通常都放在stage1且可以用汇编语言来实现,而stage2则通常用C语言来实现,这样可以实现复杂的功能,而且有更好的可读性和移植性。1、Stage1 start.
阅读全文
摘要:先进入顶层Makefile。有很多相对不同板子的配置,如: gec2440_config:unconfig @(@:_config=) arm arm920t gec2440 samsung s3c24x0 1.配置编译uboot第一步都是make *****_config
阅读全文
摘要:;/*****************************************************************************; * @file: startup_SKEAZ1284.s; * @purpose: CMSIS Cortex-M0plus Core De
阅读全文
摘要:// //TITLE:// 灵活使用ARM汇编的WEAK关键字//AUTHOR:// norains//DATE:// Tuesday 20-October-2010//Environment:// KEIL MDK 4.0// ARM汇编中的WEAK关键字是一个很有意思的功能,如果能够灵活使用,能
阅读全文
摘要:为了使单独编译的C语言程序和汇编程序之间能够相互调用,必须为子程序之间的调用规定一定的规则.ATPCS就是ARM程序和THUMB程序中子程序调用的基本规则。 基本ATPCS规定了在子程序调用时的一些基本规则,包括下面3方面的内容: 1.各寄存器的使用规则及其相应的名称。 2.数据栈的使用规则。 3.
阅读全文
摘要:在看Uboot的start.S文件时候,发现其最开始初始化系统,做的第一件事情,就是将CPU设置为SVC模式,但是S3C2440的CPU的core是ARM920T,其有7种模式,为何非要设置为SVC模式,而不是设置为其他模式呢?对此,经过一些求证,得出如下原因: 首先,先要了解ARM的CPU的7种模
阅读全文
摘要:一、 概论 一、 概论 每一个链接过程都由链接脚本(linker script, 一般以lds作为文件的后缀名)控制. 链接脚本主要用于规定如何把输入文件内的section放入输出文件内, 并控制输出文件内各部分在程序地址空间内的布局. 但你也可以用连接命令做一些其他事情. 连接器有个默认的内置连接
阅读全文
摘要:uname命令uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。语法 uname(选项) 选项-a或--all:显示全部的信息; -m或--machine:显示电脑类型; -n或-nodename:显示在网络上的主机名称; -r或--release:显示操作系
阅读全文
摘要:origin函数 函数“origin”和其他函数不同,函数“origin”的动作不是操作变量(它的参数)。它只是获取此变量(参数)相关的信息,告诉我们这个变量的出处(定义方式)。 Ø 函数语法: $(origin VARIABLE) Ø 函数功能:函数“origin”查询参数“VARIABLE”(一
阅读全文
摘要:一、MMU地址转换:1.首先弄清除为什么要使用MMU纳?MMU即内存管理单元,直白一点的讲,就像食堂的餐具,所有的学生一起吃饭时不够用,但食堂又不想再出资购买新的餐具(原因很明显:一方面要成本,另一方面又占地方。这就像增加内存一样),那么有没有解决办法?根据以往经验得知不可能全学校的学习一起都到食堂
阅读全文
摘要:使用内嵌汇编,要先编写汇编指令模板,然后将C语言表达式与指令的操作数相关联,并告诉GCC对这些操作有哪些限制条件。例如在下面的汇编语句:__asm__ __violate__("movl %1,%0" : "=r" (result) : "m" (input));“movl %1,%0”是指令模板;
阅读全文
摘要:ARM9协处理器CP15及MCR和MRC指令 在基于ARM的嵌入式应用系统中,存储系统通常是通过系统控制协处理器CP15完成的。CP15包含16个32位的寄存器,其编号为0~15。 访问CP15寄存器的指令 MCR ARM寄存器到协处理器寄存器的数据传送 MRC 协处理器寄存器到ARM寄存器的数据传
阅读全文
摘要:1.1.1 ARM处理器模式切换(含MRS,MSR指令) 除了用户模式和系统模式,其余模式下都有一个私有SPSR保存状态寄存器,用来保存切换到该模式之前的执行状态,之所以用户模式和系统模式没有SPSR是因为,通常CPU大部分时间执行在用户模式下,当产生异常或系统调用时会分别切换进入另外几种模式,保存
阅读全文
摘要:ARM寄存器 一、ARM工作状态下的寄存器组织 ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个位状态寄存器。但是这些寄存器不能被同时访问,具体哪些寄存器是可以访问的,取决ARM处理器的工作状态及具体的运行模式。但在任何时候,通用寄存器R14~R0、程序计数器PC(即R15)、一个
阅读全文
摘要:ARM汇编程序特点: l 所有运算处理都是发生通用寄存器(一般是R0~R14)的之中.所有存储器空间(如C语言变量的本质就是一个存储器空间上的几个BYTE).的值的处理,都是要传送到通用寄存器来完成.因此代码中大量看到LDR,STR指令来传送值. l ARM汇编语句中.当前语句很多时候要隐含的使用上
阅读全文