arm
EastonWoo
这个作者很懒,什么都没留下…
展开
-
arm汇编编程 简单例子
arm汇编编程 简单例子1).基本概念 (2)寄存器如 R0、R1等 ARM的汇编编程本质上就是针对CPU寄存器的编程。 (3)指令即操作码直接控制CPU如MOV 包括跳转指令、数据处理指令、乘法指令、PSR访问指令、加载或存储指令、数据交换指令、移位指令等 (4)伪操作作用于编译器,大多用于定义和控制。如A原创 2012-11-15 02:44:19 · 14090 阅读 · 1 评论 -
TX2440 项目实战-2440init.s 祥解 (ADS1.2编译) arm汇编基础学习终结
TX2440 项目实战-2440init.s 祥解 (ADS1.2编译) arm汇编基础学习终结 2440init.s启动,我分成九大部分,如下:***第一步***:关看门狗,关中断.***第二步***:设置时间频率.***第三步***:检查是否在sleep状态,如果是,要唤醒.否则,跳过这一步.***第四步***:配置内存SDRAM,NANDFLASH寄存器.***第原创 2013-05-04 20:04:25 · 1831 阅读 · 0 评论 -
TX2440 看手册学习2440-CPU时钟频率的设置(ADS1.2编译)
TX2440 看手册学习2440-CPU时钟频率的设置(ADS1.2编译) 开始前,有必要了解一下概念术语: S3C2440A中的时钟控制逻辑可以产生必须的时钟信号,包括CPU的FCLK,AHB总线外设的HCLK以及APB总线外设的PCLK。S3C2440A包含两个锁相环(PLL):一个(MPLL)提供给FCLK、HCLK和PCLK,另一个(UPLL)专用于USB模块(48MHz原创 2013-05-05 12:09:03 · 1740 阅读 · 0 评论 -
TX2440 看手册学习2440-UART的配置(ADS1.2编译)
TX2440 看手册学习2440-UART的配置(ADS1.2编译) 1) 串口对外参数---串口com口,波特率,数据位(一般8位),校验位(一般不设置),停止位(一般1位),流控制(一般全不设置):1-1) com口:s3c2440有3个,分别是uart0-2,其中com0,1支持64位FIFO,红外,流控制。com0-2,支持中断或DMA方法发送接收数据;1-2) 波特率:由原创 2013-05-06 00:18:56 · 1457 阅读 · 0 评论 -
TX2440 看手册学习2440-定时器的使用(ADS1.2编译)
TX2440 看手册学习2440-深入理解中断处理机制(ADS1.2编译)这一节比较简单,我们就简单地说. 5个16位的定时器.分别是Timer0-4. Timer0-3具有PWM功能,也就是说有往外输出方波的引脚.Timer4是一个内置的定时器,没有输出引脚.Timer0还有个功能叫死区生成器.下面重点说说死区生成器的定义.s3c2440有2个8位分频器:Timer0-1共用一个8位原创 2013-05-09 03:30:12 · 1396 阅读 · 0 评论 -
TX2440 看手册学习2440-看门狗理解(ADS1.2编译)
TX2440 看手册学习2440-看门狗理解(ADS1.2编译) 2440的看门狗比较简单的.要使用到的寄存器.控制寄存器(WTCON),数据寄存器(WTDAT),计数寄存器(WTCNT).控制寄存器(WTCON):分频比,使能看门狗,中断模式,重启信号模式,数据寄存器(WTDAT):计数总值.也就是看门狗初始化的计数的最大值.在使能看门狗前设置.计数寄存器(WTCNT):这个原创 2013-05-11 18:08:26 · 1082 阅读 · 0 评论 -
TX2440 看手册学习2440-深入理解中断处理机制(ADS1.2编译)
TX2440 看手册学习2440-深入理解中断处理机制(ADS1.2编译) 在中断控制器中有五个控制寄存器:中断源未决寄存器,中断模式寄存器,屏蔽寄存器,优先级寄存器和中断未决寄存器. 一.支持60个中断源:中断源未决寄存器:一个SRCPND中断源未决寄存器只有32位,是根本不够放60个中断源的.所以三星公把一些相似的中断源放到另外一些寄存器里成为一组,给这些组员集合定一原创 2013-05-07 02:02:05 · 1798 阅读 · 0 评论 -
TX2440 看手册学习2440-RTC的设置(ADS1.2编译)
TX2440 看手册学习2440-RTC的设置(ADS1.2编译)寄存器列表,如下图:源码,示例://====================================================// 常量定义区//====================================================void __irq RTC_tickHa原创 2013-05-12 01:24:38 · 1498 阅读 · 0 评论 -
TX2440 看手册学习2440-NANDFLASH时序理解(ADS1.2编译)
TX2440 看手册学习2440-RTC的设置(ADS1.2编译) 上图: tcls=tals>=12ns;tclh=talh>=12ns;twp=trp>=5nsHCLK=100M时,周期10ns:1)TACLS=0 , TWRPH0=0,TWRPH1=0 0+10 5ns (错误)2)TACLS=1 , TWRPH0=0原创 2013-05-16 04:22:23 · 1042 阅读 · 0 评论 -
TX2440 裸跑实验-伪指令学习例子(ADS1.2编译) 进阶(三)
TX2440 裸跑实验-伪指令学习例子(ADS1.2编译) 进阶(三) 学习进度: 学习完前面入门级,进阶一.二.我们还不能全面系统地写一编有变量和逻辑控制思想的程序.学习完进阶三.就可以基本可以写出一编完整的arm汇编程序出来.剩下的需要大家多练习才能写出高效的程序出来. 源码 init.s ;我的源码(伪指令学习):EastonWoob原创 2013-05-01 17:09:31 · 1192 阅读 · 0 评论 -
TX2440 裸跑实验-段分布图(ADS1.2编译) 补充知识
TX2440 裸跑实验-段分布图(ADS1.2编译) 补充知识;My Procedure :EastonWoo area init,code,readonly IMPORT |Image$$RO$$Base| ; Base of ROM code IMPORT |Image$$RO$$Limit| ; End of ROM code (=start of ROM原创 2013-05-01 20:19:40 · 1000 阅读 · 0 评论 -
TX2440 裸跑实验-汇编C语言混编(ADS1.2编译) 进阶(二)
TX2440 裸跑实验-汇编C语言混编(ADS1.2编译) 进阶(二)一.实验目的:理解汇编的编程结构,有助于学习ARM汇编与C语言的调用关系,熟悉堆栈的调用关系.二.实验环境:TX2440平台三.实验工具:ADS1.2 + AXD + JLINK调试四.实验步骤:1.在ads 上建立新工程,增加两个源文件call_C_func.s 和 func.c1)call原创 2013-04-21 22:49:56 · 1985 阅读 · 0 评论 -
理解LDM和STM多寄存器寻址 堆栈指针sp例子
堆栈寻址的命令LDMFA/STMFA、LDMEA/STMEA、LDMFD/STMFD、LDMED/STMED。 LDM和STM表示多寄存器寻址,即一次可以传送多个寄存器值。 LDM:一次装载多个,这里用来出栈。(另有,LDR寄存器间接寻址 也是装载r2内容作指针指向的内存到R1,如:LDRR1,[R2] ) STM:一次存储多个,这里用来入栈。(另有,ST原创 2012-11-23 02:14:43 · 5226 阅读 · 1 评论 -
ARM中的MOV指令 立即数合法性
转载http://blog.csdn.net/tracing/article/details/6325308ARM中的MOV指令格式是这样的 op2是占了12位,其中bit11-bit8是移位数(rotate),bit7-0是一个8位的立即数(imm),MOV Rn, op2,执行之后,Rn=op2 >> (rotate * 2),这里的移位是循环右移,这就决定了MOV指转载 2012-11-17 11:32:15 · 2834 阅读 · 0 评论 -
arm汇编编程(示例)
一、arm的认知及基本概念(一).arm的基本概念1. 什么是arm arm是一家英国电子公司的名字,全名是Advanced RISC Machine 这家企业设计了大量高性能、廉价、耗能低的RISC(精简指令集)处理器,ARM公司只设计芯片而不生产,它将技术授权给世界上许多公司和厂商。目前采用arm技术知识产权内核的微处理器,即通常所说的arm微处理器转载 2012-11-17 11:37:40 · 20176 阅读 · 1 评论 -
s3c2440 地址分配硬件连接及其启动原理分析
s3c2440 地址分配硬件连接及其启动原理分析一.CPU 地址分配:1. s3c2440A 的存储器控制器有以下特性:l 大小端(通过软件选择)l 地址空间:每个bank有128M 的字节(总共1G字节/8个banks)l 可编程的访问位宽,bank0(16/32 位),其他bank(8/16/32 位)l 共8个存储器banksl 6 个是ROM,SR原创 2013-04-09 02:24:29 · 6790 阅读 · 4 评论 -
堆栈在内存中的压栈和弹栈工作原理
堆栈在内存中的压栈和弹栈工作原理一.概述: 网上关于堆栈的文章很多,但多为不祥尽.趁清明假期整理验证下.VC编译,XP平台.调用函数入栈过程分以下5步: 1.压参数(右向左)-->2.压调用完函数后的第一条汇编指令-->3.保存本函数的栈顶地址-->4.申请子函数的栈空间(会预留一部分空间)-->5.子函数局部变量压栈...其中第1步是在main函数压的栈;第2步是在main函原创 2013-04-06 05:52:45 · 5515 阅读 · 0 评论 -
TX2440 裸跑实验-LED灯闪烁(ADS1.2编译) 进阶(一)
TX2440 裸跑实验-LED灯闪烁(ADS1.2编译) 进阶(一)一.实验目的:理解汇编的编程结构,了解arm汇编的子程序调用.二.实验环境:TX2440平台三.实验工具:ADS1.2 + AXD + JLINK调试四.实验步骤:1.在ads 上建立新工程,增加源文件init.sinit.s源码:;我的LED程序,EastonWoo procedure原创 2013-04-21 12:36:59 · 1725 阅读 · 0 评论 -
arm 汇编学习常用指令伪指令笔记汇总
arm 汇编学习常用指令伪指令笔记汇总命令术语例子解析类似于C语法范围B无条件跳转B main跳转到标号maingoto MAIN; 高8bit是操作码相关内容,低24bit是一个常数,用1个比特区别正负,还剩2原创 2013-04-17 21:49:07 · 1025 阅读 · 0 评论 -
TX2440 裸跑实验-跑马灯(ADS1.2编译) 入门
TX2440 裸跑实验-跑马灯(ADS1.2编译) 入门一.实验目的:理解汇编的编程结构,有助于学习ARM汇编,为后续学习CPU的启动机制来了个入门级二.实验环境:TX2440平台三.实验工具:ADS1.2 + AXD + JLINK调试四.实验步骤:1.在ads 上建立新工程,增加两个源文件. int.s 源码:;-------------------原创 2013-04-19 02:26:09 · 1432 阅读 · 0 评论 -
[配置管理]编译Valgrind arm交叉编译
1. 下载源码:http://valgrind.org/downloads/valgrind-3.9.0.tar.bz22. 加压缩:mkdir swcd swtar zxf valgrind-3.9.0.tar.bz23. 修改代码:cd valgrind-3.9.0/vim coregrind/m_debuginfo/readstabs.c第转载 2015-11-10 17:05:37 · 2051 阅读 · 0 评论