找回密码
 立即注册
查看: 4422|回复: 22

关于STC函数库的建议

[复制链接]
  • TA的每日心情
    开心
    2024-2-3 11:23
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    2

    主题

    4

    回帖

    28

    积分

    新手上路

    积分
    28
    发表于 2022-12-13 11:07:58 | 显示全部楼层 |阅读模式

    我下面提出的问题会有些举例,并不是说问题只是我举的例子,这些例子只是有代表性的一些。

    1是要做版本管理,我拿stc8h的库举例,现在还是20220509的版本,但是问题却很多,功能也不全,最大的问题就是版本有问题!比如stc8的库,如图:库函数文件夹和独立例程文件夹的版本是不同的,这会为开发带来误解。而且这两个版本的库内容也是不同的!比如独立库就没有宏定义配置IO的方式!!!!!而综合例程的库就有。我认为结构体配置io在51上大可不必,虽然可以有,但是必须有简洁的函数化配置方式。

    关于STC函数库的建议-1.png 关于STC函数库的建议-2.png
    版本管理怎么做?建议STC使用github、gitee,整版本管理,而不是官网一个压缩包,(压缩包依然可以保留但是一定要搞版本管理),允许用户贡献代码(可以不),提issue,而不是只能找技术,销售或者在论坛在群里问。这样才能让开发者开发起来更容易。
    2.库的管理要做好,建议大量增加ifdef等语句,帮用户做好很多工作(不重复造轮子),比如让用户define自己的芯片型号,由ifdef来判断使用STC8G的库还是STC8H的库,让用户define芯片版本,固件版本,if判断该芯片版本是否有这个功能,是否存在问题,在编译时就报错,防止用户因为版本不同在量产时出问题
    3.将timer interrupt等需要配置的函数、定义从库文件中拿出来,让用户非必要不改库,减少问题出现
    4.记得stc以前推出过cubx,但似乎已经没了,stc自己也是有考虑的吧!!我认为还是可以有,直接省去用户下载库配置工程的时间。有人认为51就应该用寄存器开发,前期有人认为stm32也应该用寄存器,这样才更根本,但如今stm32的库开发已经相当方便。是我认为,stc现在的51,性能已经比较强悍,不应该把工程师的时间浪费在查寄存器上,应大力推广库开发,提高竞争力。毕竟以更短的时间落地产品,何乐而不为?
    5.官方的库一定要全,比如chipID的功能,库就没有,例程也太少,远少于试验箱的例程。
    5.库显然还很多有问题,比如,在程序开始的时候先将P_SW2第一位写1(P_SW2 |= 0x80;  //使能访问XFR)不知道初始化啥外设的时候,P_SW2寄存器第一位(XFR)会重新变成0,而无法访问CHIPID;
    听别人说还有别的问题但是记不起来了。官方也要积极更新库,以后stc出ARM核的,用寄存器开发就太累了,所以建议尽早落实库的版本管理等。




    回复 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    2931

    回帖

    6607

    积分

    超级版主

    积分
    6607
    发表于 2022-12-13 11:40:37 | 显示全部楼层
    我们会逐渐完善库函数的。您所提的要求,是针对高阶用户的,我们可以考虑。实际上,好多用户都没用过ARM,所以用库就显吃力。
    STC最早于2013年提供STC15系列的库函数,按STM32的风格写的。后来好多用户反映看不懂。
  • TA的每日心情
    奋斗
    2023-12-6 15:33
  • 签到天数: 2 天

    [LV.1]初来乍到

    20

    主题

    98

    回帖

    972

    积分

    荣誉版主

    积分
    972
    发表于 2022-12-16 11:07:18 | 显示全部楼层
    我完善了一下关于io中断还有外部中断的库上传到论坛,结果都没人吱声:sleepy:

    该用户从未签到

    551

    主题

    9290

    回帖

    1万

    积分

    管理员

    积分
    14056
    发表于 2022-12-16 12:34:01 | 显示全部楼层
    感谢,持续改善,持续进步,一箭双雕之USB转双串口,6M bps 请笑纳
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 90 天

    [LV.6]常住居民II

    38

    主题

    986

    回帖

    6773

    积分

    荣誉版主

    冲哥视频教程和各种开源资料QQ交流群884047237,可群

    积分
    6773
    QQ
    发表于 2022-12-16 13:17:33 | 显示全部楼层
    chen 发表于 2022-12-16 11:07
    我完善了一下关于io中断还有外部中断的库上传到论坛,结果都没人吱声 ...

    因为51真没几个用库的~
  • TA的每日心情
    奋斗
    2023-12-6 15:33
  • 签到天数: 2 天

    [LV.1]初来乍到

    20

    主题

    98

    回帖

    972

    积分

    荣誉版主

    积分
    972
    发表于 2022-12-16 14:49:22 | 显示全部楼层
    电子DIY小家 发表于 2022-12-16 13:17
    因为51真没几个用库的~

    之前我都是自己封装常用外设的初始化代码,官方没有好用的库当然没几个用:lol

    该用户从未签到

    0

    主题

    10

    回帖

    108

    积分

    注册会员

    积分
    108
    发表于 2022-12-16 15:47:41 | 显示全部楼层
    我用官方库整理了一套自己的框架,感觉越来越喜欢了,就是后期发现官方库实在有些地方不好:
    其中一个CPU的头文件里包含了好多额外的定义,而且不同的官方例程头文件居然不通用,害得我重新改来改去;
    再一个官方的库函数版本的例程也不统一,比如有的中断函数拿出来了,有的却在驱动库里,有的驱动库结构体定义居然还不同,比如有的库函数中中断使能及优先级是结构体的成员,有的居然有采用的是中断设置函数

    官方不重视库函数的维护也会影响到很多人的使用的,但也别指望刚推出就有大批人去支持和使用

    STM32用的人多,库函数丰富完善好用也是一个重要原因(降低了开发使用门槛)
  • TA的每日心情
    奋斗
    2023-12-6 15:33
  • 签到天数: 2 天

    [LV.1]初来乍到

    20

    主题

    98

    回帖

    972

    积分

    荣誉版主

    积分
    972
    发表于 2022-12-16 17:42:56 | 显示全部楼层
    之前官网里面那个逐飞科技做的库那个风格挺不错的,外设初始化一个函数搞定

    该用户从未签到

    551

    主题

    9290

    回帖

    1万

    积分

    管理员

    积分
    14056
    发表于 2022-12-16 19:37:23 | 显示全部楼层
    1.png

    该用户从未签到

    4

    主题

    11

    回帖

    246

    积分

    中级会员

    积分
    246
    发表于 2022-12-16 20:11:39 | 显示全部楼层
    chen 发表于 2022-12-16 11:07
    我完善了一下关于io中断还有外部中断的库上传到论坛,结果都没人吱声 ...

    悦己达人,进德修业~
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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

    GMT+8, 2024-5-2 15:27 , Processed in 0.087179 second(s), 68 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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