通用裸机-arm汇编和cpu运行模式

发布者:悦耳旋律最新更新时间:2024-07-03 来源: elecfans关键字:arm汇编  cpu  运行模式 手机看文章 扫描二维码
随时随地手机看文章


#define ACTLR_DODMBS_Pos                 10U                                     /*!< ACTLR: DODMBS Position */

#define ACTLR_DODMBS_Msk                 (1UL << ACTLR_DODMBS_Pos)               /*!< ACTLR: DODMBS Mask */


#define ACTLR_SMP_Pos                    6U                                      /*!< ACTLR: SMP Position */

#define ACTLR_SMP_Msk                    (1UL << ACTLR_SMP_Pos)                  /*!< ACTLR: SMP Mask */



/* CP15的CPACR寄存器

 * 参考资料:Cortex-A7 Technical ReferenceManua.pdf P115

 */

typedef union

{

  struct

  {

    uint32_t _reserved0:20;              /*!< bit: 0..19  Reserved */

    uint32_t cp10:2;                     /*!< bit:20..21  Access rights for coprocessor 10 */

    uint32_t cp11:2;                     /*!< bit:22..23  Access rights for coprocessor 11 */

    uint32_t _reserved1:6;               /*!< bit:24..29  Reserved */

    uint32_t D32DIS:1;                   /*!< bit:    30  Disable use of registers D16-D31 of the VFP register file */

    uint32_t ASEDIS:1;                   /*!< bit:    31  Disable Advanced SIMD Functionality */

  } b;                                   /*!< Structure used for bit  access */

  uint32_t w;                            /*!< Type      used for word access */

} CPACR_Type;


#define CPACR_ASEDIS_Pos                 31U                                    /*!< CPACR: ASEDIS Position */

#define CPACR_ASEDIS_Msk                 (1UL << CPACR_ASEDIS_Pos)              /*!< CPACR: ASEDIS Mask */


#define CPACR_D32DIS_Pos                 30U                                    /*!< CPACR: D32DIS Position */

#define CPACR_D32DIS_Msk                 (1UL << CPACR_D32DIS_Pos)              /*!< CPACR: D32DIS Mask */


#define CPACR_cp11_Pos                   22U                                    /*!< CPACR: cp11 Position */

#define CPACR_cp11_Msk                   (3UL << CPACR_cp11_Pos)                /*!< CPACR: cp11 Mask */


#define CPACR_cp10_Pos                   20U                                    /*!< CPACR: cp10 Position */

#define CPACR_cp10_Msk                   (3UL << CPACR_cp10_Pos)                /*!< CPACR: cp10 Mask */



/* CP15的DFSR寄存器

 * 参考资料:Cortex-A7 Technical ReferenceManua.pdf P128

 */

typedef union

{

  struct

  {

    uint32_t FS0:4;                      /*!< bit: 0.. 3  Fault Status bits bit 0-3 */

    uint32_t Domain:4;                   /*!< bit: 4.. 7  Fault on which domain */

    uint32_t _reserved0:2;               /*!< bit: 8.. 9  Reserved */

    uint32_t FS1:1;                      /*!< bit:    10  Fault Status bits bit 4 */

    uint32_t WnR:1;                      /*!< bit:    11  Write not Read bit */

    uint32_t ExT:1;                      /*!< bit:    12  External abort type */

    uint32_t CM:1;                       /*!< bit:    13  Cache maintenance fault */

    uint32_t _reserved1:18;              /*!< bit:14..31  Reserved */

  } b;                                   /*!< Structure used for bit  access */

  uint32_t w;                            /*!< Type      used for word access */

} DFSR_Type;


#define DFSR_CM_Pos                      13U                                    /*!< DFSR: CM Position */

#define DFSR_CM_Msk                      (1UL << DFSR_CM_Pos)                   /*!< DFSR: CM Mask */


#define DFSR_Ext_Pos                     12U                                    /*!< DFSR: Ext Position */

#define DFSR_Ext_Msk                     (1UL << DFSR_Ext_Pos)                  /*!< DFSR: Ext Mask */


#define DFSR_WnR_Pos                     11U                                    /*!< DFSR: WnR Position */

#define DFSR_WnR_Msk                     (1UL << DFSR_WnR_Pos)                  /*!< DFSR: WnR Mask */


