找回密码
 立即注册
楼主: tzz***

UCOSII - STC32G12K128 移植

[复制链接]

该用户从未签到

20

主题

576

回帖

1203

积分

荣誉版主

积分
1203
 楼主| 发表于 2023-9-14 16:17:14 | 显示全部楼层
杨为民 发表于 2023-9-14 15:01
“杨老师, 这是为何呢? ”——你的意思其实是:我为什么盯着你不停地说,口气又不好,而且经常说的还不对 ...

杨老师, 你说会不出现这一暮, 你发的那个"临界区保护嵌套测试程序" 又被发现是一个瓜, , 这个念头在我脑海中一闪而过, 顺带就发出来了, 哈哈, 开玩笑了哈, 回头我去看看
回复 支持 反对 送花

使用道具 举报

该用户从未签到

11

主题

331

回帖

886

积分

荣誉版主

积分
886
发表于 2023-9-14 17:48:22 | 显示全部楼层
本帖最后由 熊仔 于 2023-9-14 18:00 编辑

这个临界区嵌切换任务的例子,如果STC改硬件,搞一个可以屏蔽优先级的中断的寄存器。就是pendSV中断可以执行,其他中断不能执行。这样就好解决。

我当初也说移植到STM32的ucos例子也不能运行这个例子,杨老师说是移植者水平问题。其实ARM contex确实可以有办法运行,可以通过basepri寄存器屏蔽对应的优先级。
但是一般不会去这么弄。这个basepri寄存器的使用,freeRTOS移植到STM32的版本有用到。一般是设定高于这个优先级的不受系统管理。类似我在STC8 uCOS2给的中断不能嵌套例子一样。紧急事件不受系统管理。


当然迫不得已也是可以有办法的,检测到处于嵌套中,又需要切换任务,单独调用切换函数,需要另外写一个。
感觉没必要折腾。






回复 支持 反对 送花

使用道具 举报

该用户从未签到

551

主题

9574

回帖

1万

积分

管理员

积分
14053
发表于 2023-9-14 18:16:31 | 显示全部楼层
我请教个其他问题:
我们STC8H8K64U/STC32G12K128的【定时器0的模式3】,
是不可屏蔽的16位自动重装载定时器,请问哪些场合可以发挥作用 ?

不可屏蔽的定时器

1,打开后,不能被关闭;
2,是最高优先级,比其他普通中断的优先级高

点评

在RTOS/DOS中应该是必须的,只是目前我们还在基础研究普及阶段,没有上升到高端应用产品阶段: (1)用于RTOS的定时器。最近在讨论的关闭中断的临界区保护和中断嵌套保护,一旦停了中断,那些软件定时器就漏计数了  详情 回复 发表于 2023-9-14 21:41
回复 支持 反对 送花

使用道具 举报

该用户从未签到

20

主题

576

回帖

1203

积分

荣誉版主

积分
1203
 楼主| 发表于 2023-9-14 18:51:22 | 显示全部楼层
神农鼎 发表于 2023-9-14 18:16
我请教个其他问题:
我们STC8H8K64U/STC32G12K128的【定时器0的模式3】,
是不可屏蔽的16位自动重装载定时 ...

记得手册好像说可以做时钟滴答信号, 但又貌似作时钟滴答信号不用最高优先级吧, 没有深研, 望正解
回复 支持 反对 送花

使用道具 举报

该用户从未签到

20

主题

576

回帖

1203

积分

荣誉版主

积分
1203
 楼主| 发表于 2023-9-14 19:46:08 来自手机 | 显示全部楼层
熊仔 发表于 2023-9-14 17:48
这个临界区嵌切换任务的例子,如果STC改硬件,搞一个可以屏蔽优先级的中断的寄存器。就是pendSV中断可以执 ...

熊仔,你在说什么,难以理解。PendSV一般是设为最低级优先级啊。
刚才看到神农的提问,我还奇怪了,现在明白,估计八成是来问你的,你去回复吧

点评

就是需要厂家能做一个能改优先级的。并且可以在关闭中断的时候能响应自身中断的。 RTOS一般是最低优先级。 定时器0模式3不适合。  详情 回复 发表于 2023-9-14 20:24
回复 支持 反对 送花

使用道具 举报

该用户从未签到

20

主题

576

回帖

1203

积分

荣誉版主

积分
1203
 楼主| 发表于 2023-9-14 19:53:35 来自手机 | 显示全部楼层
熊仔 发表于 2023-9-14 17:48
这个临界区嵌切换任务的例子,如果STC改硬件,搞一个可以屏蔽优先级的中断的寄存器。就是pendSV中断可以执 ...

另外是想不被中断直接临界段就可以了,高优先级中断用作切换不符合逻辑,再者UCOS本来就有一个中断嵌套计数器,本身就不会发生任务嵌套切换,这些都是你们自己臆想出来的。其实你不用这么费心的,别人都已经想好了
回复 支持 反对 送花

使用道具 举报

该用户从未签到

11

主题

331

回帖

886

积分

荣誉版主

积分
886
发表于 2023-9-14 20:24:50 | 显示全部楼层
tzz1983 发表于 2023-9-14 19:46
熊仔,你在说什么,难以理解。PendSV一般是设为最低级优先级啊。
刚才看到神农的提问,我还奇怪了,现在 ...

就是需要厂家能做一个能改优先级的。并且可以在关闭中断的时候能响应自身中断的。
RTOS一般是最低优先级。
定时器0模式3不适合。
回复 支持 反对 送花

使用道具 举报

该用户从未签到

20

主题

576

回帖

1203

积分

荣誉版主

积分
1203
 楼主| 发表于 2023-9-14 20:32:34 | 显示全部楼层
你说的是想要关闭部分优先级吧, 这个51内核应该不会去做, 关键是牵一发而动全身, 硬件需要改动太多了. 在现有基础上去实现你要的功能. 尽量不提先决条件
回复 支持 反对 送花

使用道具 举报

该用户从未签到

11

主题

331

回帖

886

积分

荣誉版主

积分
886
发表于 2023-9-14 20:47:27 | 显示全部楼层
,这些都是空谈。
回复 支持 反对 送花

使用道具 举报

该用户从未签到

63

主题

704

回帖

1万

积分

荣誉版主

积分
10906
发表于 2023-9-14 21:15:19 | 显示全部楼层
本帖最后由 杨为民 于 2023-9-14 21:44 编辑
tzz1983 发表于 2023-9-14 16:11
没时间了, 我有工作任务了, 以前再聊吧

关于你说的几点, 我回应一下:

.STC32G12K128之前有人发过UCOS的版本吗, 我为什么看不到呢, 早知道有现成的, 两天的时间我也不想去浪费的, 哈哈

晚了,从此以后你得为你的荣誉战斗到底了
回复 支持 反对 送花

使用道具 举报

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2024-5-22 16:18 , Processed in 0.070983 second(s), 64 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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