硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3974|回复: 2
收起左侧

[MDK] [请教]MDK5.27 AC6编译是产生错误

[复制链接]

5

主题

31

回帖

46

积分

新手上路

积分
46
发表于 2019-5-12 09:04:53 | 显示全部楼层 |阅读模式
我是V5板用户,最近在多个地方看见Eric发的MDK AC6编译速度快,所以决定试一下。
工程是使用stm32cube产生的带Freertos 的工程,默认使用AC5正常编译,无警告。
选用AC6后,出现一堆错误,看起来主要是port.c的汇编产生的。
在论坛里坛友有分享了一篇“Migrate ARM compiler 5 to ARM Compiler 6”,在第10页提到inline assembler的问题,但不知道怎么改?
请问是否可以指导一下?
感谢感谢。

../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM0/port.c(162): error: expected '(' after 'asm'
__asm void prvPortStartFirstTask( void )
      ^
../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM0/port.c(162): error: expected ';' after top-level asm block
__asm void prvPortStartFirstTask( void )
     ^
     ;
../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM0/port.c(166): error: use of undeclared identifier 'PRESERVE8'
        PRESERVE8
        ^
../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM0/port.c(255): error: expected '(' after 'asm'
__asm uint32_t ulSetInterruptMaskFromISR( void )
      ^
../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM0/port.c(255): error: expected ';' after top-level asm block
__asm uint32_t ulSetInterruptMaskFromISR( void )
     ^
     ;
../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM0/port.c(257): error: use of undeclared identifier 'mrs'
        mrs r0, PRIMASK
        ^
../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM0/port.c(263): error: expected '(' after 'asm'
__asm void vClearInterruptMaskFromISR( uint32_t ulMask )
      ^
../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM0/port.c(263): error: expected ';' after top-level asm block
__asm void vClearInterruptMaskFromISR( uint32_t ulMask )
     ^
     ;
../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM0/port.c(265): error: use of undeclared identifier 'msr'
        msr PRIMASK, r0
        ^
../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM0/port.c(270): error: expected '(' after 'asm'
__asm void xPortPendSVHandler( void )
      ^
../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM0/port.c(270): error: expected ';' after top-level asm block
__asm void xPortPendSVHandler( void )
     ^
     ;
../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM0/port.c(272): error: unknown type name 'vTaskSwitchContext'
        extern vTaskSwitchContext
               ^
../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM0/port.c(273): error: expected identifier or '('
        extern pxCurrentTCB
        ^
../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM0/port.c(285): error: use of undeclared identifier 'mov'
        mov r4, r8                              /* Store the high registers. */
        ^
14 errors generated.

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106978
QQ
发表于 2019-5-12 09:44:15 | 显示全部楼层
要移植MDK里面带的FreeRTOS源码,他们对AC6做了支持,

例子的话,参考我这个帖子:

基于V7开发板的RTX5和FreeRTOS带CMSIS-RTOS V2封装层的模板例程下载,AC6和AC5两个版本
http://www.armbbs.cn/forum.php?m ... 3238&fromuid=58
(出处: 安富莱电子论坛)


回复

使用道具 举报

2

主题

269

回帖

275

积分

高级会员

积分
275
发表于 2021-12-2 16:59:35 | 显示全部楼层
刚好搞这个用GCC/ARM_CM0覆盖到RVDS/ARM_CM0编译OK
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-13 00:38 , Processed in 0.257829 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表