Yocto tips (20): Yocto中qemu模拟器的使用,以zynq Cortex-A9为例

在以前的文章《使用Buildroot与Qemu学习ARM linux IIC驱动》中,写到过使用qemu来模拟使用ARM Linux,那个时候借助的是buildroot,这次我们使用Yocto来做同样的事情。 优点 使用Qemu的好处在于,当我们在开发Userspace的程序时,可以在没有硬件的情况下完成测试。 同时不像以前一样我们需要自己去编译qemu,这次我们使用Yocto编译出来的native qemu来模拟。省去了我们手动编译可能出现的问题。 选择 这里的选择指的是,我们在local.conf中指定MACHINE变量的值。我将其分成两种: 1. 默认的qemuarm 以前我一直使用这个,但是这个模拟的是一个ARM9的处理器,各种外设功能不足,我们希望可以模拟一个更高ARM架构的SoC。 2. Xilinx的zynq-9:xilinx-zynq-a9 在Qemu的模拟中,据个人有限经验对不同的板子的模拟情况的了解,zynq在Qemu中有较好的支持。同时xilinx对此也有不少的文档,同时xilinx的一些板子的支持属于Qemu默认的测试与支持Machine,因此选择Xilinx的板子来模拟比较合适。 同时,我们关注的是ARM相关,因此使用Cortex-A9比较好,对此,我们选择xilinx-zynq-a9。 在我们的Host PC中如果安装了qemu-system-arm,那么我们可以看到其支持的板子里面是有这个板子的:

Continue reading »

使用Buildroot与Qemu学习ARM linux IIC驱动

Buildroot配置 下载最新的buildroot,然后进入 buildroot中进行配置

进入到Kernel配置与选择子项目中进行版本选择,使用4.04版本的Linuxkernel,因为低版本的3.3内核不合适学习的3.4.2内核的I2C驱动。如下图: 配置完成后save,关闭。 Kenrel配置 使用make linux-menuconfig打开内核的menuconfig配置选项 1. 选中i2c-adapater与slave,完成对IIC的支持:

  2. 同时Kernel不用dtb,在选择使用dtb 配置好了后,直接make -j4,编译生成各个需要的文件 Qemu模拟Mini2440的构建 启动qemu Mini2440的nand文件制作,可以参考Qemu

Continue reading »