快速体验鸿蒙Liteos-A:IMX6ULL的QEMU系统(Windows版本)
1. 简介
QEMU可以模拟x86,也可以模拟各种ARM板子,还可以模拟各种外设。
百问网对QEMU做了很多改进,支持更多硬件,支持更多GUI现实,
让用户可以更有真实感地使用QEMU来模拟IMX6ULL板子。
1.1 100ASK-QEMU特点:
- 模拟网卡
- 模拟LCD显示功能
- 模拟led灯、按键
- 模拟at24cxx i2c存储芯片,直接可以通过用户态操作看到效果
- 模拟触摸屏(单点触摸)
- 后续会逐渐增加更多的模拟硬件模块
1.2 已经移植的系统
- Linux
- 鸿蒙Liteos-A
2. 使用QEMU
2.1 下载
下载本GIT仓库:
- git clone https://gitee.com/weidongshan/qemu_image_for_imx6ull.git
也可以直接到文末下载完整的资源包!
如果你下载的是zip包,解压后目录名太长,会导致GUI界面无法显示。
把目录名改短即可。
2.2 体验Linux
双击运行env.bat, 在里面执行linux.bat即可启动Linux,输入root登录。
1. 体验LCD和触摸屏
执行如下命令:
- [root@qemu_imx6ul:/]# myfb-test /dev/fb0 // 在屏幕上画同心圆
- [root@qemu_imx6ul:/]# ts_test // 可在开发板的LCD界面使用鼠标点击、画线
- [root@qemu_imx6ul:/]# // 按ctrl+shift+c退出程序
2. 体验LED
执行如下命令,观察开发板上第1个LED:
- [root@qemu_imx6ul:~]# insmod 100ask_led.ko
- [root@qemu_imx6ul:~]# ls /dev/100ask_led0
- /dev/100ask_led0
- [root@qemu_imx6ul:~]# ledtest /dev/100ask_led0 on
- [root@qemu_imx6ul:~]# ledtest /dev/100ask_led0 off
3. 体验按键
执行如下命令,并在"设备管理器"中点击"buttons"按钮显示出按键的操作界面
- [root@qemu_imx6ul:~]# insmod 100ask_led.ko // 如果前面执行过,这里不需要再次执行
- [root@qemu_imx6ul:~]# cd button_driver_qemu/
- [root@qemu_imx6ul:~/button_driver_qemu]# insmod button_drv.ko
- [root@qemu_imx6ul:~/button_driver_qemu]# insmod board_100ask_qemu_imx6ull.ko
- [root@qemu_imx6ul:~/button_driver_qemu]# ./button_led_test
4. 读写I2C EEPROM AT24C02
首先在“设备管理器”中打开at24c02的界面,然后执行以下命令测试:
- // 0x50是AT24C02的I2C设备地址
- [root@qemu_imx6ul:~]# i2c_usr_test /dev/i2c-0 0x50 r 0 // 读地址0 data: , 0, 0x00
- [root@qemu_imx6ul:~]# i2c_usr_test /dev/i2c-0 0x50 w 1 0x58 // 写地址1,写入0x58
效果如下:
5. 通过ssh登录开发板
本GIT仓库中,env.bat启动的是终端软件ConEmu,它比Windows命令行稍微好用点。
但是它不支持键盘的箭头,可以通过ssh登录开发板。
linux.bat中设置了端口转换,如下:
可以使用其他ssh软件,比如MobaXterm通过23端口远程登录开发板,操作更方便。
2.3 体验鸿蒙Liteos-A
双击运行env.bat, 在里面执行harmony_liteos.bat即可启动、进入Liteos-A。
1. 执行shell命令
执行help命令,可以看到支持的SHELL命令,如下:
2. 执行数码相框GUI程序
注意:必须用“./bin/digitpic”,不能用绝对路径“/bin/digitpic”
注意:这个GUI程序是我们自己写得,很丑,与鸿蒙无关。
3. 退出程序
执行task命令确定进程号,然后执行“kill -9 PID”杀掉进程,比如:
3. 学习更多
3.1 Linux
为QEMU编译Linux:http://wiki.100ask.net/qemu
Linux开发教程:
- 官网:http://www.100ask.net
- 微信小程序:搜“韦东山”
3.2 鸿蒙Liteos-A
鸿蒙Liteos-A开发教程:
GIT仓库(无法直接打开链接,用git命令下载):
- git clone https://e.coding.net/weidongshan/openharmony/doc_and_source_for_openharmony.git
官网:http://www.100ask.net
微信小程序:搜“韦东山”
4. 常见问题
4.1 不能放在中文目录下
否则会提示无法加载文件,比如:
4.2 目录名不能有空格
否则有如下提示:
4.3 目录名太长
如果你下载的是zip包,解压后目录名太长,会导致GUI界面无法显示。
把目录名改短即可。
4.4 ConEmu无法运行
系统原因,错误提示如下:
可以尝试运行另一个程序:
如果ConEmu程序都无法执行,直接双击harmony_liteos.bat或linux.bat,它使用DOS命令行作为终端,有乱码。
4.5 退出程序
注意:ctrl+c是退出QEMU,也就是退出Linux或Liteos-A。
要退出Linux中的当前程序:使用 ctrl+shift+c。
Liteos-A中没有当前程序,只能使用kill命令杀死进程。
4.6 鼠标无法移出开发板界面
当你的鼠标点击QEMU的GUI界面时,鼠标将无法移出这个GUI界面。
这时可以通过快捷键“Ctrl+Alt+g”把鼠标从GUI界面中退出来。
5. 更新记录
2020.05.20 首次发布
6. 联系方式
公众号:
相关文章
- 程序员专为韭菜开源设计的项目,股票分析、代码学习两不误!
- 六年之后:回到底层编程
- Docker 禁止美国“实体清单”主体使用,Docker 开源项目应不受影响
- 这7个常用Git命令或概念你都知道吗?
- 什么是Docker?看这一篇干货文章就够了!
- 妙啊,阻塞到底是个啥?黄袍加身,亦能谈古说今
- 面试官提问:说说你对消息队列的理解
- 评估2020年排名前8的Python IDE
- 用C语言从头开始实现一个神经网络
- 用神经网络给照片补光,谷歌这项研究却实现了「鬼片」效果
- 还在纠结秒杀?看看 MQ 如何搞定
- 配置跨域后,框架帮我们做了什么?
- 抛弃VS Code,转向终端,我“移情别恋”的理由是什么?
- 在 Go 语言中管理 Concurrency 的三种方式
- 提高GIT中代码质量的七点优秀实践
- 构建Kubernetes集群应该有几个?优缺点是什么?
- 微软收购TikTok或面临技术难题:特朗普期限太紧
- 2020年8月编程语言排行榜:C语言第一无悬念,SQL进入前十靠运气?
- DevOps二三事:用持续集成构建自动模型训练系统的理论和实践指南
- Go语言生成二维码是如此简单