XMOS中的Hello World程序编写以及程序的烧写

2025-09-25 02:39:40

1、关于如何安装xTIMEcomposer软件,请去参考下面这篇经验,软件安装后会自动安装好xTAG仿真器的驱动

3如何在64位Win7系统上安装运行xTIMEcomposer

2、1. 新建一个xTIMEcomposer项目,名字:1_GPIO

2. 点选Show devices in target selection,然后从下拉列表框中选择要使用的XMOS器件型号,这里选择XU208-256-QF48-C10

XMOS中的Hello World程序编写以及程序的烧写

3、下面开始针对该器件做一些简单的项目配置

1. 双击打开XU208-256-QF48-C10.xn文件,这个文件是一个XML格式的器件配置文件,由它会自动导出platform.h这个头文件,用户编程只需要引入这个头文件即可,不用关心底层器件的具体型号

2. XML文件的开头<Network>标签的属性中是一些命名空间的声明,不用修改

3. 往下<Type>标签声明这是个器件Device,器件名字在<Name>中指名

4. <Declarations>标签中证明了两项,分别是关于两个tile资源的声明,一个是XCore,另一个是usb相关的物理层资源,其中USB资源是U系列的XMOS专有的,因此这里不用修改

5. 往下,一个<package>选项卡对应于一片芯片,当前使用的这块芯片中,主要包含两个节点<Node>和一个<Link>,他们针对芯片内部的关键资源,两个Node,一个是XCore,另一个是USB的物理层。一个Link特指芯片内部的xCONNECT模块,通过这个模块可以级联多个XMOS芯片,以实现更多的逻辑核并发工作

6. 每个<Node>都会有一个id号,从0开始,Type表征这个Node的类型,比如Node0就是一个XS2-L8A-256的XCore,Node1就是一个periph:XS1-SU的USB外设

7. 这里需要为Node0指定启动设备

<Boot>

<Source Location="bootFlash" />

</Boot>

8. 并且需要在Tile标签下,声明SPI Flash的引脚具体使用了哪些

<Tile Number="0" Reference="tile[0]">

<!-- SPI Ports -->

<Port Location="XS1_PORT_1A" Name="PORT_SPI_MISO" />

<Port Location="XS1_PORT_1B" Name="PORT_SPI_SS" />

<Port Location="XS1_PORT_1C" Name="PORT_SPI_CLK" />

<Port Location="XS1_PORT_1D" Name="PORT_SPI_MOSI" />

</Tile>

9. 在JTAGChain便签之上,增加一项ExternalDevices,用来声明SPI Flash设备

<ExternalDevices>

<Device NodeId="0" Tile="0" Class="SPIFlash" Name="bootFlash">

<Attribute Name="PORT_SPI_MISO" Value="PORT_SPI_MISO" />

<Attribute Name="PORT_SPI_SS" Value="PORT_SPI_SS" />

<Attribute Name="PORT_SPI_CLK" Value="PORT_SPI_CLK" />

<Attribute Name="PORT_SPI_MOSI" Value="PORT_SPI_MOSI" />

</Device>

</ExternalDevices>

XMOS中的Hello World程序编写以及程序的烧写

XMOS中的Hello World程序编写以及程序的烧写

XMOS中的Hello World程序编写以及程序的烧写

4、双击打开Makefile,这里的Makefile是以图形界面的形式供用户添加配置的,非常友好

1. Target选项用来选择具体使用的芯片型号

2. App Name是本工程的名字

3. Used Modules是需要引用的外部IP核,IP可以是官方提供的,也可以是自己编写的,可以理解为库

4. 往下都是针对一些编译常见的选项配置,比如gcc的flag,Include的路径,Library的路径等

5. 本次工程不需要对其做任何修改

XMOS中的Hello World程序编写以及程序的烧写

5、开始编写一个简单的LED闪烁实验,打开1_GPIO.xc文件,加入以下内容,可以看到这里导入了之前提到的platform.h头文件:

#include <timer.h>

#include <platform.h>

port p = XS1_PORT_1L;

int main() {

    while (1) {

        p <: 0;

        delay_milliseconds(200);

        p <: 1;

        delay_milliseconds(200);

    }

    return 0;

}

XMOS中的Hello World程序编写以及程序的烧写

6、点击工具栏上的锤子按钮,开始编译,编译成功后会在bin目录下生成1_GPIO.xe文件

XMOS中的Hello World程序编写以及程序的烧写

XMOS中的Hello World程序编写以及程序的烧写

7、连接好xTAG和开发板,点击工具栏的运行按钮,会将程序烧写进芯片的RAM中直接运行,可以在示波器上看到,XS1_PORT_1L对应的引脚上产生一个2.5Hz的方波,即周期为400ms,这与我们程序中的内容一致

XMOS中的Hello World程序编写以及程序的烧写

XMOS中的Hello World程序编写以及程序的烧写

8、如果要将程序烧写到外置的SPI Flash中,需要在烧写的时候指定一个SPI Flash的具体配置文件。

1. 在工程中新建一个名为MX25L3235E的配置文件,在里面添加如下配置内容:

10,                     /* 1.  libflash device ID */

256,                    /* 2.  Page size */

16384,                  /* 3.  Number of pages */

3,                      /* 4.  Address size */

8,                      /* 5.  Clock divider */

0x9f,                   /* 6.  RDID cmd */

0,                      /* 7.  RDID dummy bytes */

3,                      /* 8.  RDID data size in bytes */

0xc22016,               /* 9.  RDID manufacturer ID */

0x20,                   /* 10. SE cmd */

0,                      /* 11. SE full sector erase */

0x06,                   /* 12. WREN cmd */

0x04,                   /* 13. WRDI cmd */

PROT_TYPE_SR,           /* 14. Protection type */

{{0x1c,0x0},{0,0}},     /* 15. SR protect and unprotect cmds */

0x02,                   /* 16. PP cmd */

0x0b,                   /* 17. READ cmd */

1,                      /* 18. READ dummy bytes*/

SECTOR_LAYOUT_REGULAR,  /* 19. Sector layout */

{4096,{0,{0}}},         /* 20. Sector sizes */

0x05,                   /* 21. RDSR cmd*/

0x01,                   /* 22. WRSR cmd */

0x01,                   /* 23. WIP bit mask */

2. 主要根据具体使用的SPI Flash芯片,查阅datasheet,按照格式填写好几个参数,比如页的大小(256字节),总共多少页,发送的地址最多是多少字节(3个字节),时钟需要几分频,RDID,SE,WREN,WRDI,PP,READ,RDSR,WRSR等命令具体是多少,这些都要仔细翻阅datasheet才能填写上去,不同的SPI Flash都会有所不同(至少厂家,容量会有区别)

3. 这个没有捷径,只能自己编写

XMOS中的Hello World程序编写以及程序的烧写

9、点击工具栏上的闪电按钮,配置烧写选项,选择好刚才编写的SPI Flash配置文件,然后点击Flash,开始烧写,烧写结束后会显示结果

XMOS中的Hello World程序编写以及程序的烧写

XMOS中的Hello World程序编写以及程序的烧写

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