#define DFSR_FS1_Pos                     10U                                    /*!< DFSR: FS1 Position */

#define DFSR_FS1_Msk                     (1UL << DFSR_FS1_Pos)                  /*!< DFSR: FS1 Mask */


#define DFSR_Domain_Pos                  4U                                     /*!< DFSR: Domain Position */

#define DFSR_Domain_Msk                  (0xFUL << DFSR_Domain_Pos)             /*!< DFSR: Domain Mask */


#define DFSR_FS0_Pos                     0U                                     /*!< DFSR: FS0 Position */

#define DFSR_FS0_Msk                     (0xFUL << DFSR_FS0_Pos)                /*!< DFSR: FS0 Mask */



/* CP15的IFSR寄存器 

 * 参考资料:Cortex-A7 Technical ReferenceManua.pdf P131

 */

typedef union

{

  struct

  {

    uint32_t FS0:4;                      /*!< bit: 0.. 3  Fault Status bits bit 0-3 */

    uint32_t _reserved0:6;               /*!< bit: 4.. 9  Reserved */

    uint32_t FS1:1;                      /*!< bit:    10  Fault Status bits bit 4 */

    uint32_t _reserved1:1;               /*!< bit:    11  Reserved */

    uint32_t ExT:1;                      /*!< bit:    12  External abort type */

    uint32_t _reserved2:19;              /*!< bit:13..31  Reserved */

  } b;                                   /*!< Structure used for bit  access */

  uint32_t w;                            /*!< Type      used for word access */

} IFSR_Type;


#define IFSR_ExT_Pos                     12U                                    /*!< IFSR: ExT Position */

[1] [2] [3] [4] [5] [6] [7] [8]
关键字:arm汇编  cpu  运行模式 引用地址:通用裸机-arm汇编和cpu运行模式

上一篇:通用裸机-传感器-1-DHT11温湿度sensor
下一篇:IMX6ULL裸机-4-ADC控制器

推荐阅读最新更新时间:2024-11-13 16:46

美国制裁中兴后 中国CPU自主可控“核心三要素”发布
    “美国对中国芯片的制裁,让我们更加坚定自主创新的道路,我们需要加紧发展国产自主的国产软硬件基础。”4月19日,在万寿宾馆举行的关键信息基础设施自主安全创新论坛上,中国工程院院士倪光南语调不高,语气坚决。   此外,CTF计算机安全为专委会主任严明、国家工程院院士沈昌祥、国家高性能集成电路(上海)设计中心副主任田斌、龙芯中科技术有限公司总裁胡伟武等出席并先后进行了报告。各专家对处理器自主可控标准进行了深度剖析和解读,并正式发布了CPU自主可控的“核心三要素”,给鱼龙混杂的CPU市场确立了评判标准。   发展自主可控信息基础设施迫在眉睫   “曾几何时,谷歌(1072.96, -14.74, -1.36%)退出中国市场,那时候
