SDCC 的局限性
**SDCC 不是万能的**,在以下场景有局限:
- STC8H 的扩展中断(32-67)需要特殊处理
- 某些专有特性可能不支持
- 需要查阅 SDCC 文档确认支持情况这个结论是正确的吗?请大佬, 出来说说...
请大家出来讨论!!!
whwqm 发表于 2026-3-11 15:41
请大家出来讨论!!!
底层设计和上层程序通常需要验证测试
后续在使用中反馈
通常有更新 中断问题:
https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&ptid=12334&pid=126137
某些专有特性指的是C语言特性还是单片机某功能不能用?后者应该不存在
说反了,keil大于32的中断才需要特殊处理,sdcc的最简单,直接用就好了。 以前开发AVR时好像用过SDCC,好久之前的事了,几乎全忘了,我就记得好像要先配置软件搭建环境 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; //闹钟响铃
}
}
这们可以吗....
whwqm 发表于 2026-3-17 11:24
sdcc, rtc , 中断= 36,
void AUXR_ISR(void) __interrupt (36) // 直接这样用
{
XFR main起始位置开一次后面就不要关了
注意sdcc 中断函数声明至少要出现在main所在文件,否则异常
页:
[1]