推荐阅读最新更新时间:2024-11-08 17:25
ARM指令LDR和ADR的一些区别
之前在阅读 arm的汇编代码时,碰到了adr指令,查arm的指令手册,只说该指令是采用相对地址的,但这个相对地址应该怎么理解,却没有具体说明。之后在网上以 adr指令为关键字进行搜索,也没有找到进一步的知识。结果,今天在搜索android资料的时候,意外的发现了adr指令与ldr指令的不同,一下子解 决了心中的问题。以adr指令与ldr指令对比作为关键字,甚至可以搜到好几篇文章,实在是...... 竟然困扰了自己那么长时间。 将两篇转来,作为备忘吧。 一、adr和ldr的区别 同学们在学习ARM指令时,多数都会对adr和ldr这两个命令产生疑惑,那他们究竟有什么区别呢? 其实这两个都是伪指 令:adr是小范围的
[单片机]
基于ARM的热敏电阻温度计的设计
1 引 言 随着半导体技术的不断发展,热敏电阻作为一种新型感温元件应用越来越广泛。他具有体积小、灵敏度高、重量轻、热惯性小、寿命长以及价格便宜等优点。 传统的热敏电阻温度计硬件上大多采用普通单片机(MCS-51系列)+A/D转换器以及LED显示模块构成,分立元件多、功耗大、设计复杂且难以调试;软件上也多采用冗长繁琐的汇编语言来实现,设计效率低、可移植性差、性能难以保证。 目前,嵌入式系统的应用已经进入到一个高、低端并行发展的阶段,其标志就是32位微控制器的发展。ARM(Advanced RISC Machines)是嵌入式系统应用比较广泛的一种32位微处理器核,具有体积小、功耗低、集成度高、硬件调试方便和可移植操作系统等优点
[测试测量]
基于ARM7+μC/OSII的数据采集系统设计
在一些工业现场中,设备长时间运行容易出现故障,为了监控这些设备,通常利用数据采集装置采集他们运行时的数据并送给PC机,通过运行在PC机上的特定软件对这些数据进行分析,以此判断当前运行设备的状况,进而采取相应措施。当前常用的数据采集装置,在其系统软件设计中,多采用单任务顺序机制。这样就存在系统安全性差的问题。这对于稳定性、实时性要求很高的数据采集装置来说是不允许的,因此有必要引入嵌入式操作系统。笔者以μC/OSII为操作系统平台,基于ARM7系列处理器,对一种高性能的数据采集系统开发进行了探索。 1μC/OSII嵌入式操作系统简介 嵌入式操作系统μC/OSII(microcontroller operating syst
[单片机]
ARM汇编: ldr与mov 、 b与bl
ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。 比如想把数据从内存中某处读取到寄存器中,只能使用ldr 比如: ldr r0, 0x12345678 就是把0x12345678这个地址中的值存放到r0中。 而mov不能干这个活,mov只能在寄存器之间移动数据,或者把立即数移动到寄存器中,这个和x86这种CISC架构的芯片区别最大的地方。 x86中没有ldr这种指令,因为x86的mov指令可以将数据从内存中移动到寄存器中。 另外还有一个就是ldr伪指令,虽然ldr伪指令和ARM的ldr指令很像,但是作用不太一样。ldr伪指令可以在立即数前加上=,以表示把一个地址写到某寄存器中,
[单片机]
51单片机汇编语言:利用 RET 指令实现多路分支
有这样一个问题: ----------------------------- 已知程序执行前有 A = 02H,SP = 52H,(51H) = FFH,(52H) = FFH。 执行下列程序: POP DPH POP DPL MOV DPTR, #4000H RL A MOV B, A MOVC A, @A + DPTR PUSH A MOV A, B INC A MOVC A, @A + DPTR PUSH A RET ORG 4000H DB 10H, 80H, 30H, 50H, 30H,
[单片机]
在ARM微处理器上实现Rijndael加密算法
引 言
2000年10月2日,美国国家标准局NIST宣布,比利时密码学家Joat Daemen和Vincent Rijmen设计的“RijndaeI算法”以安全性好、运算速度快、存储要求低、灵活性强最终当选AES。该算法对目前的各种威胁是免疫的。这标志着信息技术有了新的安全工具,为计算机网络和电子商务的发展提供了强有力的保障。
在当前数字信息技术和网络技术高速发展的后PC时代,嵌入式系统技术已经广泛地渗透到科学研究、工程设计、军事技术、各类产业和商业文化艺术以及人们的日常生活等方方面面中,成为目前最热门的技术之一。
本文使用北京博创兴业科技有限公司研制的UP-NETARM300嵌入式开发板,在ARM SDT 2.51集成
[嵌入式]
11.ARM架构的异常与中断
1.异常与中断的引入 1.1.中断的概念 所谓中断是指CPU对系统发生的某个事件作出的一种反应:CPU暂停正在执行的程序,保留现场后自动地转去执行相应的处理程序,处理完该事件后再返回断点继续执行被“打断”的程序。引起中断的事件称为中断源,中断源向CPU提出进行处理的请求称为中断请求。 1.2.中断类型 按中断事件来源进行分类,主要有两类: (1)中断。由CPU以外的事件引起的中断,如I/O中断、时钟中断、控制台中断等。 (2)异常(exception)。来自CPU的内部事件或程序执行中的事件引起的过程。如 由于CPU本身故障、程序故障和请求系统服务的指令引起的中断等。 1.3.中断的一般处理过程 中
[单片机]
gsm库(libgsm)在ARM-Linux下的移植
GSM是常见的VOIP的语音编解码库,在Linux下用libgsm来实现。在项目中需要用到libgsm库。因此试着直接编译GSM库来编译.官网已经停止服务了,因此在这个网址下了最新版来编译 解压后发现,这个Makefile是一个手写而非 Au toconf生成的Makefile,并且只有编译静态库,而没有常见的动态库的Makefile. 因此将其修改一下,使用其能在ARM编译并且成动态库。这也是一个典型的Makefile的修改练习,如果想编译成静态库,简单把 LIBEXT 改成 a即可 # Copyright 1992-1996 by Jutta Degener and Carsten Bormann, Technis
[单片机]