硬汉嵌入式论坛

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

[RTOS] 基于V7的uCOS-III动态时钟管理方案例程,用于低功耗,含IAR以及MDK的AC5和AC6版本

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106997
QQ
发表于 2019-5-7 02:22:20 | 显示全部楼层 |阅读模式
模板例子:
V7-uCOS-III动态时钟实现(含MDK的AC5和AC6以及IAR).rar (3.1 MB, 下载次数: 214)

1、MDK使用MDK5.26及其以上版本。
2、IAR使用IAR8.30及其以上版本。
3、由于Mircium当前仅提供了IAR的底层移植文件,参考修改制作了个MDK版本的。
4、新版的底层移植文件比较好用,支持M3,M4和M7,含浮点支持。
5、制作了一个滴答定时器和PendSV中断入口汇编文件os_cpu_isr.asm,以后不用繁琐的修改启动文件的中断入口函数名,直接添加此贴文件即可。
6、新版的中断管理分为Kernel Aware和Non-Kernel Aware
(1)Kernel Aware 表示受到uCOS-III管理的中断服务程序。
(2)Non-Kernel Aware 表示不受管理的中断服务程序,中断使用跟裸机一样,但不可调用uCOS-III的API。
7、uCOS-III进入V3.07.00版本后与之前的版本变化较大,确切的说是更好用了。新的内核部分越来越向uCOS-II靠拢,之前臃肿的功能和不合理方案都已经放弃。
uCOS-III刚推出的时候,搞了不少功能,什么中断延迟提交,多事件等待,专门搞一个滴答定时器任务等新功能。升级到当前的V3.07.00后,都被干掉了,不实用。
8、动态时钟管理用的TIM5实现,Micrium文档:
Part1:AN-Dynamic-Tick-BSP.pdf
Part2:AN-Dynamic-Tick-Optimization-V1.0.pdf

这里的动态滴答模式类似RTX,FreeRTOS的tickless,都是用于低功耗的。
正常滴答和动态滴答的效果对比:







1254.png
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2020-2-21 10:01:13
学习中,多谢

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2020-2-21 10:01:39 | 显示全部楼层
学习中,谢谢
回复

使用道具 举报

73

主题

1200

回帖

1419

积分

至尊会员

积分
1419
发表于 2020-2-22 13:23:48 | 显示全部楼层
谢谢硬汉哥
回复

使用道具 举报

19

主题

150

回帖

207

积分

高级会员

积分
207
发表于 2020-3-4 12:22:27 | 显示全部楼层
MARK 。 直接从此处转。
回复

使用道具 举报

5

主题

166

回帖

181

积分

初级会员

积分
181
发表于 2020-3-4 17:23:16 | 显示全部楼层
ucos-iii和rtx哪个更好一点呢
回复

使用道具 举报

5

主题

166

回帖

181

积分

初级会员

积分
181
发表于 2020-3-4 17:29:49 | 显示全部楼层
RTX和ucos-iii哪个更好呢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106997
QQ
 楼主| 发表于 2020-3-5 02:45:14 | 显示全部楼层
yuanzhongda 发表于 2020-3-4 17:23
ucos-iii和rtx哪个更好一点呢

RTX强的地方是零中断延迟,任务切换等速度快。
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2020-8-24 17:06:50 | 显示全部楼层
楼主好,V7-uCOS-III动态时钟实现(含MDK的AC5和AC6以及IAR).rar (3.10MB) 下载链接失效了,能否补一下啊?谢谢!
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2020-8-24 17:07:39 | 显示全部楼层
楼主好,V7-uCOS-III动态时钟实现(含MDK的AC5和AC6以及IAR).rar (3.10MB)的下载链接失效了,能否补一下啊?谢谢!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106997
QQ
 楼主| 发表于 2020-8-25 08:53:07 | 显示全部楼层
tsmephisto 发表于 2020-8-24 17:06
楼主好,V7-uCOS-III动态时钟实现(含MDK的AC5和AC6以及IAR).rar (3.10MB) 下载链接失效了,能否补一下啊 ...

更新上了。
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2020-12-7 21:03:01 | 显示全部楼层
学习学习,加油
回复

使用道具 举报

76

主题

237

回帖

465

积分

高级会员

积分
465
发表于 2021-2-6 13:53:33 | 显示全部楼层
这个程序里有个文件bsp_os.c里面有个地方没看明白。
  1. void  
  2. BSP_OS_TickInit (void)
  3. {
  4. #if (OS_CFG_DYN_TICK_EN != DEF_ENABLED)
  5.     CPU_INT32U  cpu_freq;
  6.     CPU_SR_ALLOC();


  7.     cpu_freq = BSP_ClkFreqGet(CLK_ID_SYSCLK);                   /* Determine SysTick reference freq.                    */

  8.     CPU_CRITICAL_ENTER();
  9.     OS_CPU_SysTickInitFreq(cpu_freq);                           /* Init uC/OS periodic time src (SysTick).              */
  10.     BSP_OS_TickDisable();                                       /* See Note #2.                                         */
  11.     CPU_CRITICAL_EXIT();
  12. #else
  13.     BSP_OS_DynamicTickInit();                                   /* Initialize dynamic tick.                             */
  14. #endif
  15. }
复制代码
里面有个函数 BSP_OS_TickDisable(); 为什么在不启动动态时钟的时候调用了,而是用了动态时钟分支却没有调用?我看了BSP_OS_DynamicTickInit()这个函数里面确实没有调用,是漏了吗?

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106997
QQ
 楼主| 发表于 2021-2-7 08:00:16 | 显示全部楼层
kokoromi 发表于 2021-2-6 13:53
这个程序里有个文件bsp_os.c里面有个地方没看明白。
里面有个函数 BSP_OS_TickDisable(); 为什么在不启动 ...

有个宏定义是否使能了OS_CFG_DYN_TICK_EN != DEF_ENABLED
回复

使用道具 举报

76

主题

237

回帖

465

积分

高级会员

积分
465
发表于 2021-2-7 08:35:54 | 显示全部楼层
eric2013 发表于 2021-2-7 08:00
有个宏定义是否使能了OS_CFG_DYN_TICK_EN != DEF_ENABLED

使能了啊,不使能也用不了动态时钟啊。
我说的那个函数在第13行,周期时钟分支使用了这个函数,但是动态时钟分支(16行)这个函数里没有调用禁止时钟的函数,为什么动态分支不调用这个呢...
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106997
QQ
 楼主| 发表于 2021-2-7 09:14:48 | 显示全部楼层
kokoromi 发表于 2021-2-7 08:35
使能了啊,不使能也用不了动态时钟啊。
我说的那个函数在第13行,周期时钟分支使用了这个函数,但是动态 ...

加上,加上规范,不加也没啥影响。
回复

使用道具 举报

76

主题

237

回帖

465

积分

高级会员

积分
465
发表于 2021-2-7 09:53:36 | 显示全部楼层
eric2013 发表于 2021-2-7 09:14
加上,加上规范,不加也没啥影响。

好的。我看你的例子和官方的模板都没加这个,以为有什么玄机呢...
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-14 07:57 , Processed in 0.262362 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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