Keil C251 编译器, 也有 ?C_XBP, 不过我没有尝试过.难道你用251也搬栈?
我觉得即便是只有 2K edata ...
最近忙啥呢?要不要早日加入到 CosyOS 的开发建设中来? CosyOS 发表于 2024-7-26 23:49
最近忙啥呢?要不要早日加入到 CosyOS 的开发建设中来?
嗯,有空时我再关注一下.我一直比较忙,偶尔玩弄一下OS,只是因为自己需要用到,并不专职研究。 好长时间没有动静了,是不是在憋大招? Yang.Lian 发表于 2024-8-3 15:33
好长时间没有动静了,是不是在憋大招?
不是的,这回没有大招了,
正在休息中,并考虑扩充一些组件,
然而内核也仍然有些问题需要解决,
只能慢慢来了。。。
如果你愿意,可以考虑加入开发团队,为 CosyOS 添砖加瓦!!! 本帖最后由 sdwys 于 2024-8-4 16:51 编辑
mcucfg_80251.h syscfg.hputchar.c 这些都是GB2312编码,还有STC的库也是GB2312编码。如果有时间都转换一下,整个系统都转成一种编码格式。最近有时间就看看源码,作者有时间就多加点中文注释吧,太难读了,特别是一些宏定义,你把注释加全,也能提高一下可读性。代码作者一看就懂,但学习使用者却要花好长时间去一点点搞懂,看不懂根本不敢用于实际的项目工程,降低学习门槛是能普及推广的捷径。在缺少详细文档的情况下,注释就是学习者的文档。
这个包全部转换成了utf-8编码。
1
本帖最后由 Yang.Lian 于 2024-8-5 13:44 编辑CosyOS 发表于 2024-8-3 19:49
不是的,这回没有大招了,
正在休息中,并考虑扩充一些组件,
然而内核也仍然有些问题需要解决,
我有些想法,
1. 有没有考虑过使用 M4 宏来解决C语言本身宏的一些缺陷和限制?
2. 说实话,我用了这么久的 Keil 都不知道它可以空通过注释来生成配置文件,看上去很美,但是还是不好用,
比如我想把 PendSV 改一下,没有内置方案,单也不可能把方案都写进配置文件,不够写;
再比如,定时查询/中断的钩子,写的比实际情况多的话,编译器不能报警,但运行会卡死,很莫名其妙;
所以,有没有考虑设计一个GUI来方便配置和除错?
sdwys 发表于 2024-8-4 11:27
mcucfg_80251.h syscfg.hputchar.c 这些都是GB2312编码,还有STC的库也是GB2312编码。如果有时间都转换 ...
首先,感谢你做出的调整。
STC库,应由STC官方负责维护调整,所以我未做出调整。
mcucfg头文件,在gitee上下载后,为utf-8编码;但由于要启用图形用户界面,所以编码必须调整为ANSI,否则图形用户界面时乱码。
最后,感谢你的建议,未来我会陆续增加丰富的注释。
Yang.Lian 发表于 2024-8-5 11:55
我有些想法,
1. 有没有考虑过使用 M4 宏来解决C语言本身宏的一些缺陷和限制?
2. 说实话,我用了这么久的 ...
你说的M4宏,我并不熟悉,而C语言宏虽有缺陷,但能够熟练掌握,可谓是精通,可解决大部分问题,虽然有时有些不便。
Keil自带的GUI是有缺陷的,典型的是不能写代码。设计一个专业的GUI,这个想法是很好的,以前也曾想过,待到时机成熟时。
关于 定时中断/查询,数量不匹配时的运行异常问题,我抽时间专门做一下研究,争取解决。
CosyOS 发表于 2024-8-8 20:12
你说的M4宏,我并不熟悉,而C语言宏虽有缺陷,但能够熟练掌握,可谓是精通,可解决大部分问题,虽然有时 ...
感觉已经超出了系统本身的范围了, CosyOS 发表于 2024-8-8 20:12
你说的M4宏,我并不熟悉,而C语言宏虽有缺陷,但能够熟练掌握,可谓是精通,可解决大部分问题,虽然有时 ...
我想流程大概是
1. GUI选择配置 ---> 2. 通过M4生成配置文件 config.h ---> 3. config.h 和 其他代码生成工程 ---> 编译
这样就可以通过 M4的宏,直接将 PendSV 展开成代码到 config.h 中,
也可以将 定时中断、查询的函数生成常量到 config.h 甚至检查有没有多一个出来?
如果用C语言的宏,GUI 不好直接控制 C 编译器,M4 可以很容易被 GUI 控制,不依赖编译器,直接输出.c 或者.h 文件,稳定可靠,灵活多变,代码也可以version control
接下来,如果CosyOS要添加更多的组件,似乎 hardware abstract layer 也需要比较好的处理。通过 M4 来将 51、hal、libopencm 等硬件操作的抽象层,展开成源代码.c
M4 也可以将 keil c 的编译器支持的 sfr 和 SDCC 支持的 __sfr 做一个更好的适配,适应不同的编译器
release 的时候,可以直接发布c语言版本,也可以发布 源源文件 用户自己通过 m4 转换成 c 语言的版本
keil 的 51 编译器很多年不升级了,甚至都不支持c99 ,静态断言 static_assert 也不支持,inline 也不支持,有些时候真的指望不上编译器,所以 类似 m4 的工具才会出来,来方便大家编程,减少出错,提高效率
如果你开源的初衷,是大家一起干,有些你不熟悉我熟悉,或许更多的方面是你精通我业余,但是,众人拾柴,可以有更多的可能性
推心置腹之言