- 打卡等级:偶尔看看I
- 打卡总天数:16
- 最近打卡:2025-04-30 08:41:32
荣誉版主
- 积分
- 12882
|
发表于 2024-3-23 15:35:11
|
显示全部楼层
(1)随着STC8051H和全新架构的 32位 8051@STC32G96K256这两种新STC单片机的推出,改写相当部分的C51和C251编译器的库函数是肯定的了,而且已经在进行中了。
(2)C51和C251当初在框架设计时就已经考虑对芯片厂商增加硬件加速器的支持,C51和C251的标准库是最后连接的。意思就是你不用修改Keil的原装库,你只要写一个相同库函数名的自己的函数,Keil就优先连接用户的这个函数,而忽略掉Keil本身原装的库函数。
顺带点评一下LAOXU的修改C51的STRING库的方法,他老兄居然连这一点都不知道,居然是在STRING.H头文件里
/* extern char *strcat (char *s1, char *s2); */
#define strcat(dst, src) strcat1a ((long)src, dst)
extern char *strcat1a (long dst, char *src);
用“#define strcat(dst, src)”引导编译程序连接自己写得库函数:LAOXU这种方法我觉得很不专业(这个言词不激烈了吧),好歹先了解下C51/C251的规则呀。
(3)其实在推出STC32G/STC32F后,STC官方已经按上面(2)的专业的方法给出了修改后的C251库函数了(包括USB),而且也放到STC-SIP中了。所以大家只要在自己的项目中加入STC的官方库,自然就已经将C251的库函数修改了。
(4)对于新的STC8系列,使用了DPU32的新的芯片推出后,自然对应的C51的官方的修改了的标准函数库就会推出来,现在LAOXU瞎操心,我形容为是“产前焦虑症”,不为过吧。
(5)LAOXU的孜孜不倦在库函数领域,包括64位浮点数基础算法方面的研究精神当然是值得称赞的。但是把一个风车夸张成魔鬼,冲上去大战一番,去解救心上人的实际行动最好还是免了吧,这样会吓到别人的。
比如这一次,先是以老师的名义树了个“魔鬼”:使用了“全称否定”:老师言: "C51的LIB都是不可重入."
然后号称:传统51由于构架原因, 并不适用于跑 OS系统(特别是大容量程序), keil 在 51上推 OS, 问题多多, 后来 251上就直接取消 OS 了.
然后吓唬:记得十年前, 网上经常有网友发贴求教 51 OS系统运行不稳定易死机. 后来M3/M0流行了, 我想这帮子人都转 M3/M0 去了
然后冲上去自己编了STRING库,
然后觉得只有他的这个方法能“拯救”C51,进而拯救STC8051单片机。
然后发出挑战:除了他谁能解C51库函数不能重入的问题
然后再提出一个除了改写库函数自己都解决不了的问题
|
|