您现在的位置是:首页 >技术教程 >expected ‘(‘ after 、error: use of undeclared identifier ‘PRESERVE8‘网站首页技术教程

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

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。