ARM
p.c.wang
这个作者很懒,什么都没留下…
展开
-
s3c2440上的nor flash启动与nand flash启动的区别
nor flash启动与nand flash启动的区别1)接口区别:NOR FLASH地址线和数据线分开,来了地址和控制信号,数据就出来。NAND Flash地址线和数据线在一起,需要用程序来控制,才能出数据。通俗的说,就是光给地址不行,要先命令,再给地址,才能读到NAND的数据。而且都是在一个总线完成的。结论是:ARM无法从NAND直接启动。除非装载完程序,才能使用N转载 2014-03-01 16:51:18 · 3341 阅读 · 0 评论 -
位置无关代码
在本博客中,你将学到的知识:(1):反汇编代码的分析;(2):连接器脚本的分析;(3):运行地址和装载地址的概念和联系,以及什么时候时候才允许实际运行地址和指定运行地址不一样的情况出现;(4):位置无关代码编写涉及到的指令。(5):什么时候不允许编写位置无关代码,或者说怎么编写位置无关码首先,对反汇编代码的分析:汇编地址是:.text .global原创 2014-05-05 21:02:50 · 3588 阅读 · 2 评论 -
关于ARM9协处理器CP15及MCR和MRC指令
在基于ARM的嵌入式应用系统中,存储系统通常是通过系统控制协处理器CP15完成的。CP15包含16个32位的寄存器,其编号为0~15。访问CP15寄存器的指令MCR ARM寄存器到协处理器寄存器的数据传送MRC 协处理器寄存器到ARM寄存器的数据传送MCR指令和MRC指令只能在处理器模式为系统模式时执行,在用户模式下执行MCR指令和MRC指令将会触发未定义指令的异常中断。转载 2014-04-20 11:28:02 · 929 阅读 · 0 评论 -
嵌入式汇编语法
具有输入和输出参数的嵌入式汇编语句的基本格式为: asm("汇编语句" :输出寄存器 :输入寄存器 :会被修改的寄存器); 除第一行以外,后面带冒号的行若不使用就都可一省略。其中 “asm” 是内联汇编语句关键词。"汇转载 2014-04-20 22:26:24 · 6044 阅读 · 0 评论 -
利用MMU通过访问虚拟内存来实现流水灯
实验目的: 利用MMU通过访问虚拟内存来实现流水灯预备知识: (1):熟悉协处理器的作用,CP15中的十六个寄存器,以及寄存器中的位格式和含义,相关的指令(MRC和MCR); (关于协处理器的指令,在《arm体系结构与编程》这本书上说的比较好) (2): 熟悉原创 2014-04-21 22:10:03 · 1478 阅读 · 0 评论 -
怎么看时序图--nand flash的读操作详解
本文转自:http://blog.chinaunix.net/uid-28852942-id-3992727.html转载 2014-04-26 19:59:59 · 2492 阅读 · 0 评论 -
通过TFTP服务器,往开发板下载程序
tftp arm 程序网络下载原创 2014-05-27 20:12:52 · 2984 阅读 · 1 评论 -
ARM-GCC-LD脚本
从以前的经验,链接脚本是嵌入式开发,单片机开发相当重要的一个东西。它完成的工作是做PC机软件的同志们不用关心的,但是也是很复杂的一项工作。总结来看链接脚本要告诉连接器1:输出什么2:输入是什么,那么obj文件3:要用什么库,库放在什么地方4:内存分布地址5:提供启动代码一些全局地址变量 一般来说链接脚本需要搞清楚这几样事情后才能编写,那arm-gcc-ld的脚本也一定要转载 2014-12-05 19:02:51 · 1945 阅读 · 0 评论 -
ARM处理器启动流程———S3C2440、S3C6410、S5PV210
一、S3C2440处理器的启动流程:支持从norflash和nandflash启动。Nandflash不参与统一编址,CPU总是从编址的0地址处取指令执行,为了实现从nandflash启动,S3C2440芯片从在CPU启动的时候,首先将nandflash前面4kB的内容复制到芯片中的叫做stepping stone的sram中,steppping stone只有4KB大小,4KB的代码会完转载 2015-03-29 11:19:36 · 871 阅读 · 0 评论 -
ARM寄存器
一、ARM寄存器:寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(转载 2015-06-23 14:39:52 · 6284 阅读 · 0 评论 -
Cortex-M4之FPU
M4原创 2016-03-21 14:53:35 · 7614 阅读 · 1 评论 -
jz2440裸板开发之:外部中断
实验目的:利用外部中断的方式,来实现点亮对应的LED原创 2014-05-04 19:44:33 · 1479 阅读 · 0 评论 -
统一编址和独立编址
编址方式1)外设都是通过读写设备上的寄存器来进行的,外设寄存器也称为“I/O端口”,而IO端口有两种编址方式:独立编 址和统一编制。 统一编址:外设接口中的IO寄存器(即IO端口)与主存单元一样看待,每个端口占用一个存储单元的地址,将主存的一部分划出来用作IO地址空间,如,在 PDP-11中,把最高的4K主存作为IO设备寄存器地址。端口占用了存储器的地址空间,使存储量容量减小原创 2014-03-22 15:58:38 · 8228 阅读 · 3 评论 -
arm+linux学习之路
开发板:TQ2440。使用工具:1.开发板一块;2.天嵌提供的提供的700M资料;3.《嵌入式linux应用开发完全手册》《UNIX环境高级编程》《LINUX设备驱动程序》《深入理解UNIX内核》《unix内核源码情景分析》 流程: 1.先看S3C2440核心板原理图,知道有哪些脚可用总结:有ADDRESS,ADC,CLOCK,TIMER,DATA,DMA,chip sel转载 2014-03-18 20:12:10 · 890 阅读 · 0 评论 -
jz2440裸板开发之GPIO:点亮一个led灯(1)
实验目的:点亮一个led灯。原创 2014-04-14 18:04:37 · 2418 阅读 · 0 评论 -
Arm 系统中常用的段分类说明
.text段是代码段。它用来放程序代码(code)。它通常是只读的。 .data段是数据段。它用来存放初始化了的(initailized)全局变量(global)和初始化了的静态变量(static)。它是可读可写的。 .bss段是全局变量数据段。它用来存放未初始化的(uninitailized)全局变量(global)和未初始化的静态变量(static)。它也是可读可写的。bss是英文Bl转载 2014-04-14 20:28:32 · 2371 阅读 · 0 评论 -
u-boot启动流程图
整理了一个流程图,分为3个存储器:1 Boot Internal SRAM , 接在BANK0,起始地址为0x02 RAM , 接在BANK6,起始地址为0x3000 00003 NAND FLASH,为单独寻址流程如下图:红字为流程序号:1. 首先将NAND FLASH中的前0x1000字节内容拷贝到Boot Internal SRAM中2. 从Boo转载 2014-04-14 20:41:45 · 1124 阅读 · 0 评论 -
jz2440裸板开发之GPIO:实现流水灯
arm9裸板开发的学习原创 2014-04-15 19:59:42 · 2808 阅读 · 0 评论 -
jz2440裸板开发之GPIO:用按键控制led
实验目的:用C语言在 jz2440上实现按键控制led灯的亮和灭实验原理:nLED_1,nLED_2,nLED_4,其对用的引脚是GPF5,GPF6,GPF7,在GPIO中,每个引脚对有配置寄存器和数据寄存器,对于本例其配置寄存器为GPFCON:0x56000050,和数据寄存器GPFDATA:0x56000054。EINT0,EINT2,EINT11,其按键对应的引脚原创 2014-04-16 17:37:10 · 2610 阅读 · 0 评论 -
在实例中学习arm汇编指令
ARM指令: GBLA Test1 ;声明一个全局的数学变量,变量名为Test1 GBLL Test2 ;申明一个全局的逻辑变量,变量名为Test2Test1 SETA 0x3 ;将变量Test1赋值为3,注意书写格式,需要顶格写 Test2 SETL {TRUE} ;将变量Test2赋值为TRUE;EQU伪指令COUNT EQU 0x原创 2014-04-16 19:54:39 · 2700 阅读 · 1 评论 -
ARM汇编程序中学ARM程序的结构和混合编程
一:ARM汇编程序的结构例一: AREA Example,CODE,READONLY ; 声明代码段Example ENTRY ; 标识程序入口 CODE32 ; 声明32位ARM指令START MOV R0,#1 MOV R0,#0 END ;标明程序结束例二:COUNT EQU 0x30003100 ; 定义一个变量,原创 2014-04-16 20:39:52 · 1253 阅读 · 0 评论 -
ARM指令 LDR 和 ADR的一些区别
本文转自:http://blog.csdn.net/zhou1232006/article/details/6145039LDR 是ARM中的指令,也是伪指令。当用 LDR r, =imd // r 为寄存器, imd为立即数LDR 是一条伪指令。编译器会根据 立即数的大小,决定用 ldr 指令或者是mov或mvn指令。当imd能用mov或者mvn操作时,就将它翻译成一条mov或转载 2014-04-16 20:59:48 · 946 阅读 · 0 评论 -
jz2440裸板开发之:存储器控制
实验目的:利用SDRAM存储代码,来执行流水灯实验实验原理:s3c2440的启动方式中有 norflash和nandflash启动,对于norfalsh,CPU可以直接从它的0地址访处开始来进行读操作执行代码。但是从nandFlash启动,其访问方式就要复杂一点,其原因是因为是因为CPU是不能直接对nandflash进行读写操作的,CPU只需要进行负责发送指令(eg .STR 或者LDR来告诉原创 2014-04-17 21:33:49 · 1228 阅读 · 0 评论 -
用汇编实现浮点数的乘法运算---FPU
#include #include #define INIT_TIMER_VALIABLE \ struct timeval tpstart,tpend; \ float timeuse; #define START_TIMER gettimeofday(&tpstart,NULL);#define END_PRINTF_TIMER(name) \转载 2016-03-24 10:07:24 · 6896 阅读 · 0 评论