💡
原文中文,约17800字,阅读约需43分钟。
📝
内容提要
本文记录了在 K230 芯片上进行 Rust 裸机开发的过程,包括启动流程、固件格式解析和外设控制等。K230 是支持 RVV 1.0 的双核 RISC-V 处理器,具备丰富的外设接口。通过裸机编程,深入理解硬件与操作系统的原理,实现了 UART 调试、GPIO 点灯和 PWM 蜂鸣器等功能,为未来的嵌入式开发奠定基础。
🎯
关键要点
- 本文记录了在 K230 芯片上进行 Rust 裸机开发的过程,包括启动流程、固件格式解析和外设控制等。
- K230 是支持 RVV 1.0 的双核 RISC-V 处理器,具备丰富的外设接口。
- 通过裸机编程,深入理解硬件与操作系统的原理,实现了 UART 调试、GPIO 点灯和 PWM 蜂鸣器等功能。
- 项目旨在探索 MPU 与 MCU 在启动方式和使用模式上的区别,以及如何使用 Rust 进行 MPU 芯片的裸机开发。
- 启动代码分析显示 Boot ROM 会初始化硬件并加载固件到内存。
- K230 的固件格式需要特定的结构以便 Boot ROM 识别。
- 编写 Python 脚本生成固件 .img 文件,并使用烧录工具写入。
- 裸机程序的初始化包括堆栈、系统执行模式和中断表的设置。
- 通过 UART 输出调试信息验证代码执行情况。
- 使用 PAC crate 访问外设寄存器,并实现简单的 HAL Driver。
- 实现了 println! 宏以方便输出调试信息。
- 中断处理函数的实现和初始化步骤对于 RISC-V 处理器至关重要。
- DDR 初始化是复杂的过程,涉及多个步骤和寄存器配置。
- GPIO 点灯和 PWM 蜂鸣器的控制展示了外设的使用方法。
- 裸机编程有助于理解硬件和操作系统的工作原理。
- 在裸机环境下实现简单的命令行交互功能。
- K230 的固件烧录可以通过串口下载,提升开发效率。
- 成功实现了多核协同工作和对 RVV 向量指令的探索。
- 为未来的嵌入式开发奠定了基础,展望进一步完善外设驱动和系统构建。
➡️