硬汉嵌入式论坛

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

[FreeRTOS] FREEROS 在 CM0 内核  STM32F07上 vPortSVCHandler 没有用上?

[复制链接]

22

主题

12

回帖

21

积分

新手上路

积分
21
发表于 2017-3-24 22:07:22 | 显示全部楼层 |阅读模式
楼主 可以说说 FREERTOS在 CM0上 vPortSVCHandler这个函数没有 用上的原因吗?  看源码被弄晕了;
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107046
QQ
发表于 2017-3-25 00:45:54 | 显示全部楼层
M0用了啊,我看的是V9.0.0软件包里面的这个例子:CORTEX_M0_STM32F0518_IAR
1.png
回复

使用道具 举报

22

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2017-3-25 21:05:57 | 显示全部楼层
楼主,我看的是 V823版本的,代码里面确实  这个函数是 空的  但是程序可以正常运行   是因为 CM0的 运行模式的原因吗?  只有中断需要 在异常模式下运行,所以没有必要用SVC 中断?
回复

使用道具 举报

22

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2017-3-25 21:10:39 | 显示全部楼层

回 eric2013 的帖子

eric2013:M0用了啊,我看的是V9.0.0软件包里面的这个例子:CORTEX_M0_STM32F0518_IAR
 (2017-03-25 00:45) 
楼主 我说的是 vPortSVCHandler  不是 pendsv哟?
回复

使用道具 举报

22

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2017-3-25 21:12:14 | 显示全部楼层

回 eric2013 的帖子

eric2013:M0用了啊,我看的是V9.0.0软件包里面的这个例子:CORTEX_M0_STM32F0518_IAR
 (2017-03-25 00:45) 
楼主,我看的是 V823版本的,代码里面确实  这个函数是 空的  但是程序可以正常运行   是因为 CM0的 运行模式的原因吗?  只有中断需要 在异常模式下运行,所以没有必要用SVC 中断?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107046
QQ
发表于 2017-3-26 10:03:01 | 显示全部楼层

回 尼泊尔3144 的帖子

尼泊尔3144:

楼主,我看的是 V823版本的,代码里面确实  这个函数是 空的  但是程序可以正常运行   是因为 CM0的 运行模式的原因吗?  只有中断需要 在异常模式下运行,所以没有必要用SVC 中断?
也有
1.png
回复

使用道具 举报

1

主题

109

回帖

112

积分

初级会员

固件開發工程師

积分
112
QQ
发表于 2017-3-28 13:33:35 | 显示全部楼层
FreeRTOS CM0版确实没有用。
SVC实际是一种Software Interrupt。这类机制在用户层和内核层隔离的OS里用得较多,一般是作为用户程序调用内核程序的一种机制。
CM0硬件本身没有特权模式和非特权模式,FreeRTOS的实现也是内核和应用程序编译在一起。用户程序想使用内核提供的服务的话,直接调用内核API即可。使用软件中断的话,需要有中断的进出过程,系统效率没有直接API调用高, 并且使用中断带来各种问题/限制也要考虑(中断优先级、延迟、丢失等等)。所以,Software Interrupt这种机制看起来没有必要。
另外,ARM是先发布了CM3,后发布CM0。CM3是有特权模式和非特权模式的。嵌入式操作系统的规模相对较小,可能这类RTOS的作者觉得,利用特权模式和非特权模式隔离内核和应用程序,带来的便利不如引入的问题多吧。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107046
QQ
发表于 2017-3-28 16:17:50 | 显示全部楼层

回 ----- 的帖子

-----:FreeRTOS CM0版确实没有用。
SVC实际是一种Software Interrupt。这类机制在用户层和内核层隔离的OS里用得较多,一般是作为用户程序调用内核程序的一种机制。
CM0硬件本身没有特权模式和非特权模式,FreeRTOS的实现也是内核和应用程序编译在一起。用户程序想使用内核提供的服务的话 .. (2017-03-28 13:33)
看了你的回复,我终于知道楼主问的问题了,楼主问的是SVC,我一直回复的PendSV。。[s:125]
非常感谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 13:33 , Processed in 0.174877 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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