硬汉嵌入式论坛

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

[RTOS] 基于V7开发板的最新版uCOS-III V3.07.03程序模板,含MDK和IAR,支持uC/Probe,与之前版本变化较大

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106739
QQ
发表于 2019-5-4 13:58:06 | 显示全部楼层 |阅读模式
模板下载:
V7-uCOS-III程序模板(含MDK和IAR).rar (2.99MB)

对MDK的AC6也做了支持:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=93592

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后,都被干掉了,不实用。

  1. /*
  2. *********************************************************************************************************
  3. *                                          
  4. *        模块名称 : uCOS-III
  5. *        文件名称 : mian.c
  6. *        版    本 : V1.0
  7. *        说    明 : uCOS-III程序模板
  8. *              实验目的:
  9. *                1. 学习MDK和IAR的uCOS-III程序模板创建。              
  10. *              实验内容:
  11. *                1. 共创建了如下几个任务,通过按下按键K1可以通过串口打印任务堆栈使用情况
  12. *                    ===============================================================
  13. *                     优先级 使用栈 剩余栈 百分比 利用率   任务名
  14. *                      Prio   Used  Free   Per    CPU     Taskname
  15. *                        5    141    371   27%    0.00%   App Task COM
  16. *                        4    157    355   30%    0.01%   App Task UserIF
  17. *                        3    142    370   27%    0.00%   App Msp Pro
  18. *                        2    146    366   28%    0.41%   App Task Start
  19. *                       61     62     66   48%    0.00%   uC/OS-III Timer Task
  20. *                       62     68     32   68%    0.03%   uC/OS-III Stat Task
  21. *                       63     54     10   84%   99.53%   uC/OS-III Idle Task                    
  22. *                    串口软件建议使用SecureCRT(V7光盘里面有此软件)查看打印信息。
  23. *                    App Task Start任务  :启动任务,这里用作BSP驱动包处理。
  24. *                    App Task MspPro任务 :消息处理,这里用作浮点数串口打印。
  25. *                    App Task UserIF任务 :按键消息处理。
  26. *                    App Task COM任务    :浮点数串口打印。
  27. *                2. (1) 凡是用到printf函数的全部通过函数App_Printf实现。
  28. *                   (2) App_Printf函数做了信号量的互斥操作,解决资源共享问题。
  29. *              注意事项:
  30. *                1. 为了支持uC/Probe调试组件:
  31. *                   (1).MDK要勾选option->output -> Debug Infomation选项,选择优化等级0
  32. *                   (2).IAR要选择选择优化等级low,其中如下两个地方比勾选
  33. *                       a. option->C/C++ Compiler->Output选项中勾选Generate debug information。
  34. *                       b. option->linker->Output选项中勾选Include Generate debug information in output。
  35. *                   (3).使能uCOS-III宏定义
  36. *                       #define OS_CFG_DBG_EN             1u
  37. *                       #define OS_CFG_STAT_TASK_EN       1u 同时初始化统计任务
  38. *                              #define CPU_CFG_INT_DIS_MEAS_EN   1u
  39. *                   (4).为了方便调试,参数OS_CFG_APP_HOOKS_EN,OS_CFG_ARG_CHK_EN都使能
  40. *                2. 本实验推荐使用串口软件SecureCRT,要不串口打印效果不整齐。此软件在
  41. *                   V7开发板光盘里面有。
  42. *                3. 务必将编辑器的缩进参数和TAB设置为4来阅读本文件,要不代码显示不整齐。
  43. *
  44. *        修改记录 :
  45. *                版本号   日期         作者            说明
  46. *       V1.0    2019-05-01   Eric2013    1. ST固件库1.3.0版本
  47. *                                        2. BSP驱动包V1.2
  48. *                                        3. uCOS-III版本V3.07.03
  49. *                                        4. uC/CPU版本V1.31.04
  50. *                                        5. uC/LIB版本V1.38.03
  51. *                                       
  52. *        Copyright (C), 2019-2030, 安富莱电子 www.armfly.com
  53. *
  54. *********************************************************************************************************
  55. */
复制代码


uC-Probe
2019-05-04_141001.png




评分

参与人数 1金币 +20 收起 理由
missfox + 20 赞一个!

查看全部评分

回复

使用道具 举报

56

主题

904

回帖

1072

积分

至尊会员

积分
1072
发表于 2019-5-4 15:24:29 | 显示全部楼层
本帖最后由 roguebear 于 2019-5-4 17:55 编辑

