找回密码
 立即注册
查看: 236|回复: 7

SDCC 的局限性

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2026-03-17 11:13:59

3

主题

2

回帖

89

积分

注册会员

积分
89
发表于 2026-3-11 15:28:56 | 显示全部楼层 |阅读模式


**SDCC 不是万能的**,在以下场景有局限:
- STC8H 的扩展中断(32-67)需要特殊处理
- 某些专有特性可能不支持
- 需要查阅 SDCC 文档确认支持情况这个结论是正确的吗?请大佬, 出来说说...



回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2026-03-17 11:13:59

3

主题

2

回帖

89

积分

注册会员

积分
89
发表于 2026-3-11 15:41:46 | 显示全部楼层
请大家出来讨论!!!
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:300
  • 最近打卡:2026-07-06 00:07:18
已绑定手机

66

主题

808

回帖

3039

积分

论坛元老

DIY玩家

积分
3039
发表于 2026-3-11 16:29:22 | 显示全部楼层
whw*** 发表于 2026-3-11 15:41
请大家出来讨论!!!

底层设计和上层程序通常需要验证测试
后续在使用中反馈
通常有更新
永怀这学徒心
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:587
  • 最近打卡:2026-07-05 21:12:29
已绑定手机

112

主题

4958

回帖

1万

积分

荣誉版主

无情的代码机器

积分
10760
发表于 2026-3-11 16:38:27 | 显示全部楼层
中断问题:
https://www.stcaimcu.com/forum.p ... 2334&pid=126137

某些专有特性指的是C语言特性还是单片机某功能不能用?后者应该不存在
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:881
  • 最近打卡:2026-07-05 00:09:36
已绑定手机

34

主题

390

回帖

3789

积分

论坛元老

机长

积分
3789
发表于 2026-3-16 21:21:15 | 显示全部楼层
说反了,keil大于32的中断才需要特殊处理,sdcc的最简单,直接用就好了。
业余撸代码,专业开飞机 https://gitee.com/STC-MCU
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:316
  • 最近打卡:2026-07-04 08:25:57

18

主题

261

回帖

345

积分

中级会员

积分
345
发表于 2026-3-17 08:14:59 | 显示全部楼层
以前开发AVR时好像用过SDCC,好久之前的事了,几乎全忘了,我就记得好像要先配置软件搭建环境
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2026-03-17 11:13:59

3

主题

2

回帖

89

积分

注册会员

积分
89
发表于 2026-3-17 11:24:32 | 显示全部楼层
sdcc, rtc ,   中断= 36,
void        AUXR_ISR(void) __interrupt (36)    // 直接这样用
{
        P_SW2 |= 0x80;        // 使能 XFR 访问(关键!)
                        i = RTCIF;
                        RTCIF = 0;                //中断标志, 0x80:闹钟中断, 0x40:日中断, 0x20:小时中断, 0x10:分钟中断, 0x08:秒中断, 0x04:1/2秒中断, 0x02:1/8秒中断, 0x01:1/32秒中断
                        P_SW2 &= ~0x80;        // 恢复 P_SW2
                        if(i & 0x08)        //秒中断
                        {
                                B_1S = 1;                        //用户中断处理代码
                                //    RTC_read();
                                P33=!P33;                //闹钟响铃
                        }
}
这们可以吗....

点评

XFR main起始位置开一次后面就不要关了 注意sdcc 中断函数声明至少要出现在main所在文件,否则异常  详情 回复 发表于 2026-3-17 11:57
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:587
  • 最近打卡:2026-07-05 21:12:29
已绑定手机

112

主题

4958

回帖

1万

积分

荣誉版主

无情的代码机器

积分
10760
发表于 2026-3-17 11:57:03 | 显示全部楼层
whw*** 发表于 2026-3-17 11:24
sdcc, rtc ,   中断= 36,
void        AUXR_ISR(void) __interrupt (36)    // 直接这样用
{

XFR main起始位置开一次后面就不要关了
注意sdcc 中断函数声明至少要出现在main所在文件,否则异常
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-7-6 04:09 , Processed in 0.073091 second(s), 77 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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