找回密码
 立即注册
楼主: Cos***

STC 原生RTOS PK 移植RTOS

[复制链接]
  • TA的每日心情
    奋斗
    昨天 15:34
  • 签到天数: 35 天

    [LV.5]常住居民I

    12

    主题

    185

    回帖

    1121

    积分

    版主

    STC

    积分
    1121
    发表于 2023-5-22 13:37:54 | 显示全部楼层
    电话:0513-55012982、18106296593 (微信同)
    QQ : 1347154513
    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 15:35
  • 签到天数: 155 天

    [LV.7]常住居民III

    5

    主题

    475

    回帖

    2076

    积分

    荣誉版主

    积分
    2076
     楼主| 发表于 2023-5-22 17:30:50 | 显示全部楼层
    FreeRTOS的示例代码,采用的方案是:
    “全局可重入函数”+ “移除未使用”;
    Generate reentrant funcitons + REMOVEUNUSED;

    CosyOS的示例代码,采用的方案是:
    “数据不覆盖” + “移除未使用”;
    NOOVERLAY + REMOVEUNUSED;
    NOOVERLAY 会导致 REMOVEUNUSED 移除的不够彻底,很多未使用的代码段、数据段等未能被移除,所以代码量很大。
    针对这一问题暂时先不解决,待确定解决方案后再调整。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 15:35
  • 签到天数: 155 天

    [LV.7]常住居民III

    5

    主题

    475

    回帖

    2076

    积分

    荣誉版主

    积分
    2076
     楼主| 发表于 2023-5-23 12:35:10 | 显示全部楼层
    现已证明,“移除未使用”的前提是“数据覆盖”
    只要加入了控制命令:“NOOVERLAY”,那么,“REMOVEUNUSED” 命令将失效。
    052301.png

    通过测试也证明了这一点。


    解决方案:
    1、使用控制命令:“NOOVERLAY”,而后用户自己手动删除未使用的C文件或库函数;
    2、生成全局可重入函数 + “REMOVEUNUSED” 命令。


    CosyOS在下一版中,将同时支持上述两个方案,由用户自己选择。


    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 12:14
  • 签到天数: 109 天

    [LV.6]常住居民II

    1

    主题

    15

    回帖

    377

    积分

    中级会员

    积分
    377
    发表于 2023-5-26 08:08:51 | 显示全部楼层
    有各平台的DEMO工程学习吗?
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    550

    主题

    9235

    回帖

    1万

    积分

    管理员

    积分
    13946
    发表于 2023-5-26 09:54:29 | 显示全部楼层
    STC32G12K128实验箱有验证通过
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    无聊
    昨天 08:06
  • 签到天数: 133 天

    [LV.7]常住居民III

    17

    主题

    528

    回帖

    1209

    积分

    金牌会员

    积分
    1209
    发表于 2023-5-30 07:40:32 | 显示全部楼层
    不停地学习
    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 15:34
  • 签到天数: 35 天

    [LV.5]常住居民I

    12

    主题

    185

    回帖

    1121

    积分

    版主

    STC

    积分
    1121
    发表于 2023-5-30 08:52:40 | 显示全部楼层
    电话:0513-55012982、18106296593 (微信同)
    QQ : 1347154513
    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-2-26 14:31
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    2

    主题

    23

    回帖

    164

    积分

    注册会员

    积分
    164
    发表于 2023-6-9 19:00:16 | 显示全部楼层
    高手打擂台,正是我们学习的好时机,多谢你们的发贴与分享,希望社区高手们更加活跃。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    4 天前
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    6

    主题

    62

    回帖

    220

    积分

    中级会员

    积分
    220
    发表于 2023-10-17 12:54:42 | 显示全部楼层
    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:05
  • 签到天数: 153 天

    [LV.7]常住居民III

    1

    主题

    96

    回帖

    449

    积分

    中级会员

    积分
    449
    发表于 2023-10-23 23:37:34 | 显示全部楼层
    CosyOS 发表于 2023-5-18 17:14
    是这样的杨老师,
    按照我的理解,一个全局变量只要最终访问数据时能一条汇编完成访问,就不会重入,包括 ...

    关于单字节变量的原子操作问题,我之前的想法和你是一样,后来发现这种想法也是不对的。比如,有一个单字节变量 K,任务1 执行指令 K+=2 ; 任务2 抢先任务1  执行  K+=3 ; 如果有临界保护,结果是 K 数值增加5,是正确的。如果没有临界保护,K的数值有可能就增加2 ,加3的操作被覆盖。

    点评

    你说的问题很好,这其实涉及到两方面的问题,一个是全局变量写访问,一个是全局变量自运算。 1、如果是写访问的话,如果一条汇编指令能够完成写操作,那么它就是原子操作; 2、如果是自运算的话,那么通常只在两种  详情 回复 发表于 2023-10-24 00:36
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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

    GMT+8, 2024-4-30 04:02 , Processed in 0.073746 second(s), 70 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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