杨为民
发表于 2024-3-20 17:53:35
LAOXU 发表于 2024-3-20 17:34
你老跑题啦~~~
咱们现在说 keil C51怎么解决.
我不愿意在这里跟你说,你问你老师去
LAOXU
发表于 2024-3-20 17:53:37
社区闲人 发表于 2024-3-20 17:22
string.h里面的函数,能支持STC8系列的双数据指针就更好了。
这这个我早就改写了, 但没放出来, 因为, 在所有中断中使用到 dptr的必须手工保存 dptr1和 dps.
如使用 os系统, 也必须加保存 dptr1和 dps 才行.
否则会产生不可预测的后果.
你如想用, 我抽空整理一下传上来吧.
_奶咖君_
发表于 2024-3-20 18:02:05
杨为民 发表于 2024-3-20 17:53
我不愿意在这里跟你说,你问你老师去
那就重开一贴,细细讲解么{:4_165:}
LAOXU
发表于 2024-3-20 18:05:27
杨为民 发表于 2024-3-20 17:06
(1)传统51由于构架原因, 并不适用于跑 OS系统(特别是大容量程序)
别抽象地就否定,具体说说是什么“构 ...
同样使用 os系统, 251, m3/m0等, 对新手来说, 出错的 概率要低很多(因为函数的变量传递可通过 sp堆栈传递), 而 51构架的局限性, 内部库函数都是通过 r0-r7(不够用通过 data)传递, 像我上面举的例子, 你老是老司机, 当然不会犯错, 新手就容易犯各种低级错误了.
杨为民
发表于 2024-3-20 18:10:07
_奶咖君_ 发表于 2024-3-20 18:02
那就重开一贴,细细讲解么
等STC8051H出来后再说,会对基于8051架构STC单片机的软件生态有一个全面的解决方案。
_奶咖君_
发表于 2024-3-20 18:14:02
LAOXU 发表于 2024-3-20 18:05
同样使用 os系统, 251, m3/m0等, 对新手来说, 出错的 概率要低很多(因为函数的变量传递可通过 sp堆栈传递 ...
不不 他听不进去这种东西的,
在他眼里这种东西非黑即白,
你容易出错,不太表这个东西不行,,和咱们的思想是不一样的,,就等着这老师出文章就得了
LAOXU
发表于 2024-3-20 18:20:34
杨为民 发表于 2024-3-20 16:39
(1)不错,终于肯用实际例子来说明问题了,不再是“老师言”了。
(2)请你再证明一下“strcat”和“str ...
“strcpy” 是被 keil 公司优化过的, 通过 R0R4R5 和 R1R2R3 传递指针参数, 属可重入性质.
“strcat”不行, 第一指针参数通过 R1R2R3 传递, 第二指针参数通过 DATA 传递, 同样会出现我例子中的问题.
LAOXU
发表于 2024-3-20 18:27:30
_奶咖君_ 发表于 2024-3-20 18:14
不不 他听不进去这种东西的,
在他眼里这种东西非黑即白,
你容易出错,不太表这个东西不行,,和咱们的 ...
正解~~~ {:victory:}
杨为民
发表于 2024-3-22 12:29:16
_奶咖君_ 发表于 2024-3-20 18:14
不不 他听不进去这种东西的,
在他眼里这种东西非黑即白,
你容易出错,不太表这个东西不行,,和咱们的 ...
不用等了,你也可以去谈谈你的想法了
《关于临界区保护和函数可重入的测试题,欢迎大家来测试自己学的怎么样》
(https://www.stcaimcu.com/forum.php?mod=viewthread&tid=7384&extra=page%3D1)
杨为民
发表于 2024-3-22 12:32:28
LAOXU 发表于 2024-3-20 17:34
你老跑题啦~~~
咱们现在说 keil C51怎么解决.
看来你问你老师也没有得到解决方法,那就去看看大家给你支的招吧。
《关于临界区保护和函数可重入的测试题,欢迎大家来测试自己学的怎么样》
(https://www.stcaimcu.com/forum.p ... &extra=page%3D1)