内核移植(二)--armcc 汇编基础

armcc 汇编基础

armcc 汇编中常用的符号

EQU

作用与 C 语言中 #define 类似

SCB_VTOR        EQU     0xE000ED08               ; Vector Table Offset Register         向量表偏移寄存器
NVIC_INT_CTRL   EQU     0xE000ED04               ; interrupt control state register     中断控制状态寄存器
NVIC_SYSPRI2    EQU     0xE000ED20               ; system priority register (2)         系统优先级寄存器(2)
NVIC_PENDSV_PRI EQU     0x00FF0000               ; PendSV priority value (lowest)       PendSV优先级值(lowest)
NVIC_PENDSVSET  EQU     0x10000000               ; value to trigger PendSV exception    触发PendSV exception的值

AREA

汇编代码产生指令,当我们新建一个汇编文件写代码时,必须包含类似的指令。

AREA |.text|, CODE, READONLY, ALIGN=2        
;AREA表示汇编一个新的数据段或代码段, 
;.text表示段名字,如果段名不是以字母开头,而是以其他符号开头则需要在段名两边加上'|';CODE表示为代码,
;READONLY表示只读,
;ALIGN = 2,表示当前文件指令要4字节对齐 若ALIGN=n,则2^n对齐
THUMB                                        ;Thumb指令代码 若为 ARM 则为 ARM 指令集
REQUIRE8                                     ;指定当前文件要求堆栈八字节对齐
PRESERVE8                                    ;指定当前文件要求保持堆栈八字节对齐

IMPORT

作用与 C 语言中的 extern 类似

IMPORT rt_thread_switch_interrupt_flag ;IMPORT 声明标号来自外部文件,跟C语言的extern关键字类似  这三个变量在cpuport.c文件中定义
IMPORT rt_interrupt_from_thread
IMPORT rt_interrupt_to_thread

EXPORT

EXPORT 输出定义的函数,类似 C 语言的 extern 使其具有全局属性,在外部头文件声明后(rthw.h 中声明) 就可以在 C 文件中调用

rt_hw_interrupt_enable    PROC
    EXPORT  rt_hw_interrupt_enable
    ENDP

PROC

关键字 PROC 表示汇编子程序的开始 PROC 伪指令定义函数,ENDP 函数结束

rt_hw_interrupt_disable    PROC
    EXPORT  rt_hw_interrupt_disable
    ENDP

END

END 表示汇编文件结束,每个汇编文件都需要有一个 END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值