ARM学习笔记020之_asm_、CPSR、SPSR、位置无关码等问题

发布者:760802csy最新更新时间:2020-06-19 来源: eefocus关键字:ARM  _asm_  CPSR  SPSR 手机看文章 扫描二维码
随时随地手机看文章

1、_asm_:warning: implicit declaration of function '_asm_'

      如果asm两边都是两个下划线就没有错误了:__asm__


2、 makefile中-O -S必须大写


3、lds文件中:SECTIONS必须大写


4、ARM920T 包含了一个当前程序状态寄存器(Current Program Status Register-CPSR),另外还有5 个用于异

    常程序处理的程序状态保存寄存器(Saved Program Status Registers-SPSR)。这些寄存器的功能为:

   ● 保存最近已处理的ALU 操作的信息

   ● 控制中断的使能与禁止

   ● 设置处理器的运行模式


CPSR是指这个寄存器的整个32位,而CPSR_C是指其【7:0】这8个控制位


5、如果memsetup中各寄存器的值不设置为位置无关码,就会出现如下连接错误:


原因是这样的,我们先看一下s汇编文件:


存储管理器都没有设置好,memsetup后面的函数编译器自然不认识。

在链接脚本lds中,全部代码的起始运行地址都被设为0x30000000,但在memsetup中代码还在内部SRAM(steppingstone)中,为了能够在steppingstone运行这个函数,memsetup中的寄存器就应该位置无关,手动赋值。如果赋值时使用了数组,就是位置相关了,因为数组是局部变量或者全局变量,在调用它时会涉及到地址。