非常感谢。 windows下编译了没有问题。    我用visualGDB导入了一下。 用keil的编译器(gcc)。 一堆的错误。。。。  估计硬汉没这个精力搞了。哪位哥们有兴趣可以试试。
用visualstudio学起来还是方便点。可以生成所有函数的关系图。
试了试,搞定了。

1: VisualGDB直接导入工程
2: 选择编译器是ARM, 目前选keil的还是有问题。

3: 把asm文件换成GCC的,扩展名是s的。
  -> 导入后asm文件消失
  -->把GCC下面的s扩展名的加进去。
cpu_a.s
os_cpu_a.s
4. 属性里面    浮点从software改为hardware,否则下面两个函数找不到。原因如下:
#if (defined(__VFP_FP__) && !defined(__SOFTFP__))
    .global  OS_CPU_FP_Reg_Push
    .global  OS_CPU_FP_Reg_Pop
#endif


生成。OK。
1>------------------- Memory utilization report -------------------
1>Used FLASH: 52KB out of 2048KB (2%)
1>Used DTCMRAM: 0 bytes out of 128KB (0%)
1>Used SRAM: 17KB out of 512KB (3%)
1>Used RAM_D2: 0 bytes out of 288KB (0%)
1>Used RAM_D3: 0 bytes out of 64KB (0%)
1>Used ITCMRAM: 0 bytes out of 64KB (0%)
========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========

看到硬汉搞了个os_cpu_isr.asm.  我个人是不赞成对原系统增加或者删减类似的文件。 说不定更好? 还没有来研究。







回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106739
QQ
 楼主| 发表于 2019-5-4 17:22:28 | 显示全部楼层
roguebear 发表于 2019-5-4 15:24
非常感谢。 windows下编译了没有问题。    我用visualGDB导入了一下。 用keil的编译器(gcc)。 一堆的错误 ...

倒腾visualGDB还不如用ES,好用的一匹,GCC终究将被CLANG所取代。

另外,驱动文件随意倒腾,MDK版的就是我该的。之前的那种修改启动文件的方式,必须改了它,太落伍了。

os_cpu_isr.asm为此而生。
回复

使用道具 举报

23

主题

1406

回帖

1475

积分

至尊会员

积分
1475
发表于 2019-5-4 17:23:37 | 显示全部楼层
最新的4.5.2 Probe已经可以下载
回复

使用道具 举报

56

主题

904

回帖

1072

积分

至尊会员

积分
1072
发表于 2019-5-4 17:54:26 | 显示全部楼层
eric2013 发表于 2019-5-4 17:22
倒腾visualGDB还不如用ES,好用的一匹,GCC终究将被CLANG所取代。

另外,驱动文件随意倒腾,MDK版的就 ...

是这样的。 GCC这种烂大街的方式。还有很多linux下开发一天到晚倒腾命令行,自以为是高手的。。。
回复

使用道具 举报

56

主题

904

回帖

1072

积分

至尊会员

积分
1072
发表于 2019-5-4 17:56:31 | 显示全部楼层
eric2013 发表于 2019-5-4 17:22
倒腾visualGDB还不如用ES,好用的一匹,GCC终究将被CLANG所取代。

另外,驱动文件随意倒腾,MDK版的就 ...

主要是想试试宇宙第一IDE,以后搞人工智能逃避不过去的。。。
回复

使用道具 举报

56

主题

904

回帖

1072

积分

至尊会员

积分
1072
发表于 2019-5-4 18:10:00 | 显示全部楼层
本帖最后由 roguebear 于 2019-5-4 18:13 编辑
eric2013 发表于 2019-5-4 17:22
倒腾visualGDB还不如用ES,好用的一匹,GCC终究将被CLANG所取代。

另外,驱动文件随意倒腾,MDK版的就 ...

实验了ES导入这个工程,一切OK。ES速度超快啊。摸索一下。估计查看代码功能应该赶不上vs si等。不完美。我还是希望KEIL能弄一个好点的IDE,全转vs或者elispe也行啊。
回复

使用道具 举报

56

主题

904

回帖

1072

积分

至尊会员

积分
1072
发表于 2019-5-4 18:27:09 | 显示全部楼层
eric2013 发表于 2019-5-4 17:22
倒腾visualGDB还不如用ES,好用的一匹,GCC终究将被CLANG所取代。

另外,驱动文件随意倒腾,MDK版的就 ...

isr.asm这个文件。如果用cubemx的话,每次会生成在_it.c文件里面。又要进行设置。。。
回复

使用道具 举报

610

主题

3050

回帖

4900

积分

至尊会员

积分
4900
发表于 2019-5-4 18:34:08 | 显示全部楼层
牛逼呀,
回复

使用道具 举报

36

主题

2039

回帖

2147

积分

