新手上路
- 积分
- 22
- 金钱
- 22
- 注册时间
- 2026-2-18
- 在线时间
- 5 小时
|
经过3周的不断尝试,终于达成了目标:在SD卡启动的linux里,从PS侧串口: cat /dev/ttyS1,读取到了FPGA连接的ATK 1218模块的定位数据。
整个过程大致是这样的:
(1)FPGA 电路的验证:以FPGA教程 Ch16 为基础,实现了经 FPGA 连接的串口数据转发。
(2)裸机程序开发:以SDK教程 Ch5 为基础,Vivado Block 设计,添加了 AXI 16550 IP核,以及 SDK 的 C程序,在裸机状态下跑通了从 PL uart 到 PS uart 的数据流,使用触发中断模式。验证了 FPGA Block 的设计正确性。
(3)SD卡启动镜像制作:以Linux教程 Ch22/27/39/40/42 为参考,制作了SD启动镜像。主要问题是,1,Vivado 生成的 hdf 文件,在 petalinux 中生成 dtsi 等文件时,不完整,需要根据教程给的示例补充配置代码。2,patalinux 在生成 zImage 镜像时,需要修改配置,添加对 AIX 16550 驱动的支持,这一步最难调试。最后发现不能使用 menuconfig 的方式添加,这样会增加很多不必要的内容,造成 zImage 启动失败,而是通过 ./scripts/config --enable CONFIG_SERIAL_8250 和 ./scripts/config --enable CONFIG_SERIAL_8250_CONSOLE 添加,这样只增加必要的驱动。 |
|