LAOXU
发表于 2024-3-22 15:48:19
杨为民 发表于 2024-3-22 12:32
看来你问你老师也没有得到解决方法,那就去看看大家给你支的招吧。
《关于临界区保护和函数可重入的测试 ...
对你老来说, 什么关中断, 上锁 都不在话下, 根本没问题.
我想表达的是对新手, 易犯错.
51OS 和 其他 CPU 的 OS 相比.
要好多地方要特别注意, 需增加特有的命令加以保护, 其他 CPU 不用 !
1. 不可重入特征(包括好多内部库函数)
2. 通过 内部 RAM传递参数
3. 指针函数要指定.
这些都是 51构架特有的缺点(短板)
LAOXU
发表于 2024-3-22 15:55:00
不是特别老练的程序员, 谁知道哪个函数是不重入的 ?
相比其他 CPU 而言, 51用 OS, 所花费的时间成本比较高. 产生 BUG的 概率也高.
想表达的意思就是, 如用 OS, 尽量优先选 251系 (STC32) , 不要选标准 51系 ,251系用 OS, 系统稳定 不易犯错.
LAOXU
发表于 2024-3-22 16:17:47
不是特别老练的程序员, 谁知道 51哪个函数是可不重入的 ? 连我都要经常看 51库函数 反汇编,
确定是否可重入, 是否占用 RAM作为内部临时(局部)变量.
相比其他 CPU 而言, 51用 OS, 所花费的时间成本比较高. 产生 BUG的概率也大.
我想表达的意思就是, 如做产品需用到 OS, 尽量优先选 251系 (STC32) , 不要选标准 51系,
251系用 OS, 系统稳定 不易犯错.
LAOXU
发表于 2024-3-22 16:28:44
像 你老搞的 扩展 X51指令集, 后 2个扩展寄存器 放在 RAM(10H-17H)中, 不但 OS系统要保护 RAM(10H-17H) , 每个中断中使用, 都要特意保护 RAM(10H-17H) .
难道不显麻烦吗?新手不是更容易犯错吗?
放在 受 编译器 保护的 寄存器中 多好啊, 省去一大堆麻烦, 新手也不需要了解这个那个注意事项, 更不容易犯错.