rt-thread-official/bsp/qemu-vexpress-a9
bernard f8d7f34728 [BSP] Add license info and code cleaup for vexpress-a9 BSP 2020-12-31 09:48:36 +08:00
..
.vscode [BSP] Add vscode settings for qemu-vexpress-a9 bsp 2018-08-15 09:15:08 +08:00
applications [BSP] Add license info and code cleaup for vexpress-a9 BSP 2020-12-31 09:48:36 +08:00
drivers [BSP] Add license info and code cleaup for vexpress-a9 BSP 2020-12-31 09:48:36 +08:00
.config fix spelling mistake for "RT_IDEL_HOOK_LIST_SIZE" 2019-09-05 08:33:12 +08:00
.cproject [bsp][qemu-vexpress-a9] Fix the elf not running when using eclipse target. 2019-05-07 16:04:25 +08:00
.gitignore [BSP][qemu-a9] auto generate mac address from host 2019-05-12 21:53:47 +08:00
.project [bsp][qemu-vexpress-a9] Update eclipse project. 2019-05-29 11:56:19 +08:00
Kconfig [bsp][Kconfig]在bsp的Kconfig中select组件初始化与user main的选项 2019-09-11 12:06:43 +08:00
README.md [BSP] Add vscode settings for qemu-vexpress-a9 bsp 2018-08-15 09:15:08 +08:00
SConscript [BSP] Add license info and code cleaup for vexpress-a9 BSP 2020-12-31 09:48:36 +08:00
SConstruct [add] default environment 2019-10-22 16:48:57 +08:00
link.lds fixed linker script and stack align issues. 2019-10-22 09:47:41 +08:00
makefile.targets [qemu-vexpress-a9] Add eclipse project support. 2019-04-29 18:42:12 +08:00
qemu-dbg.bat [BSP] Add vscode settings for qemu-vexpress-a9 bsp 2018-08-15 09:15:08 +08:00
qemu-dbg.sh [BSP][QEMU]fix run error on mac add dbg.sh on linux 2018-06-29 22:56:42 +08:00
qemu-nographic.bat [bsp][qemu-vexpress-a9] add qemu-nographic.bat for windows 2018-06-19 10:35:42 +08:00
qemu-nographic.sh [BSP] Add license info and code cleaup for vexpress-a9 BSP 2020-12-31 09:48:36 +08:00
qemu.bat Add smp support to RT-Thread 4.0 2018-11-22 18:16:47 +08:00
qemu.sh Add smp support to RT-Thread 4.0 2018-11-22 18:16:47 +08:00
rtconfig.h fix spelling mistake for "RT_IDEL_HOOK_LIST_SIZE" 2019-09-05 08:33:12 +08:00
rtconfig.py [bsp][qemu-vexpress-a9]修复py3环境下编译,整数相除为浮点数的问题 2019-09-02 11:22:51 +08:00

README.md

QEMU/VExpress A9板级支持包说明

1. 简介

Versatile Express系统由ARM Ltd提供作为CortexA9四核处理器的开发环境硬件由uATX主板和CoreTile Express A9x4子板组成。有关该系统的详细信息可以访问 ARM官方页面

Versatile Express的核心是一套FPGA的开发环境Cortex-A芯片基于FPGA上的硬件逻辑所以本身是不存在这么一款真实芯片。

QEMU/VExpress A9是QEMU模拟器针对ARM VExpress-A9 FPGA开发板进行软件模拟的指令级虚拟机。QEMU/VExpress因为是软件仿真模式可以配置成多种模式例如单核Cortex-A9多核Cortex-A9以及多核Cortex-A15等。同时也能够模拟出VExpress FPGA开发板上大多数的外设。

这份RT-Thread BSP是针对QEMU/VExpress-A9的一份移植也并未在真实的VExpress FPGA开发板上运行过主要是提供给开发者一定的便利能够使用、验证一定的功能。对于真实FPGA开发板的执行情况不做任何假设。

当前QEMU/VExpress-A9对应的硬件特性

硬件 描述
CPU ARM Cortex-A9单核
主频 NA
Memory 128MB(0x60000000 - 0x68000000)

2. 编译说明

推荐使用env工具可以在console下进入到bsp/qemu-vexpress-a9目录中,运行以下命令:

scons

来编译这个板级支持包。如果编译正确无误会产生rtthread.elf、rtthread.bin文件。在QEMU中一般使用elf方式来运行所以只需要使用rtthread.elf文件即可。

注: RT-Thread/ENV中携带的工具版本是

gcc version 5.4.1 20160919 (release) [ARM/embedded-5-branch revision 240496]

如果在Linux下使用请自行下载GNU GCC工具链

3. 执行

当要执行编译好的RT-Thread时在这个bsp目录下已经提供了运行脚本文件qemu.bat/qemu.sh

这个执行脚本默认把串口输出到stdio即控制台所以直接执行脚本后就可以输出结果了。

 \ | /
- RT -     Thread Operating System
 / | \     3.0.4 build May  4 2018
 2006 - 2018 Copyright by rt-thread team
SD card capacity 65536 KB
probe mmcsd block device!
hello rt-thread
msh />

4. 支持情况

驱动 支持情况 备注
UART 支持 UART0/1
SD/MMC 支持
CLCD 支持
Key 支持
Mouse 支持
EMAC 支持

4.1 使用VSCode编辑、编译、调试

在qemu-vexpress-a9中已经携带了部分vscode的配置需要配合着env一起来使用。步骤包括

先使用env打开console然后在console中切换都qemu-vexpress-a9 bsp的目录下

scons --target=vsc -s

更新vscode需要用到的C/C++头文件搜索路径信息不是每次都需要更新只有在使用了menuconfig重新配置了RT-Thread或更改了rtconfig.h头文件时才需要

然后在console下输入

code .

启动vscode。使用vscode目前包含如下的一些功能

  • 编译 Ctrl+Shift+B - 开启vscode内置终端调用scons进行编译如果有编译错误也会侦测问题双击问题跳到指定代码文件、代码行
  • 包含执行qemu模拟器,scons -c进行目标文件清理的任务
  • F5 一键开启QEMU调试模式并断点停留在main函数上;(需要更改下qemu-dbg.bat文件在qemu-system-arm前加入start),即
@echo off
if exist sd.bin goto run
qemu-img create -f raw sd.bin 64M

:run
start qemu-system-arm -M vexpress-a9 -kernel rtthread.elf -serial stdio -sd sd.bin -S -s

已知问题 如果在vscode的目录中额外添加了文件夹会导致调试不能够启动。

5. 联系人信息

维护人:bernard