“万花筒的”;“千变万化的”;“变幻莫测的”

主要观点:Kaleidoscopico 是运行在 Raspberry Pi Pico 2 上的微控制器演示,在 Revision 2025 的 Wild compo 中获第二名,包含丰富的技术内容和代码。
关键信息

  • 基于 Raspberry Pi Pico 2,平台设计受 Amiga 启发,CPU 核心之一模拟自定义芯片,处理实时任务。
  • 硬件方面,Pico 2 是简单微控制器板,有两个处理器核心(ARM Cortex-M33 和 RISC-V),共享总线连接和中断逻辑,音频用 PWM 产生,有噪声问题。
  • 视频生成部分,CPU 核心降频至 130MHz 匹配视频信号,通过多个互锁部分生成视频信号,像素用 4 位值作为调色板查找,通过 PIO 实现复杂视频效果。
  • 有两个独立的“coppers”用于分层效果,通过软件定义芯片集控制,Framebuffer DMA 用于设置 PIO 状态机和 DMA 传输,环形缓冲区用于图形效果。
  • 声音合成用 12 通道相位调制合成器,音频计算精度 16 位,通过 playroutine 更新合成器参数。
  • 演示框架中,Core 0 负责渲染和编排效果,不同部分通过回调函数和内存区域管理实现过渡,每个部分有特定的准备和主函数。
  • 介绍了 greetings 部分(包含 rotozoomer)和 landscape 部分的实现细节,包括纹理处理、调色板使用等。
    重要细节
  • 提供多个下载文件,包括原始发布档案、声音文件、固件文件等。
  • 视频生成中 PIO 的详细工作方式,如状态机的使用、颜色寄存器的设置等。
  • 声音合成中各通道的实现细节和运算过程。
  • 演示框架中内存区域的划分和使用方式,以及部分之间的过渡条件和内存继承。
  • 各部分具体效果的实现代码和细节,如 greetings 部分的铜表和 rotozoomer 实现,landscape 部分的山脉渲染和随机抖动。
阅读 26
0 条评论