找回密码
 立即注册
楼主: 杨为民

STC单片机 uC/OS-II核心技术(12):关于临界区保护和函数可重入的测试题

[复制链接]
  • 打卡等级:偶尔看看II
  • 打卡总天数:27
  • 最近打卡:2025-07-10 11:53:42

116

主题

1227

回帖

1万

积分

荣誉版主

积分
13101
发表于 2024-3-23 19:27:45 | 显示全部楼层
本帖最后由 杨为民 于 2024-3-23 19:30 编辑
Cos*** 发表于 2024-3-23 19:06
这个方法不仅实现起来非常容易,运行效率也会很高。
既不用关中断,也不用临界区,更不用重写,也不必压栈 ...

不急,好戏要留到最后,所以最后等我把其他方法介绍完,再介绍你的思路后,你再补充
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:27
  • 最近打卡:2025-07-10 11:53:42

116

主题

1227

回帖

1万

积分

荣誉版主

积分
13101
发表于 2024-3-23 20:33:03 | 显示全部楼层
tzz1*** 发表于 2024-3-23 13:16
Keil C51自然是优秀的,好用的,采用固定地址传递参数,调用树,覆盖。对于C51来说,这些都是闪闪发光的优 ...

介绍你的“可嵌套的关闭总中断的临界区保护方法”发出来了,我觉得可以用到解决裸机编程问题中去。

这只代表我的看法,先没让你说,谢谢配合,现在你可以自由谈你的看法了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-07-24 18:45:13

2

主题

189

回帖

1086

积分

金牌会员

积分
1086
发表于 2024-3-23 22:28:18 | 显示全部楼层
tzz1*** 发表于 2024-3-23 13:16
Keil C51自然是优秀的,好用的,采用固定地址传递参数,调用树,覆盖。对于C51来说,这些都是闪闪发光的优 ...

LAOXU的强项在汇编和优化上
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-07-24 18:45:13

2

主题

189

回帖

1086

积分

金牌会员

积分
1086
发表于 2024-3-23 22:32:49 | 显示全部楼层
总看杨老师在给别人出测试题,谁能给杨老师也出出测试题?

点评

本水贴, 没一点技术含量, 讨论了 N天, 得出一个傻子都会的结论, 使用万金油 关中断. 我是没本事给 X老师出测试题. 既然大家讨论的这么热烈, 我不出点有些难度的题, 对不起大家了. 这里的大虾都是 OS专家, 我就  详情 回复 发表于 2024-3-24 03:35
说明:这就是LAOXU考我的测试题,我是考生,不是我考大家的测试题,2楼是我的答案。由于这个问题很典型,我希望大家也来参与而已。 为避免误会,我刚在1楼做了说明  详情 回复 发表于 2024-3-23 23:07
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:27
  • 最近打卡:2025-07-10 11:53:42

116

主题

1227

回帖

1万

积分

荣誉版主

积分
13101
发表于 2024-3-23 23:01:09 | 显示全部楼层
Cos*** 发表于 2024-3-23 19:06
这个方法不仅实现起来非常容易,运行效率也会很高。
既不用关中断,也不用临界区,更不用重写,也不必压栈 ...

好了,谢谢配合,等了那么久,下面由你来展示了。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:27
  • 最近打卡:2025-07-10 11:53:42

116

主题

1227

回帖

1万

积分

荣誉版主

积分
13101
发表于 2024-3-23 23:07:34 | 显示全部楼层
zxcv*** 发表于 2024-3-23 22:32
总看杨老师在给别人出测试题,谁能给杨老师也出出测试题?

说明:这就是LAOXU考我的测试题,我是考生,不是我考大家的测试题,2楼是我的答案。由于这个问题很典型,我希望大家也来参与而已。

为避免误会,我刚在1楼做了说明
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:479
  • 最近打卡:2025-07-16 22:38:28

5

主题

1160

回帖

4605

积分

荣誉版主

积分
4605
发表于 2024-3-23 23:18:36 | 显示全部楼层
我已经看了杨老师在2楼的讲解,原来是临界区嵌套保护和分别关闭各个中断。
果然与我的方法不同。
下面我公布一下我的方法。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:479
  • 最近打卡:2025-07-16 22:38:28

5

主题

1160

回帖

4605

积分

荣誉版主

积分
4605
发表于 2024-3-23 23:26:09 | 显示全部楼层
首先声明:我所说的方法仅适用于本次讨论的题目,如果换一个题目可能根本就不行了,
具有很强的针对性。

strncpy (bb, a1, 8);
替换为:
memcpy (bb, a1, 8);



仅此而已!

点评

@CosyOS 你这个答案可馋死我了,思考了许久未果。 本以为你会以队列+服务的方式来调用不可重入函数。 但仔细想想也不对呀。如果不用OS,服务必然是一个中断。 但是要使别的中断也能调用这个服务,那服务中断就必须是  详情 回复 发表于 2024-3-24 09:07
我随手例了一个不可重入函数的例子, 你改换成其他可重入函数. 当然没事了 这跟我将 strncpy 函数, 改写成可重入函数. 其实是一回事, 对吗?  详情 回复 发表于 2024-3-24 01:47
“memcpy当然是可重入的了”,怎么证明?可否将反汇编的分析分享给大家  详情 回复 发表于 2024-3-23 23:44
你觉得“memcpy”函数是可重入的或者是不可重入的?  详情 回复 发表于 2024-3-23 23:39
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:27
  • 最近打卡:2025-07-10 11:53:42

116

主题

1227

回帖

1万

积分

荣誉版主

积分
13101
发表于 2024-3-23 23:39:37 | 显示全部楼层
本帖最后由 杨为民 于 2024-3-23 23:41 编辑
Cos*** 发表于 2024-3-23 23:26
首先声明:我所说的方法仅适用于本次讨论的题目,如果换一个题目可能根本就不行了,
具有很强的针对性。

你觉得“memcpy”函数是可重入的或者是不可重入的?

“memcpy”函数如果是不可重入的,那就没有解决问题

点评

[attachimg]39431[/attachimg]  详情 回复 发表于 2024-3-23 23:45
memcpy当然是可重入的了  发表于 2024-3-23 23:42
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:447
  • 最近打卡:2025-08-01 00:03:02

0

主题

336

回帖

1736

积分

金牌会员

积分
1736
发表于 2024-3-23 23:42:27 | 显示全部楼层
rtos真的很难学好啊
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-8-1 02:49 , Processed in 0.130497 second(s), 103 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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