Skip to content

qemu学习方法? #5

Answered by QQxiaoming
codetang-2417 asked this question in Q&A
Discussion options

You must be logged in to vote

感谢提问。关于qemu的文档资料似乎正如官方的说明,没有足够多的开发者文档。

以下是一些个人见解:

与众多基础开源一样,它们的源码公开,看起来直接阅读源码,跟踪调试会是比较好的学习手段,但是正如qemu这样比较大型的项目直接阅读源码还是有一定困难,我与你相同也是最近一年才开始学习源码的。

最初主要是参考模仿学习hw/arm以及hw/riscv目录下的各类soc实现代码,随着慢慢越发熟悉整个hw里的各种ip和soc实现,我也把quard_star.c的代码写的更规整易懂了,你也可以参考。

第二就是编译qemu时使用--enable-debug选项,这样可以使用gdb运行qemu,对自己感兴趣的实现代码打断点跟踪,dump数据结构分析源码。

第三就是执行qemu-system-riscv64 -d help可以看到很多trace功能,有助于分析qemu代码本身。

由于我也是多通过查询google,阅读源码进行学习,没有找到很全面的资料。因此只能提供这点经验,以上内容可能无法给你提供实质性的帮助,非常抱歉。

ps:另外你原文“设计一种cpu”我理解的是使用现有的架构如arm/riscv设计soc,而不是设计一款新cpu core架构,如果是要设计新的cpu架构可能需要学习了解qemu中的tcg部分。

Replies: 1 comment 1 reply

Comment options

You must be logged in to vote
1 reply
@codetang-2417
Comment options

Answer selected by codetang-2417
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants