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

最新版本uC-OS2-2.93.01已移植到STC32G上,请帮忙查错

[复制链接]

该用户从未签到

11

主题

331

回帖

886

积分

荣誉版主

积分
886
 楼主| 发表于 2023-9-18 13:05:10 来自手机 | 显示全部楼层
CosyOS 发表于 2023-9-18 12:16
CosyOS允许用户自由选择一个未使用的硬件中断,来做为软中断使用。



最好选择能自动清零的中断。当然手动也行,多执行一条清零语句。

你的os代码太庞大了。之前看了一下,没理清,没坚持下去。以后有时间再拜读一下。

点评

是的,能硬件自动清0的更好,然后中断清零的定义为空即可。  详情 回复 发表于 2023-9-18 13:33
回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    奋斗
    昨天 03:33
  • 签到天数: 200 天

    [LV.7]常住居民III

    5

    主题

    645

    回帖

    2645

    积分

    荣誉版主

    积分
    2645
    发表于 2023-9-18 13:33:18 | 显示全部楼层
    熊仔 发表于 2023-9-18 13:05
    最好选择能自动清零的中断。当然手动也行,多执行一条清零语句。

    你的os代码太庞大了。之前看了一下,没 ...

    是的,能硬件自动清0的更好,然后中断清零的定义为空即可。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 03:33
  • 签到天数: 200 天

    [LV.7]常住居民III

    5

    主题

    645

    回帖

    2645

    积分

    荣誉版主

    积分
    2645
    发表于 2023-9-18 13:43:47 | 显示全部楼层
    另外,定时器0的时钟模式,会根据系统时钟和系统滴答周期自动配置为1T或12T,这个思路你可以参考一下。@熊仔

    点评

    tzz1983网友弄的自动分频。STC32有分频寄存器。STC8没有。其实一般使用1kHz,不改也行。 [attachimg]21698[/attachimg] 我也研究了一下,挺不错。  详情 回复 发表于 2023-9-18 13:52
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    11

    主题

    331

    回帖

    886

    积分

    荣誉版主

    积分
    886
     楼主| 发表于 2023-9-18 13:52:18 | 显示全部楼层
    CosyOS 发表于 2023-9-18 13:43
    另外,定时器0的时钟模式,会根据系统时钟和系统滴答周期自动配置为1T或12T,这个思路你可以参考一下。@熊 ...

    tzz1983网友弄的自动分频。STC32有分频寄存器。STC8没有。其实一般使用1kHz,不改也行。

    截图202309181351257112.jpg

    我也研究了一下,挺不错。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    8 分钟前
  • 签到天数: 192 天

    [LV.7]常住居民III

    0

    主题

    44

    回帖

    215

    积分

    中级会员

    积分
    215
    发表于 2023-9-18 14:03:11 | 显示全部楼层
    如能将ucos2 stc8允许任务堆栈空间任意大小的功能移植到是stc32上来,stc32g8k64上ram就宽松了

    点评

    STC8和STC32的ucos版本都支持任意大小堆栈。  详情 回复 发表于 2023-9-18 14:33
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    11

    主题

    331

    回帖

    886

    积分

    荣誉版主

    积分
    886
     楼主| 发表于 2023-9-18 14:33:20 | 显示全部楼层
    edalab 发表于 2023-9-18 14:03
    如能将ucos2 stc8允许任务堆栈空间任意大小的功能移植到是stc32上来,stc32g8k64上ram就宽松了 ...

    STC8和STC32的ucos版本都支持任意大小堆栈。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    8 分钟前
  • 签到天数: 192 天

    [LV.7]常住居民III

    0

    主题

    44

    回帖

    215

    积分

    中级会员

    积分
    215
    发表于 2023-9-18 15:02:50 | 显示全部楼层
    熊仔 发表于 2023-9-18 14:33
    STC8和STC32的ucos版本都支持任意大小堆栈。


    我指的是使用OSTaskCreate生成不同任务可设置不一样的堆栈尺寸,这样一些轻量任务可以设置较小size

    screenshot20230918.png

    点评

    STC8的ucos 新建任务函数OSTaskCreate改过的,需要增加堆栈大小。才能支持任意大小 STC32的不需要改,直接支持  详情 回复 发表于 2023-9-18 15:08
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    11

    主题

    331

    回帖

    886

    积分

    荣誉版主

    积分
    886
     楼主| 发表于 2023-9-18 15:08:09 | 显示全部楼层
    edalab 发表于 2023-9-18 15:02
    我指的是使用OSTaskCreate生成不同任务可设置不一样的堆栈尺寸,这样一些轻量任务可以设置较小size

    ...

    STC8的ucos 新建任务函数OSTaskCreate改过的,需要增加堆栈大小。才能支持任意大小
    STC32的不需要改,直接支持
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    8 分钟前
  • 签到天数: 192 天

    [LV.7]常住居民III

    0

    主题

    44

    回帖

    215

    积分

    中级会员

    积分
    215
    发表于 2023-9-18 15:15:19 | 显示全部楼层
    熊仔 发表于 2023-9-18 15:08
    STC8的ucos 新建任务函数OSTaskCreate改过的,需要增加堆栈大小。才能支持任意大小
    STC32的不需要改,直 ...

    谢谢,我在stc32g8k64上试试看
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    11

    主题

    331

    回帖

    886

    积分

    荣誉版主

    积分
    886
     楼主| 发表于 2023-9-18 15:58:38 | 显示全部楼层
    调用OS_EventTaskRdy的系统函数。都会有改变优先级的可能。
    截图202309181553049806.jpg

    有这么多。
    中断退出前调用OSIntExit (),
    OSIntExit ()调用OS_SchedNew ()

    截图202309181556231286.jpg


        OSPrioCur = OSPrioHighRdy;
        OSTCBCur  = OSTCBHighRdy;

    这两条必须在临界区读取和赋值
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-6-14 07:28 , Processed in 0.092169 second(s), 73 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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