ercircle 发表于 2025-3-12 22:00:07

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 :








ercircle 发表于 2025-3-12 22:00:14

已知问题:
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异常复位。







ercircle 发表于 2025-3-12 22:00:24

更新记录:

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版本待挑删函数,缩减编译体积


ercircle 发表于 2025-3-13 20:07:05


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

ercircle 发表于 2025-3-13 21:06:27

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区...

ercircle 发表于 2025-3-17 09:58:37

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交流社区

ercircle 发表于 2025-3-17 11:15:12

APP_DMA_AD:

ercircle 发表于 2025-3-17 11:43:09

APP_DMA_I2C:


sdcc的一个编译bug,导致程序卡死,启用nogcse选项恢复:






ercircle 发表于 2025-3-17 13:51:45


APP_DMA_LCM:
649

ercircle 发表于 2025-3-17 15:07:08

SDCC&IAR DMA清屏噪点,待定位:

页: [1] 2 3 4
查看完整版本: AI8051U@8bit库函数例程包-C51\IAR\SDCC-20250320