Skip to main content
欢迎来到PAWPAW技术文档网站了解更多信息

针对单个tile编程

本节介绍了在单个tile上构建和运行简单程序所需的一些关键工具。

要在硬件上运行,需要以下 XMOS 评估板之一:

  • PXUA-XU316-KIT(搭载 xcore.ai 处理器)
  • XK-EVK-XU316(搭载 xcore.ai 处理器)
  • XCORE-AI-EXPLORER(搭载 xcore.ai 处理器)
  • XCORE-200-EXPLORER(搭载 XCORE-200 处理器)

在运行示例时,将以下示例中使用的target字符串(-target=XK-EVK-XU316)替换为正在使用的板的target字符串,例如:-target=XCORE-AI-EXPLORER

支持以下板和 XTAG 类型组合:

  • PXUA-XU316-KIT 板需要将 XTAG3 调试器通过转接板插入到其XTAG连接器
  • XK-EVK-XU316 板搭载 USB micro-B 接口的板载 XTAG4 调试器,连接到PC即可使用
  • XCORE-AI-EXPLORER 板需要将 XTAG4 调试器插入其 XSYS2 连接器
  • XCORE-200-EXPLORER 板需要将 XTAG3 调试器插入其 XSYS 连接器

请参阅:配置 XTAG检查 XTAG

构建一个可执行文件

下面是一个简单的示例,它包含在单个源文件 main.c 中:

main.c
#include <stdio.h>

int main(void) {
printf("Hello world!n");
return 0;

这个示例使用 XCC 工具编译 main.c。输出是一个 xcore 可执行文件,保存在 XE 文件 a.xe 中:

xcc -target=XU316-1024-QF60B-C24 -g main.c

选项 -g 告诉 XCC 工具添加调试信息。这将在后面用到。

目标定义

选项 -target=XU316-1024-QF60B-C24 为工具提供了目标(处理器或板子)的描述,目标是应用程序执行的硬件平台。这个特定的 XMOS 目标描述是随 XMOS XTC 工具一起提供的(在 target 子目录中)。用户通常会提供他们自己的板子的描述,或者基于 XMOS 评估板的描述。

板子的描述包括了关于 xcore 设备的信息,它们的架构,外部闪存设备和子系统时钟频率等。

XE 文件的内容

XE 文件通常被称为可执行文件。然而,它实际上是一个文件包,它包含了目标定义中每个 tile 的 ELF 文件。

在模拟环境中运行

这些工具包括一个名为XSIM的接近周期精确的硬件模拟器。XSIM不仅仅是对xcore tile本身的模拟--而是模拟tile所在的整个package。因此,在这个例子中,它模拟了XU316-1024-QF60B-C24 package中的两个tile。

xsim a.xe

> Hello, world!

在硬件上运行

XRUN工具用于在硬件上启动可执行文件。

将您的XTAG3调试器将你的PXUA-XU316-KIT开发板连接到你的主机。请确保你也为开发板本身提供了电源。

评估板与XTAG3的连接方式

使用xrun --io运行a.xe:

xrun --io a.xe

> Hello world!
提示

要让XRUN在主机电脑的控制台上显示应用程序的printf输出,就需要使用–-io选项,但这也会让它等待应用程序终止。

--io 选项只用于快速示例或者没有连接到XTAG调试器的XSCOPE XLINK接口的平台。因为该选项会带来等待延迟并破坏XMOS的实时性。

提示

如果你在这一步出现了问题,请确认您的XTC15工具已经安装成功。

恭喜!您刚刚建立并执行了你的第一个xcore应用程序。

使用XGDB在硬件上调试

当你使用简化的XRUN工具时,你已经间接地使用了XGDB调试器。然而,如果你想更深入地了解应用程序是如何运行的,你需要直接使用XGDB调试器:

xgdb a.xe

这会启动一个新的调试会话,有一个新的(gdb)提示符。你现在必须connect到连接的硬件,并load应用程序代码:

(gdb) connect
...
(gdb) load
...

从现在开始,在这个单线程程序上使用XGDB的方式和使用普通的GDB一样。例如,创建一个断点,运行到断点处,步进到下一行,然后退出:

(gdb) break main
Breakpoint 1 at 0x400fc: file main.c, line 4.
(gdb) continue

Breakpoint 1, main () at main.c:4
4 printf("Hello world!n");
Current language: auto; currently minimal
(gdb) step
Hello world!
5 return 0;
(gdb) quit

使用XGDB调试

可以使用XGDB在XSIM模拟器上调试。步骤和使用XGDB在硬件上调试一样,只是使用connect -s来连接到模拟器而不是硬件:

(gdb) connect -s
...
(gdb) load
...

总结

在这个简要的命令行工具概览中,你成功构建了一个应用程序来生成一个XE文件。你已经在硬件上运行和调试了XE文件,并在模拟器上做了同样的事情。

通过这次导览,你已经使用了以下工具: