将一个stm32f40X的keil项目该城ARM-NONE-EABI-xxx的,使用make管理项目
发现keil和gcc对内联汇编的格式是不一样的,下面需要从keil转成gcc的:
- //THUMB指令不支持汇编内联
- //采用如下方法实现执行汇编指令WFI
- __asm void WFI_SET(void)
- {
- WFI;
- }
- //关闭所有中断(但是不包括fault和NMI中断)
- __asm void INTX_DISABLE(void)
- {
- CPSID I
- BX LR
- }
- //开启所有中断
- __asm void INTX_ENABLE(void)
- {
- CPSIE I
- BX LR
- }
- //设置栈顶地址
- //addr:栈顶地址
- __asm void MSR_MSP(u32 addr)
- {
- MSR MSP, r0 //set Main Stack value
- BX r14
- }
复制代码
转了前三个函数,不知道有没有问题:
- //THUMB指令不支持汇编内联
- //采用如下方法实现执行汇编指令WFI
- void WFI_SET(void) //鎵цWFI鎸囦护
- {
- __asm volatile( "wfi" );
- }
- //关闭所有中断(但是不包括fault和NMI中断)
- void INTX_DISABLE(void)//鍏抽棴鎵€鏈変腑鏂?
- {
- __asm volatile( "cpsid i" );
- __asm volatile( "bx lr" );
- }
- //开启所有中断
- void INTX_ENABLE(void)//寮€鍚墍鏈変腑鏂?
- {
- __asm volatile( "cpsie i" );
- __asm volatile( "bx lr" );
- }
- //设置栈顶地址
- //addr:栈顶地址
- void MSR_MSP(u32 addr) //璁剧疆鍫嗘爤鍦板潃
- {
- }
复制代码
|
|