硬汉嵌入式论坛

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

[FreeRTOS] keil ac6 移植 FreeRTOS 报错

  [复制链接]

27

主题

272

回帖

353

积分

高级会员

积分
353
发表于 2020-11-25 14:08:12 | 显示全部楼层 |阅读模式
../../User/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.c(243): error: use of undeclared identifier 'PRESERVE8'
    PRESERVE8
    ^
../../User/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.c(260): error: expected '(' after 'asm'
__asm void prvStartFirstTask( void )
      ^
../../User/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.c(260): error: expected ';' after top-level asm block
__asm void prvStartFirstTask( void )
     ^
     ;
../../User/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.c(263): error: use of undeclared identifier 'PRESERVE8'
    PRESERVE8
    ^
../../User/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.c(291): error: expected '(' after 'asm'
__asm void prvEnableVFP( void )
      ^
../../User/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.c(291): error: expected ';' after top-level asm block
__asm void prvEnableVFP( void )
     ^
     ;
../../User/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.c(294): error: use of undeclared identifier 'PRESERVE8'
    PRESERVE8
    ^
../../User/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.c(453): error: expected '(' after 'asm'
__asm void xPortPendSVHandler( void )
      ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
compiling port.c...
".\Objects\project.axf" - 75 Error(s), 61 Warning(s).
Target not created.
Build Time Elapsed:  00:00:05




这怎么解决?

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106437
QQ
发表于 2020-11-25 14:23:14 | 显示全部楼层
使用MDK的提供的FreeRTOS软件包,他们修改了port文件,做了AC6支持。
回复

使用道具 举报

27

主题

272

回帖

353

积分

高级会员

积分
353
 楼主| 发表于 2020-11-25 14:26:53 | 显示全部楼层
如何 切换 到 AC5 ?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106437
QQ
发表于 2020-11-25 14:30:03 | 显示全部楼层
suozhang 发表于 2020-11-25 14:26
如何 切换 到 AC5 ?

那个port文件是AC5和AC6都支持的,无需切换。
回复

使用道具 举报

27

主题

272

回帖

353

积分

高级会员

积分
353
 楼主| 发表于 2020-11-25 15:05:38 | 显示全部楼层
问题 已解决
回复

使用道具 举报

73

主题

1189

回帖

1408

积分

至尊会员

积分
1408
发表于 2021-2-7 17:24:58 | 显示全部楼层

怎么解决的啊??
回复

使用道具 举报

27

主题

272

回帖

353

积分

高级会员

积分
353
 楼主| 发表于 2021-3-26 10:02:52 | 显示全部楼层
wdliming 发表于 2021-2-7 17:24
怎么解决的啊??

不好意思 现在 才看到 用  软件包里的  源文件 即可
回复

使用道具 举报

6

主题

21

回帖

39

积分

新手上路

积分
39
发表于 2022-9-29 09:21:37 | 显示全部楼层
suozhang 发表于 2021-3-26 10:02
不好意思 现在 才看到 用  软件包里的  源文件 即可

您好,我出现了同样AC6移植FreeRTOS的问题,按照你的说法在keil安装目录下的Keil_v5\ARM\CMSIS-FreeRTOS\10.4.6里面的Source,进行移植但是还是有问题,请问可以详细指点下吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106437
QQ
发表于 2022-9-29 16:20:27 | 显示全部楼层
PYL4869 发表于 2022-9-29 09:21
您好,我出现了同样AC6移植FreeRTOS的问题,按照你的说法在keil安装目录下的Keil_v5\ARM\CMSIS-FreeRTOS\ ...

MDK RTE一键生成FreeRTOS工程对比下即可
回复

使用道具 举报

6

主题

21

回帖

39

积分

新手上路

积分
39
发表于 2022-10-13 22:30:08 | 显示全部楼层
eric2013 发表于 2022-9-29 16:20
MDK RTE一键生成FreeRTOS工程对比下即可

初学者提问有这个使用RTE创建FreeRTOS的教程吗?(主要是使用FreeRTOS的方法),我看你的FreeRTOS教程PDF是采用源码的方式,自己移植FreeRTOS源码的时候使用AC6老是报错,有没有使用RTE创建FreeRTOS的一个综合程序参考参考
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106437
QQ
发表于 2022-10-15 16:32:26 | 显示全部楼层
PYL4869 发表于 2022-10-13 22:30
初学者提问有这个使用RTE创建FreeRTOS的教程吗?(主要是使用FreeRTOS的方法),我看你的FreeRTOS教程PDF ...

就是这个教程,RTX5和FreeRTOS的创建是一样的。

https://www.armbbs.cn/forum.php?mod=viewthread&tid=93149
回复

使用道具 举报

0

主题

15

回帖

15

积分

新手上路

积分
15
发表于 2022-11-26 00:01:25 | 显示全部楼层
用GCC文件夹下的port可以编译通过
回复

使用道具 举报

332

主题

2031

回帖

3032

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3032
发表于 2023-2-9 14:40:42 | 显示全部楼层
对比了一下AC5和AC6下的port.c ,它们的语法差别主要是__asm这个关键字的位置和用法。
image.png

查看了安富莱的AC6版本的FreeRTOS,里面的port.c直接用的就是目录GCC下的,而不是目录RVDS下的。

以前AC5的时候,FreeRTOS用的port都是RVDS下的。
回复

使用道具 举报

27

主题

272

回帖

353

积分

高级会员

积分
353
 楼主| 发表于 2023-2-9 15:27:54 | 显示全部楼层
caicaptain2 发表于 2023-2-9 14:40
对比了一下AC5和AC6下的port.c ,它们的语法差别主要是__asm这个关键字的位置和用法。

回复

使用道具 举报

27

主题

272

回帖

353

积分

高级会员

积分
353
 楼主| 发表于 2023-2-9 15:28:07 | 显示全部楼层
goodgft 发表于 2022-11-26 00:01
用GCC文件夹下的port可以编译通过

回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2023-4-12 21:29:39 | 显示全部楼层
eric2013 发表于 2020-11-25 14:30
那个port文件是AC5和AC6都支持的,无需切换。




回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2023-4-12 21:37:33 | 显示全部楼层
eric2013 发表于 2020-11-25 14:23
使用MDK的提供的FreeRTOS软件包,他们修改了port文件,做了AC6支持。



硬汉哥,我用的也是GCC那个文件下的port文件,但是使用AC6编译的时候发现一直有一个错误无法解决,后来将port.c文件中xPortPendSVHandler函数的"        bl vTaskSwitchContext                                \n"这一行屏蔽之后错误消失,但是我看了一下FreeRTOS中vTaskSwitchContext这个函数作用是检查任务堆栈使用是否溢出,和查找下一个优先级高的任务,如果使能运行时间统计功能,会计算任务运行时间,不知道屏蔽之后是否会对程序运行产生影响,另外看了很多其他人的AC5转AC6也没有提到这一条,不知道我这是什么原因,请硬汉解答下哈!
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2023-5-5 17:44:11 | 显示全部楼层
版主,有个问题?????
我用的也是GCC那个文件下的port文件,Keil  , AC6编译没问题,版主,这个port文件使用对以后开发有影响吗??
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 23:58 , Processed in 0.315663 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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