6、在设置一些寄存器时,如果某些位为1,某些位为0,我们最好使用直接给寄存器赋值的方法。如果用位操作,就需要使用两条语句:”&=~(1<

关键字:ARM  _asm_  CPSR  SPSR 引用地址:ARM学习笔记020之_asm_、CPSR、SPSR、位置无关码等问题

上一篇:S3C2440定时器4中断测试程序
下一篇:ARM学习笔记002之gcc-4.3.2编译器不支持硬件除法运算的解决方

推荐阅读最新更新时间:2024-10-30 09:46

第1天-ARM汇编指令BIC
BIC : 位清除 (Bit Clear) BIC{条件}{S} , , dest = op_1 AND (!op_2) BIC 是在一个字中清除位的一种方法,与 OR 位设置是相反的操作。操作数 2 是一个 32 位位掩码(mask)。如果如果在掩码中设置了某一位,则清除这一位。未设置的掩码位指示此位保持不变。 BIC R0, R0, #11 ; 清除 R0 中的位 0、1、和 3。保持其余的不变。 BIC 真值表 : Op_1 Op_2 结果 0 0 0 0 1 0 1 0 1 1 1 0 译注:逻辑表达式为 Op_1 AND NOT Op_2
[单片机]
意法半导体STM32系列两周年再添新丁
意法半导体在STM32系列微控制器两周年生日之时,宣布基于ARM Cortex™-M3处理器的STM32互联系列(Connectivity Line)微控制器已全面投产,新产品如预期准时上市。自此,意法半导体STM32家族已拥有包括基本型、USB基本型、增强型以及互联型四个产品线,70个型号的产品引脚与功能相互兼容。 STM32互联系列让设计人员可以在同时需要以太网、USB、CAN和音频级I2S接口的产品设计中发挥工业标准的32位微处理器的优异性能。目前互联系列下设两个产品系列:STM32F105和 STM32F107。STM32F105系列集成一个全速USB 2.0 Host/Device/OTG接口和两个具有先进
[单片机]
意法半导体STM32系列两周年再添新丁
内嵌ARM核的FPGA芯片EPXA10
  随着亚微米技术的发展,FPGA芯片密度不断增加,并以强大的并行计算能力和方便灵活的动态可重构性,被广泛地应用于各个领域。但是在复杂复法的实现上,FPGA却远没有32位RISC处理器灵活方便,所以在设计具有复杂算法和控制逻辑的系统时,往往需要RISC和FPGA结合使用。这样,电路设计的难度也就相应大大增加。随着第四代EDA开发工具的使用,特别是在IP核产业的迅猛发展下产生的SOPC技术的发展,使嵌入式RISC的通用及标准的FPGA器件呼之欲出。单片集成的RISC处理器和FPGA大大减小了硬件电路复杂性和体积,同时也降低了功耗、提高了系统可靠性。Altera公司的EPXA10芯片就是应用SOPC技术,集高密度逻辑(FPGA)、
[嵌入式]
内嵌<font color='red'>ARM</font>核的FPGA芯片EPXA10
德州仪器LCD触摸屏Sitara AM335x ARM Cortex A8入门套件
日前,德州仪器 (TI) 宣布推出最新 Sitara™ AM335x ARM® Cortex™-A8 入门套件,其通过采用板载加速计支持旋转与倾斜功能的 4.3 英寸 LCD 显示屏,可为智能电器、工业,网络应用以及其它需要触摸屏界面的设备提供一款低成本平台。该低成本开发平台建立在 Sitara AM3358 ARM Cortex-A8 处理器基础之上,高度集成双千兆位以太网、Wi-Fi® 以及蓝牙 (Bluetooth®) 连接等多个通信选项,适用于创建高度互联的设备。 AM335x 入门套件的速度高达 720 MHz,可通过生产就绪型软硬件平台加速设计进程。该电路板是一款低成本工具,可快速评估处理器及其配套 TI 组件的特
[单片机]
ARM A7处理器树立智能手机能耗新标杆
处理器IP授权厂商ARM发布了节能的Cortex-A7处理器内核,该处理器将作为异构多核战略的一部分,搭配高端Cortex-A15处理器使用。 A7是一款四发指令、八级流水线内核,为节能进行了重度优化。 ARM公司还表示A7处理器也可以被单独以单核、双核形式用于面向价格敏感市场的入门级智能手机产品。 在英国举行的A7发布会上,Warren East预期多核——例如双核A15加双核A7——智能手机可以在2013年上市。 “大-小”(big-little)战略允许性能要求低的基础任务,以及持续运行的任务跑在一颗或多颗A7内核上以获得最长的待机时间,而需要更高性能的任务则交给A15内核。这种动态的内核选择得到AMBA 4 ACE C
[手机便携]
arm汇编—str指令
操作系统:ubuntu10.04 汇编语言:arm STR指令的格式为: STR{条件} 源寄存器, 存储器地址 STR指令用亍从源寄存器中将一个32位的字数据传送到存储器中。该指令在程序设计中比较常 用,丏寻址方式灵活多样,使用方式可参考指令LDR。 指令示例: STR R0, ,#8 ;将R0中的字数据写入以R1为地址的存储器中,并将新地址R1+8写入R1。 STR R0, ;将R0中的字数据写入以R1+8为地址的存储器中。 str r1, ;将r1寄存器的值,传送到地址值为r0的(存储器)内存中
[单片机]
利用一个ARM7处理器对无刷电机实施磁场定向控制
  电机驱动能效不论提高多少,都会节省大量的电能,这就是市场对先进的电机控制算法的兴趣日浓的部分原因。三相无刷电机主要指是交流感应异步电机和永磁同步电机。这些电机以能效高、可靠性高、维护成本低、产品成本低和静音工作而著称。感应电机已在水泵或风扇等工业应用中得到广泛应用,并正在与永磁同步电机一起充斥家电、空调、汽车或伺服驱动器等市场。推动三相无刷电机发展的主要原因有:电子元器件的价格降低,实现复杂的控制策略以克服本身较差的动态性能成为可能。   以异步电机为例。简单的设计需要给定子施加三个120°相移的正弦波电压,这些绕组的排列方式能够产生一种旋转磁通量。利用变压器效应,这个磁通量在转子笼内感应出一股电流,然后产生转子磁通量。就是这
[单片机]
利用一个<font color='red'>ARM</font>7处理器对无刷电机实施磁场定向控制
ARM平台linux内核Notes 2
linux内存管理的任务   1)组织规划整个系统的物理和虚拟存储空间分布;   2)为虚拟存储空间(线性地址空间)建立页表,即建立虚拟地址到物理地址的映射关系;   3)设置不同存数空间的访问控制属性,保护系统存储空间不被非法访问;   4)内存分配和释放。 1 linux中的物理和虚拟存储空间的分布   支持MMU的32位微处理器上,linux物理存储空间和虚拟存储空间寻址范围都是0x0000_0000~0xFFFF_FFFF,为4GB。   但是linux运行在虚拟存储空间中,而实际使用中将 远小于4GB的物理内存映射为虚拟内存的4GB。   物理存储空间分布(引用《嵌入式系统linux内核开发实战指南(ARM平台)》)
[单片机]
<font color='red'>ARM</font>平台linux内核Notes 2
热门资源推荐
热门放大器推荐
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved