请选择 进入手机版 | 继续访问电脑版

安富莱电子论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 165|回复: 5
收起左侧

[FreeRTOS] FreeRTOS tickless 模式不能使用

[复制链接]

8

主题

121

帖子

137

积分

初级会员

积分
137
发表于 2018-11-7 15:38:20 | 显示全部楼层 |阅读模式
小弟我 ,  在 FreeRTOS 下 移植了 SEGGER  RTT,但是开启 FreeRTOS的 tickless模式 ,不能打印,哪位大佬 看看!  

STM32F103C8T6_FreeRTOS_V10.0_SEGGER_RTT_SWD4根线_关闭tickless模式_测试OK.7z

1.33 MB, 下载次数: 9

回复

使用道具 举报

8

主题

121

帖子

137

积分

初级会员

积分
137
 楼主| 发表于 2018-11-7 15:38:53 | 显示全部楼层
如果测试 请在 FreeRTOSconfig.h  配置里打开 FreeRTOS 的 tickless 模式 进行测试!
回复

使用道具 举报

5275

主题

3万

帖子

4万

积分

管理员

做人第一,工作第二

Rank: 9Rank: 9Rank: 9

积分
42666
QQ
发表于 2018-11-7 15:54:15 | 显示全部楼层
/* 保证睡眠模式下调试器继续可以连接使用 */
DBGMCU_Config(DBGMCU_SLEEP, ENABLE);
淘宝小店: https://armfly.taobao.com/
专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

8

主题

121

帖子

137

积分

初级会员

积分
137
 楼主| 发表于 2018-11-7 15:55:25 | 显示全部楼层
本帖最后由 suozhang 于 2018-11-7 19:24 编辑

试了 一下  不行
回复

使用道具 举报

8

主题

121

帖子

137

积分

初级会员

积分
137
 楼主| 发表于 2018-11-7 15:57:58 | 显示全部楼层
本帖最后由 suozhang 于 2018-11-7 19:19 编辑
eric2013 发表于 2018-11-7 15:54
/* 保证睡眠模式下调试器继续可以连接使用 */
DBGMCU_Config(DBGMCU_SLEEP, ENABLE);
老哥 试了一下 ,貌似 不行
回复

使用道具 举报

8

主题

121

帖子

137

积分

初级会员

积分
137
 楼主| 发表于 2018-11-16 18:05:18 | 显示全部楼层
本帖最后由 suozhang 于 2018-11-16 18:07 编辑

已经解决,方法如下:

第一步: 开启 低功耗模式下,debug 的连接
    DBGMCU_Config(DBGMCU_SLEEP, ENABLE);
    DBGMCU_Config(DBGMCU_STOP, ENABLE);
第二步: 判断 RTT 缓冲区有多少字节,然后进行 MCU 空转,空转时间 给JLINK 进行读取 数据,就可以正常打印了
  1. extern unsigned _GetAvailWriteSpace(SEGGER_RTT_BUFFER_UP* pRing);
  2. void flushSeggerRtt( void )
  3. {
  4.     uint32_t i = 0;
  5.    
  6.     uint32_t delayTick = BUFFER_SIZE_UP - _GetAvailWriteSpace( _SEGGER_RTT.aUp );
  7.    
  8.     while( delayTick-- )
  9.     {
  10.         for( i=0; i<1000; i++ );
  11.     }

  12. }
复制代码
第三步: 在 低功耗 之前 调用  flushSeggerRtt(); 函数即可! 例如如下:

  1. void configBeforeEnterStopMode( unsigned int tick )
  2. {

  3.     flushSeggerRtt();
  4.    
  5. }
复制代码

这样做有个缺点 :  就是你不连接jlink, 在 每次进入低功耗之前 都会 进行CPU 空转!!!,因此 建议 增加 debug 宏 进行 判断是否调用 flushSeggerRtt();
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|安富莱电子论坛 ( 鄂ICP备09023347号,公安机关备案号42010602000201 )

GMT+8, 2019-2-19 10:49 , Processed in 0.186903 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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