[半导体设计/制造]
ARM汇编中伪指令的介绍
伪指令没有相对应的操作码,他们所完成的操作称为伪操作。 伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成(就如你睡觉她为你铺床,铺在哪儿和铺床技巧由她安排,但她不陪你睡觉,铺好了就走 :-( )。   在 ARM 的汇编程序中,有如下几种伪指令:符号定义伪指令、数据定义伪指令、汇编控制伪指令、宏指令以及其他伪指令。   符号定义( Symbol Definition )伪指令   符号定义伪指令用于定义 ARM 汇编程序中的变量、对变量赋值以及定义寄存器的别名等操作。   常见的符号定义伪指令有如下几种:    用于定义全局变量的 GBLA 、
[单片机]
ARM汇编指令集之六——加载/存储指令
ARM微处理器支持加载/存储指令用于在寄存器和存储器之间传送数据,加载指令用于将存储器中的数据传送到寄存器,存储指令则完成相反的操作。常用的加载存储指令如下: 1、LDR指令 LDR指令的格式为: LDR{条件} 目的寄存器, 存储器地址 LDR指令用于从存储器中将一个32位的字数据传送到目的寄存器中。该指令通常用于从存储器中读取32位的字数据到通用寄存器,然后对数据进行处理。当程序计数器PC作为目的寄存器时,指令从存储器中读取的字数据被当作目的地址,从而可以实现程序流程的跳转。该指令在程序设计中比较常用,且寻址方式灵活多样,请读者认真掌握。 指令示例: LDR R0, ;将存储器地址为R1的字
[单片机]
UCOS-II中OS_CPU_IRQ_ISR移植过程分析
简介:在讨论ARM的移植过程中,我觉得首先应该搞清楚每一种情况下CPU的工作模式,同时搞清楚寄存器的特殊性,同时搞清楚中断处理的一般过程。 在uc/os-II的移植过程中存在一个通用的irq中断处理函数,其中的实现过程如下: OS_CPU_IRQ_ISR STMFD SP!, {R1-R3} ; We will use R1-R3 as temporary registers MOV R1, SP ADD SP, SP, #12 ;Adjust IRQ stack pointer SUB R2, LR, #4 ;Adjust PC for return address to task MRS R3, SPSR ; Copy
[单片机]
arm汇编实现的跑马灯实验
平台:fs2410 用arm汇编编写的跑马灯单文件可以很好运行,不需要包其他的头文件和一些初始化函数。 GPFCON EQU 0x56000050 GPFDAT EQU 0x56000054 GPFUP EQU 0x56000058 EXPORT LEDTEST AREA LEDTESTASM,CO DE,READONLY ;定义了一个代码段,段名为LEDTESTASM,属性只读 LEDTEST ;设置GPF4-GPF7为output ldr r0,=GPFCON ldr r1,=0x5500 str r1, ;禁止GPF4-GPF7端口的上拉电阻 ldr
[单片机]
基于LPC2138CPU芯片实现开关寿命自动测试系统的设计
各种各样的开关电器被应用在航空、航天、交通及一般工业或民用领域,比如微动开关、按钮开关、转换开关、电源开关等。无论何种开关,都是常开触头和常闭触头的组合,这些触头被用来闭合或断开电路。触头经过一定时间的动作以后,会逐渐丧失正常的开闭功能,比如接触不良、触头不动作等,因此任何开关都存在使用寿命。运用在一般工业及民用领域的开关电器,对开关的寿命没有严格的要求,但如果开关被应用到航空、航天和交通等领域时,开关是否良好直接关系到飞机、轮船和汽车运行时的安全,所以必须对开关的寿命提出严格的要求,要求开关制造商标明开关的触头能正常开闭的次数,因此开关制造商在开关出厂前有必要对同一批号的产品进行抽查测试,以掌握开关的确切寿命。 1 开关寿命
[单片机]
基于LPC2138<font color='red'>CPU</font>芯片实现开关寿命自动测试系统的设计
Intel CPU工艺上演奇迹:6个季度内实现“1.8nm”量产
在先进工艺上,Intel这两年被三星、台积电领先了,但在CEO基辛格的带领下,Intel目标是2025年重新成为半导体领导者,还定下了4年内掌握5代CPU工艺的宏大目标,如今已经是2023年了,距离目标只有2年。 这五种工艺是Intel 7、Intel 4、Intel 3、Intel 20A(等效2nm,其中A代表埃米,1nm=10埃米,下同)、18A(等效1.8nm),其中Intel 7就是当前13代、12代酷睿量产的工艺。 Intel 4工艺会由14代酷睿首发,不过随着PC需求的下滑,Intel今年的策略也变了,Intel 4工艺至少要到2023年下半年才能量产了。 Intel 20A计划2024上半年准备投
[半导体设计/制造]
Intel <font color='red'>CPU</font>工艺上演奇迹:6个季度内实现“1.8nm”量产
UCOS-II中OS_CPU_IRQ_ISR移植过程分析
在uc/os-II的移植过程中存在一个通用的irq中断处理函数,其中的实现过程如下: OS_CPU_IRQ_ISR STMFD SP!, {R1-R3} ; We will use R1-R3 as temporary registers MOV R1, SP ADD SP, SP, #12 ;Adjust IRQ stack pointer SUB R2, LR, #4 ;Adjust PC for return address to task MRS R3, SPSR ; Copy SPSR (Task CPSR) MSR CPSR_cxsf, #SVCMODE|NOINT ;Change to
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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