按照官网手册进行生成 CubeMX工程,发现如下19个错误,出现在 Contex_rvds.S 文件中,如下图
Build started: Project:
*** Using Compiler 'V6.12', folder: 'D:\Keil_v5\ARM\ARMCLANG\Bin'
Build target 'ADC+DAC+SD+SDRAM'
compiling msh.c...
compiling shell.c...
compiling cmd.c...
../Middlewares/Third_Party/RealThread_RTOS_RT-Thread/libcpu/arm/cortex-m7/context_rvds.S(20): error: unknown type name 'SCB_VTOR'
SCB_VTOR EQU 0xE000ED08 ; Vector Table Offset Register
^
../Middlewares/Third_Party/RealThread_RTOS_RT-Thread/libcpu/arm/cortex-m7/context_rvds.S(20): error: expected ';' after top level declarator
SCB_VTOR EQU 0xE000ED08 ; Vector Table Offset Register
^
;
../Middlewares/Third_Party/RealThread_RTOS_RT-Thread/libcpu/arm/cortex-m7/context_rvds.S(20): error: unknown type name 'Vector'
SCB_VTOR EQU 0xE000ED08 ; Vector Table Offset Register
^
../Middlewares/Third_Party/RealThread_RTOS_RT-Thread/libcpu/arm/cortex-m7/context_rvds.S(20): error: expected ';' after top level declarator
SCB_VTOR EQU 0xE000ED08 ; Vector Table Offset Register
^
;
../Middlewares/Third_Party/RealThread_RTOS_RT-Thread/libcpu/arm/cortex-m7/context_rvds.S(21): error: unknown type name 'interrupt'
NVIC_INT_CTRL EQU 0xE000ED04 ; interrupt control state register
^
../Middlewares/Third_Party/RealThread_RTOS_RT-Thread/libcpu/arm/cortex-m7/context_rvds.S(21): error: expected ';' after top level declarator
NVIC_INT_CTRL EQU 0xE000ED04 ; interrupt control state register
^
;
../Middlewares/Third_Party/RealThread_RTOS_RT-Thread/libcpu/arm/cortex-m7/context_rvds.S(22): error: unknown type name 'system'
NVIC_SYSPRI2 EQU 0xE000ED20 ; system priority register (2)
^
../Middlewares/Third_Party/RealThread_RTOS_RT-Thread/libcpu/arm/cortex-m7/context_rvds.S(22): error: expected ';' after top level declarator
NVIC_SYSPRI2 EQU 0xE000ED20 ; system priority register (2)
^
;
../Middlewares/Third_Party/RealThread_RTOS_RT-Thread/libcpu/arm/cortex-m7/context_rvds.S(22): error: expected identifier or '('
NVIC_SYSPRI2 EQU 0xE000ED20 ; system priority register (2)
^
../Middlewares/Third_Party/RealThread_RTOS_RT-Thread/libcpu/arm/cortex-m7/context_rvds.S(22): error: expected ')'
../Middlewares/Third_Party/RealThread_RTOS_RT-Thread/libcpu/arm/cortex-m7/context_rvds.S(22): note: to match this '('
NVIC_SYSPRI2 EQU 0xE000ED20 ; system priority register (2)
^
../Middlewares/Third_Party/RealThread_RTOS_RT-Thread/libcpu/arm/cortex-m7/context_rvds.S(23): error: unknown type name 'PendSV'
NVIC_PENDSV_PRI EQU 0x00FF0000 ; PendSV priority value (lowest)
^
../Middlewares/Third_Party/RealThread_RTOS_RT-Thread/libcpu/arm/cortex-m7/context_rvds.S(23): error: expected ';' after top level declarator
NVIC_PENDSV_PRI EQU 0x00FF0000 ; PendSV priority value (lowest)
^
;
../Middlewares/Third_Party/RealThread_RTOS_RT-Thread/libcpu/arm/cortex-m7/context_rvds.S(24): error: unknown type name 'value'
NVIC_PENDSVSET EQU 0x10000000 ; value to trigger PendSV exception
^
../Middlewares/Third_Party/RealThread_RTOS_RT-Thread/libcpu/arm/cortex-m7/context_rvds.S(24): error: expected ';' after top level declarator
NVIC_PENDSVSET EQU 0x10000000 ; value to trigger PendSV exception
^
;
../Middlewares/Third_Party/RealThread_RTOS_RT-Thread/libcpu/arm/cortex-m7/context_rvds.S(38): error: unknown type name 'rt_hw_interrupt_disable'
rt_hw_interrupt_disable PROC
^
../Middlewares/Third_Party/RealThread_RTOS_RT-Thread/libcpu/arm/cortex-m7/context_rvds.S(38): error: expected ';' after top level declarator
rt_hw_interrupt_disable PROC
^
;
../Middlewares/Third_Party/RealThread_RTOS_RT-Thread/libcpu/arm/cortex-m7/context_rvds.S(48): error: unknown type name 'rt_hw_interrupt_enable'
rt_hw_interrupt_enable PROC
^
../Middlewares/Third_Party/RealThread_RTOS_RT-Thread/libcpu/arm/cortex-m7/context_rvds.S(48): error: expected ';' after top level declarator
rt_hw_interrupt_enable PROC
^
;
../Middlewares/Third_Party/RealThread_RTOS_RT-Thread/libcpu/arm/cortex-m7/context_rvds.S(59): error: unknown type name 'rt_hw_context_switch_interrupt'
rt_hw_context_switch_interrupt
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
compiling context_rvds.S...
"ADC+DAC+SD+SDRAM\ADC+DAC+SD+SDRAM.axf" - 19 Error(s), 0 Warning(s).
Target not created.
Build Time Elapsed: 00:00:06
Contex_rvds.S 从工程中删除,再重新添加就好了。也可以按楼上的方法
你怎么一下就看出来是汇编没有识别的?
@tianzhongyushui 我试过,keil吧s文件类型当成其他类型了,删除后再加入工程中选正确的类型就可以识别了