D13x开发实战:从QEMU到真机全流程


总览

环境
Step1 QEMU
Step2 真机
Step3 对接 Luban

阶段 目标 BSP_USING_AIC_D13X_HW
Step 1 PC 验证能进 main
Step 2 D13x 板子串口打日志
Step 3 量产级时钟/链接/外设 + Luban-Lite

Step 0 --- 环境

  1. 工具链:riscv64-unknown-elf-gcc(你已在 rtconfig.py 配 CDK V3.4.0)

  2. 打开 RT-Thread env,进入:

    ...\rt-thread-5.2.2\bsp\artinchip\d13x


Step 1 --- QEMU(先做这个)

  1. menuconfig(env 里执行,或 menuconfig.bat
  2. UART0 ,控制台 uart0
  3. 不要勾 "Use on-chip drivers for real D13x silicon"
  4. scons -c && scons -j12
  5. qemu.bat → 应看到 ArtInChip D13x: enter main OK

Step 2 --- 真机(D13x + 调试 UART)

硬件(你提供的原理图):

  • UART0,0x18710000
  • PA0 = TX,PA1 = RX
  • 115200 8N1,模块时钟 60MHz

软件:

  1. menuconfig → 勾选 D13x HW,核对基址/时钟/IRQ(见 README 表)
  2. scons -c && scons -j12
  3. AiBurnrtthread.bin
  4. 串口 115200 看日志

编译架构:

  • 玄铁:../../xuantie/libraries(启动 + E907,必须有)
  • 真机:./libraries/aic_d13x(时钟 / pinmux / UART)

Step 3 --- 继续完善(可选)

Luban-Lite 对齐:

  1. aic_pinmux.c --- 引脚复用
  2. aic_clk.c --- 完整 CMU(你本地已扩展到 ~212 行)
  3. rtconfig.py --- 换 D13x 真机 .ld
  4. aic_soc.h --- 与封装/板型一致

踩坑对照(你遇到过的问题)

现象 处理
RTT_ROOT / Kconfig 找不到 menuconfig.bat 或 env;Kconfig 默认 ../../..
soc.h 找不到 xuantie_incs.py 加路径
.ld 找不到 勿把 ./libraries 当 xuantie;已改 rtconfig.py
multiple definition SConstruct 分开 xuantie / aic_d13x
__rt_rvstack 未定义 必须链 xuantiestartup.S

完整说明、menuconfig 项和排查表在:

bsp/artinchip/d13x/README.md

真机驱动细节:libraries/aic_d13x/README.md

你当前若已 scons 通过,建议按 Step 1 → Step 2 各跑一遍确认。