基于tinycc实现的c251编译器
之前在做c51cc的时候发现一直没有什么进展, 那段时间又比较忙就放下了, 前段时间想了想使用tinycc实现c251应该是个不错的主意, 就做了一个这个编译器
以下是测试内容
{ 'e', "echo", test_echo } // 基础的串口回传测试
{ 'a', "arith", test_arith } // 算术测试
{ 'm', "memory", test_memory } // 内存/指针/结构体/字符串测试
{ 'g', "gpio", test_gpio } // 基础的gpio测试
{ 't', "timer", test_timer } // 定时器0 16 位计数
{ 'i', "intr", test_interrupt } // 定时器0 中断计数
{ 'c', "adc", test_adc } // 采样内部参考电压
{ 'b', "bits", test_bits } // 位运算测试
{ 'r', "recurse",test_recurse } // 递归测试
{ 'w', "wdt", test_wdt } // 看门狗测试
{ 's', "spi", test_spi } // SPI 主模式配置读回
{ 'E', "eeprom", test_eeprom } // 内部 EEPROM 写读回测试
{ 'd', "deep", test_deep } // 深度数据结构测试
{ 'l', "long", test_long } // 32位整型运算测试
{ 'p', "pwm", test_pwm } // 定时器版本的pwm测试
{ 'u', "uartm", test_uart_multi } // 串口回传测试
{ 'k', "memfun", test_memfunc } // 内存函数测试
{ 'v', "version", test_version } // 编译时间版本测试
{ 'x', "mixed", test_mixed } // 综合测试
测试方法:
[06:16:27.908]发送→w
[06:16:27.942]接收←HW:CMD w BEGIN
HW:CMD w PASS
HW:CMD w DONE
[06:16:28.135]接收←HW:READY
当前优化还没有做的特别细致, 之后持续更新, 测试使用的单片机是stc32g12k64, 仅使用了串口测试, 所以可能存在部分问题, 欢迎大家测试, 提bug
附件中会附带tcc_c251.exe以及测试文件, 之后代码整理好之后会放出来
附件:c251_dist.zip