您现在的位置是:首页 >技术教程 >expected ‘(‘ after 、error: use of undeclared identifier ‘PRESERVE8‘网站首页技术教程
expected ‘(‘ after 、error: use of undeclared identifier ‘PRESERVE8‘
在搭建nordic 52xx系列keil开发环境时,发现报错。
报错1:
../../../../../../components/libraries/util/app_error_handler_keil.c(47): error: use of undeclared identifier 'PRESERVE8'
参考解决方案:ARM 编译器错误和警告参考指南版本 5.05
报错2:
../../../../../../components/libraries/util/app_error_handler_keil.c(45): error: expected '(' after 'asm'
__ASM void app_error_handler(ret_code_t error_code, uint32_t line_num, const uint8_t * p_file_name)
^
../../../../../../components/libraries/util/app_error_handler_keil.c(45): error: expected ';' after top-level asm block
__ASM void app_error_handler(ret_code_t error_code, uint32_t line_num, const uint8_t * p_file_name)
报错3:
ArmClang: error: unsupported option '--reduce_paths'
以上报错均是编译器问题,SDK默认是compiler5 for keil,对于compiler6而言,很多特性不再支持。
我们可以下载compiler5:Legacy Arm Compiler 5, 4.1, and RVCT (ACOMP5)
然后在工程中添加compiler5:µVision User's Guide (arm.com)
不同编译器的差异:Arm Compiler for Embedded Migration and Compatibility Guide