单独创建一个.s汇编文件,在汇编文件内对函数进行EXPORT声明
r0寄存器是函数传入的第一个参数,r1寄存器是函数传入的第二个参数,以次类推。参数最多不确定是到r4为止,还是到r12,可自行研究。
PRESERVE8
THUMB
AREA |.text|, CODE, READONLY
ALIGN
EXPORT switch_value
switch_value PROC
LDR r2, [r0]
STR r2, [r1]
BX LR
ENDP
ALIGN
END
在.c文件内,对汇编函数再次声明,需要对参数类型进行补充
void switch_value(uint32_t * a,uint32_t * b);
int main(void)
{
uint32_t la=0x55,lb=0;
Debug_UartCfg();
while(1){
delay_ms(500);
switch_value(&la,lb);
debug_printf("hello,0x%x!\r\n",lb);
}
}