【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
这两天看了一下qemu,还是有不少收获的。对于没有开发板、或者是觉得使用开发板学习cpu不太方便的同学来说,使用qemu学习嵌入式是非常好的一个选择。不但免去了硬件搭建的各种烦恼,还能利用gdb单步调试、全程跟踪,确实很不错。
1、qemu的代码
2、qemu下和cpu关系比较紧密的目录,
我们以开源cpu openrisc为例,涉及的主要目录有
target/openrisc
linux-user/openrisc
hw/openrisc
tests/tcg/openrisc
3、重要的目录分布
target主要和cpu相关,主要是指令、中断、mmu、dsp的解析
linux-user主要是一些和cpu相关的头文件
hw主要和soc相关,主要是将io地址和具体的仿真硬件进行关联
tests/tcg就是一些测试文件
4、qemu的调试
qemu里面集成了gdb server,这样可以利用gdb方便地进行调试。
此外如果能配合不同的elf符号表,那么就可以从uboot、kernel、busybox进行无缝地顺序调试。
5、qemu二次开发
qemu作为整合程度最好的仿真平台,非常适合用来做二次开发。
特别是soc仿真这一块,只要做好了底层io address的适配,用qemu来代替大部分开发板的工作还是很有可能的。
6、其他
qemu的主要应用场景还是偏向于bsp的仿真和学习应用这块。
如果是性能或者压力测试,最好还是借助于硬件来完成。当然如果是逻辑层面的验证,qemu问题不大。
ps:说到软件,其实现在的大部分软件作品都不可能由个人从头到尾进行独立开发的。所以,有条件的同学可以好好学习和利用qemu,一方面借助于qemu服务于项目、不断提高业务水平和团队能力,另外一方面反馈给社区,促进社区的长远发展。充分利用好现有的资源,达到win-win的目的,才是一个嵌入式开发者的真正价值所在。