至尊会员

积分
2147
发表于 2019-5-4 18:53:08 | 显示全部楼层
roguebear 发表于 2019-5-4 17:56
主要是想试试宇宙第一IDE,以后搞人工智能逃避不过去的。。。

摆事实,讲道理,ES做嵌入式开发,吊打他们。有机会可以体验下无与伦比的调试功能。虽然我用IAR多
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

36

主题

2039

回帖

2147

积分

至尊会员

积分
2147
发表于 2019-5-4 18:59:09 | 显示全部楼层
roguebear 发表于 2019-5-4 18:27
isr.asm这个文件。如果用cubemx的话,每次会生成在_it.c文件里面。又要进行设置。。。

cubemx没这么low吧,应该可以设置是否生成中断。
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

4

主题

129

回帖

146

积分

初级会员

积分
146
发表于 2019-5-6 13:42:02 | 显示全部楼层
硬汉,有uCOS-Ⅲ基于MDK AC6的版本吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106739
QQ
 楼主| 发表于 2019-5-6 15:00:51 | 显示全部楼层
回复

使用道具 举报

610

主题

3050

回帖

4900

积分

至尊会员

积分
4900
发表于 2019-5-7 11:52:48 | 显示全部楼层
貌似 ucos-iii v3.07.03 版本的很久都没有升级了啊,是不是估计这个 ucos-iii 就这样了啊 ?
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2019-9-10 12:42:34 | 显示全部楼层
这里的ucOS III 可以一直到 TI 的DSP上吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106739
QQ
 楼主| 发表于 2019-9-10 15:13:47 | 显示全部楼层
ShundaElectric 发表于 2019-9-10 12:42
这里的ucOS III 可以一直到 TI 的DSP上吗?

可以的,Micrium上面也有对应的DSP移植代码
回复

使用道具 举报

15

主题

117

回帖

162

积分

初级会员

积分
162
发表于 2019-11-26 20:09:43 | 显示全部楼层
这版本的ucosIII有F103的模板吗?我移植了,不能运行,卡在OSStatTaskCPUUsageInit(&err); 这里了,最后追到OSSched ()函数的 CPU_INT_EN();不知道怎么解决。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106739
QQ
 楼主| 发表于 2019-11-26 22:55:51 | 显示全部楼层
lhaoyue 发表于 2019-11-26 20:09
这版本的ucosIII有F103的模板吗?我移植了,不能运行,卡在OSStatTaskCPUUsageInit(&err); 这里了,最后追 ...

没有做103的移植,后面有时间了我做个吧。
回复

使用道具 举报

15

主题

117

回帖

162

积分

初级会员

积分
162
发表于 2019-11-27 08:36:59 | 显示全部楼层
eric2013 发表于 2019-11-26 22:55
没有做103的移植,后面有时间了我做个吧。

多谢硬汉!
回复

使用道具 举报

15

主题

117

回帖

162

积分

初级会员

积分
162
发表于 2019-11-27 08:39:33 | 显示全部楼层
eric2013 发表于 2019-11-26 22:55
没有做103的移植,后面有时间了我做个吧。

硬汉,能提供下思路吗?我自己试试看,谢谢!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106739
QQ
 楼主| 发表于 2019-11-27 08:42:23 | 显示全部楼层
lhaoyue 发表于 2019-11-27 08:39
硬汉,能提供下思路吗?我自己试试看,谢谢!

直接复制粘贴移植就行。提示错误的地方轻微改动下即可,然后参考我移植的这个。
回复

使用道具 举报

15

主题

117

回帖

162

积分

初级会员

积分
162
发表于 2019-11-27 09:06:37 | 显示全部楼层
eric2013 发表于 2019-11-27 08:42
直接复制粘贴移植就行。提示错误的地方轻微改动下即可,然后参考我移植的这个。

谢谢,我用的标准库,需要改bsp_os.c是吧
回复

使用道具 举报

15

主题

117

回帖

162

积分

初级会员

积分
162
发表于 2019-12-4 15:56:21 | 显示全部楼层
问下硬汉,uCOS-III V3.07.03 中断管理分为Kernel Aware和Non-Kernel Aware,stm32f103是不是初始化的时候要 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); 然后初始化中断优先级4以上就需要按照以下的方式写,0~3可以自己写,而且不会被临界区屏蔽?
  1. static  void  KA_ISR_Handler (void)
  2.                        {
  3.                           CPU_SR_ALLOC();

  4.                            CPU_CRITICAL_ENTER();
  5.                            OSIntEnter();                            Tell OS we are starting an ISR
  6.                           CPU_CRITICAL_EXIT();

  7.                            --------------- HANDLER YOUR ISR HERE ---------------

  8.                            OSIntExit();                             Tell OS we are leaving the ISR
  9.                       }
