AI8051U@8bit库函数例程包-C51\IAR\SDCC-20250320
学习下乘风飞扬版主和王昱顺版主的Ai8051U库函数AI8051U传统风格库函数例程包发布-持续更新, 20250214 - 软件库函数/原理图库/PCB库/最小包装 国芯技术交流网站 - AI32位8051交流社区
USB型,Ai8051U创新风格库函数持续开发中,内部视频培训, 听取建议,3/12更新 - 软件库函数/原理图库/PCB库/最小包装 国芯技术交流网站 - AI32位8051交流社区
输出8Bit版本,让IAR和SDCC也用上新鲜的库函数!
Ai8051U@8Bit库函数例程包-C51\IAR\SDCC-20250320
除楼下列出的问题外,整体编译测试通过~
Ai8051U传统风格@8Bit库函数例程包-C51\IAR\SDCC :
已知问题:
0. C51 中断问题:
Keil C51, Keil C251 中断号的 拓展:0 ~ 254,L51/LX51/L251链接器, 说明 - 仿真/编译器/汇编器/头文件 国芯技术交流网站 - AI32位8051交流社区
1. IAR 用的8H配置,手动扩大xdata
修改文件 IAR Systems\Embedded Workbench 8.0\8051\config\devices\STC\lnk51ew_STC8H8K64U.xcl
//
// IXDATA
// ------
-D_IXDATA0_START=0x0001
-D_IXDATA0_END=0x7FFF //Ai8051U 32kB RAM
//
// XDATA
// -----
-D_XDATA0_START=0x0001
-D_XDATA0_END=0x7FFF
2.QSPI建议C251下使用
3.APP_SPI_Flash实验Ai8051U实验箱需要接跳线帽
4.DMA_LCM 功能需要设置内存四字节对齐
5.GPIO_INT 24M下测试正常,40M下C251异常复位。
更新记录:
2025.03.20
1.修复APP_GPIO_INT和APP_DMA_LCM例程问题
2025.03.17
1.测试至实验13,主要更新各个APP结构体初始化,printf打印差异,SDCC编译配置项内容。
2025.03.12:
1.Keil C251\C51、IAR编译通过,待测试
2.SDCC版本待挑删函数,缩减编译体积
sdcc:edata宏替换为__idata报错
?ASlink-Error-Could not get 128 consecutive bytes in internal RAM for area ISEG.
Makefile 中已声明IRAM 2K未生效?
翻阅手册和SDCC源码报错处溯源发现:
iram-size超过256的设定被限制为128......
修改Makefile:
IRAM_SIZE = --iram-size 256
sdcc 17-APP_QSPI_Flash:
?ASlink-Error-Could not get 193 consecutive bytes in internal RAM for area DSEG.
出现了,一堆函数 之 sdcc没有REMOVEUNUSED功能~
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=12266&highlight=removeunused&page=1&extra=#pid125432
查阅手册发现个除手动屏蔽闲置函数外新解决办法,--stack-auto
开启后编译:
对比C251:
emmmmm,被auto去了code区...
APP_AD_UART:
结构体未初始化可能导致串口异常或乱码
使用PRINTF_SELECT宏定义选择串口1 ,如果printf输出重定向到usb输出需要注意冲突PRINTF_SELECT可改为0
Keil C51和其它几个编译器的printf格式差异:
printf函数 的 格式参数; USB接口 使用 printf 打印数据 - 串行口,DMA支持的4组串口,RS232,RS485,Modbus, CRC16 国芯技术交流网站 - AI32位8051交流社区
APP_DMA_AD:
APP_DMA_I2C:
sdcc的一个编译bug,导致程序卡死,启用nogcse选项恢复:
APP_DMA_LCM:
649
SDCC&IAR DMA清屏噪点,待定位: