神农鼎 发表于 2024-6-12 11:11:47

荣誉版主 推荐 SDCC 为 AI8051U 的 天然盟友,发来一些资料

荣誉版主 推荐 SDCC 为 AI8051U 的 天然盟友,发来一些资料

240129-V441-SDCC Compiler User Guide(EN)
SDCC——小型设备 C 编译器up240306
sdcc-4.4.0-setup

神农鼎 发表于 2024-6-12 11:15:21

SDCC - Small Device C Compiler (sourceforge.net)



神农鼎 发表于 2024-6-12 11:21:21

SDCC 支持 C99
SDCC 支持的数据类型




autopccopy 发表于 2024-6-13 00:00:15

-----   SDCC unsigned long long 初体验   ------
64位整型数据运算@8H8K64U, SDCC 开源编译器支持
小弟使用单片机处理数据,因MCU资源较少,撑死ulong就够用了。
就连工作电脑使用的数据库的几百万条记录的数据sum也没超过这个值。
先下载了顶楼的SDCC 4.4.0 (32位版,因64位暂还是RC版,还是稳定第一吧),
一路安装,将执行文件添加到路径即可。
然后使用AIAPP-ISP V6.94L 导出SDCC头文件,在SDCC编译,
下载到 开天斧-8H8K64U 体验成功,因初次使用ULL, 请多指教。
据说ULL64的意义是在ARM的单片机中,不少传感器的库使用了64位整数,
要移植到8位或其他非ARM单片机中,就需要编译器支持才可,
SDCC是支持的,IAR暂未实验,
STC-ISP软件也有 IAR EW8051 头文件,就留给有兴趣的坛友吧。
使用了BAT进行编译,生成.hex 文件,下载成功。附图,附视频

[*]   unsigned long long   i= 8446744073709551615; //太大会提示隐性溢出:25: warning 158: overflow in implicit constant conversion
[*]   unsigned long long   j= 8446744073709451615;
(28)


autopccopy 发表于 2024-6-13 00:04:00

本帖最后由 autopccopy 于 2024-6-13 00:10 编辑

autopccopy 发表于 2024-6-13 00:00
---SDCC unsigned long long 初体验。----



//test 64位整数itkw_autopccopy @240612 foshanshi
#include "STC8H-SDCC.h" //该头文件 从STC-ISP V6.94E的头文件 菜单导出SDCC格式!

void delay2(void);

void main(void)
{
P2M0=0x00;
P2M1=0x00;

P25=0;

while(1)
{
   P25 = !P25; //闪烁P25的LED, 低电平点亮。(开山斧三.2,单片机型号: STC8H8K64U, 软件协议, V3.0: 7.4.6U, 芯片出厂序列号 : F784C90D018342, 运行频率48Mhz)
   delay2();
}
}


void delay2(void)
{
   //unsigned long long i=18446744073709551615;//2^64-1=18,446,744,073,709,551,615;
   unsigned long long   i= 8446744073709551615; //太大会提示隐性溢出:25: warning 158: overflow in implicit constant conversion
   unsigned long long   j= 8446744073709451615;
   
   i=i-j; //1000000
   while(i--);
}




神农鼎 发表于 2024-6-13 09:41:34


我 8051U 回来了


C语言程序设计,嵌入式控制
                                           山大 天山 计划@STC8051U
                                 自主可控    从8051到国产32位51


2025,
我们 STC8/STC8051U 例程 全面用 SDCC 覆盖,
现先忙
DSP/24-bit-ADC/STC32G96K256/STC33, CAN-FD, USB-Host,
2024对有线做个总结 !

2025从地球转战天空
【新提醒】追风剑-II@STC8051USB实验箱讨论,从8051到国产32位51 自主可控 - 视频教学,《单片机原理及应用》教学改革及实践研讨会,实战技术交流会,会务通知 国芯技术交流网站 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)

autopccopy 发表于 2024-6-18 21:31:39

autopccopy 发表于 2024-6-13 00:04


翻车了。

上面简单测试了SDCC 64位整数的加减法,昨天测试 SDCC 64位整数乘除法都报错! 晕!原来许工在另一帖就提过"SDCC...具体运算什么内容都需要自行添加。”! 不知要如何添加呢?

autopccopy 发表于 2024-6-18 21:36:31

本帖最后由 autopccopy 于 2024-6-18 22:05 编辑

autopccopy 发表于 2024-6-18 21:31
翻车了。

上面简单测试了SDCC 64位整数的加减法,昨天测试 SDCC 64位整数乘除法都报错! 晕!原来许工在 ...
然后提到IAR FOR 8051支持long long , 谁知昨晚实际试验也报错。查阅了IAR FOR 8051的用户指南,竟然发现它不讲武德,long long竟然是32位非64位的!!!
估计8051只能看如何从SDCC扩展了。



autopccopy 发表于 2024-6-18 21:39:28

autopccopy 发表于 2024-6-18 21:36
然后提到IAR FOR 8051支持long long , 谁知昨晚实际试验也报错。查阅了IAR FOR 8051的用户指南,竟然发现 ...

但测试ARM的KEIL MDK, 则是支持64位的整数。见图,直接在STC33的测试例程中增加定义64位整数,编译通过无报错。


BFMIPBWVFP 发表于 2024-8-14 09:00:28

C251暂时没有支持64位整型的编译器,也没有支持C99的,悲催了。
页: [1] 2
查看完整版本: 荣誉版主 推荐 SDCC 为 AI8051U 的 天然盟友,发来一些资料