复制代码
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106739
QQ
 楼主| 发表于 2019-12-4 19:53:15 | 显示全部楼层
lhaoyue 发表于 2019-12-4 15:56
问下硬汉,uCOS-III V3.07.03 中断管理分为Kernel Aware和Non-Kernel Aware,stm32f103是不是初始化的时候 ...

此贴,有说明:

特别注意,现在的新版uCOS-II和III的开关中断也开始采用BASEPRI寄存器设置
http://www.armbbs.cn/forum.php?m ... 3572&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

15

主题

117

回帖

162

积分

初级会员

积分
162
发表于 2019-12-5 08:20:49 | 显示全部楼层
eric2013 发表于 2019-12-4 19:53
此贴,有说明:

特别注意,现在的新版uCOS-II和III的开关中断也开始采用BASEPRI寄存器设置

谢谢硬汉,看来还是freertos好用。哈哈
回复

使用道具 举报

73

主题

1193

回帖

1412

积分

至尊会员

积分
1412
发表于 2019-12-13 09:08:39
missfox 发表于 2019-5-4 17:23
最新的4.5.2 Probe已经可以下载

请问哪里下载

6

主题

636

回帖

654

积分

金牌会员

积分
654
QQ
发表于 2019-12-14 14:36:34 | 显示全部楼层
uc/probe运行一会提示:uc/probe connection watchdog timed out
谁知道是什么原因?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106739
QQ
 楼主| 发表于 2019-12-14 15:29:50 | 显示全部楼层
yklstudent 发表于 2019-12-14 14:36
uc/probe运行一会提示:uc/probe connection watchdog timed out
谁知道是什么原因?

是不是教育版,教育版运行一会 会自动断开。
回复

使用道具 举报

6

主题

636

回帖

654

积分

金牌会员

积分
654
QQ
发表于 2019-12-14 20:48:32 | 显示全部楼层
eric2013 发表于 2019-12-14 15:29
是不是教育版,教育版运行一会 会自动断开。

是professional edition ver 4.6.2.0专业版,使用论坛网页上传的破解文件,
不知道为什么运行几秒钟会出现这个问题,一脸懵逼
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106739
QQ
 楼主| 发表于 2019-12-14 21:04:29 | 显示全部楼层
yklstudent 发表于 2019-12-14 20:48
是professional edition ver 4.6.2.0专业版,使用论坛网页上传的破解文件,
不知道为什么运行几秒钟会出 ...

你没有使用看门狗吧,没有的话,应该没问题的。

不过那个教育版的确是运行一段时间会断开的。
回复

使用道具 举报

56

主题

904

回帖

1072

积分

至尊会员

积分
1072
发表于 2019-12-18 11:35:06 | 显示全部楼层
keil 项目不能有子文件夹,严重影响了项目的管理。请硬汉通知开发部门搞定它。搞不定整个team没有年终奖
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106739
QQ
 楼主| 发表于 2019-12-18 11:49:39 | 显示全部楼层
roguebear 发表于 2019-12-18 11:35
keil 项目不能有子文件夹,严重影响了项目的管理。请硬汉通知开发部门搞定它。搞不定整个team没有年终奖

我从来不用子文件夹,虽然IAR支持
回复

使用道具 举报

7

主题

190

回帖

216

积分

高级会员

积分
216
发表于 2020-4-2 19:04:16 | 显示全部楼层
roguebear 发表于 2019-5-4 15:24
非常感谢。 windows下编译了没有问题。    我用visualGDB导入了一下。 用keil的编译器(gcc)。 一堆的错误 ...

楼主  我freertos的工程在visualgdb下编译成功了  但是下载到板子上以后只有点那个调试模式才能运行  如果只下载的话不运行  你有遇到吗  知道是为啥不
回复

使用道具 举报

6

主题

76

回帖

94

积分

初级会员

积分
94
发表于 2020-5-7 21:34:44 | 显示全部楼层
eric2013 发表于 2019-5-4 17:22
倒腾visualGDB还不如用ES,好用的一匹,GCC终究将被CLANG所取代。

另外,驱动文件随意倒腾,MDK版的就 ...

我想问您的ES指定是“Embedded Studio”吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106739
QQ
 楼主| 发表于 2020-5-8 11:18:04 | 显示全部楼层
buxinshan 发表于 2020-5-7 21:34
我想问您的ES指定是“Embedded Studio”吗?

对,就是Embedded Studio
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 13:14 , Processed in 0.481409 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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