
上篇中我们虽然已经将虚拟机管理器 bringup 起来了,但是我们看不到任何输出,我们也就无法直观的了解它的状态,本篇中我们就来通过对 uart 的初始化,以及构建打印函数,让虚拟机管理器说话。
我们利用 qemu 仿真硬件中的 PL011 串口设备,编写其驱动代码,并编写 printf 接口。
PL011 的驱动不做具体分析,这是比较通用的部分,可以参考如下 PL011 的 Datasheet:
📎uart_pl011.pdf
在设备树中,我们可以得到 PL011 设备的寄存器基地址:
Tag:V0.1我们增加如下文件:
- pl011.c:PL011 的设备驱动
- printf.c:实现标准输出流函数
- utils.c:内部使用的基本函数,比如 strlen 等
修改如下内容:
删除之前的 u-boot 目录及其源文件,同时在 build_uboot.sh 中通过 git clone 的方式获取 u-boot 源码。
示例:
项目构建:
- clone 源代码到本地:git clone ;
- 编译生成 u-boot 的 bin 文件:sh build_uboot.sh;
- 编译虚拟机管理器代码,生成虚拟机管理器镜像:sh run_build.sh;
- 运行 qemu 并加载镜像:sh run_qemu.sh (直接运行);
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/51536.html