Application
Note
XMOS 入门指南
XMOS 学习手册
AN01010101
V0.00
Date: 2008/01/01
产品应用笔记
类别
关键词
摘 要
内容
广州周立功单片机科技有限公司
广州周立功单片机科技有限公司
构建混合型控制网络
ARM 嵌入式工业控制模块
修订历史
版本
V1.00
日期
2012/07/24
原因
创建文档
产品应用笔记 ©2012 Guangzhou ZLG MCU Technology Co., Ltd.
i
广州周立功单片机科技有限公司
构建混合型控制网络
ARM 嵌入式工业控制模块
销售与服务网络(一)
广州周立功单片机科技有限公司
地址:广州市天河北路 689 号光大银行大厦 12 楼 F4
邮编:510630
电话:(020)38730916 38730917 38730972 38730976 38730977
传真:(020)38730925
网址:www.zlgmcu.com
新浪微博:ZLG-周立功(http://weibo.com/ligongzhou)
广州专卖店
地址:广州市天河区新赛格电子城 203-204 室
电话:(020)87578634 87569917
传真:(020)87578842
北京周立功
地址:北京市海淀区知春路 113 号银网中心 A 座
1207-1208 室 (中发电子市场斜对面)
电话:(010)62536178 62536179 82628073
传真:(010)82614433
杭州周立功
地址:杭州市天目山路 217 号江南电子大厦 502 室
电话:(0571)89719480 89719481 89719482
89719483 89719484 89719485
传真:(0571)89719494
深圳周立功
地址:深圳市福田区深南中路 2072 号电子大厦 12
楼
电话:(0755)83781788(5 线)
传真:(0755)83793285
上海周立功
地址:上海市北京东路 668 号科技京城东楼 12E 室
电话:(021)53083452 53083453 53083496
传真:(021)53083491
厦门办事处
E-mail:sales.xiamen@zlgmcu.com
南京周立功
地址:南京市珠江路 280 号珠江大厦 1501 室
电话:(025) 68123901 68123902
传真:(025) 68123900
重庆周立功
地址:重庆市石桥铺科园一路二号大西洋国际大厦
(赛格电子市场)1611 室
电话:(023)68796438 68796439
传真:(023)68796439
成都周立功
地址:成都市一环路南二段 1 号数码科技大厦 403
室
电话:(028)85439836 85437446
传真:(028)85437896
武汉周立功
地址:武汉市洪山区广埠屯珞瑜路 158 号 12128 室
(华中电脑数码市场)
电话:(027)87168497 87168297 87168397
传真:(027)87163755
西安办事处
地址:西安市长安北路 54 号太平洋大厦 1201 室
电话:(029)87881296 83063000 87881295
传真:(029)87880865
沈阳办事处
E-mail:sales.shenyang@zlgmcu.com
产品应用笔记 ©2012 Guangzhou ZLG MCU Technology Co., Ltd.
ii
广州周立功单片机科技有限公司
构建混合型控制网络
ARM 嵌入式工业控制模块
销售与服务网络(二)
广州致远电子股份有限公司
地址:广州市天河区车陂路黄洲工业区 3 栋 2 楼
邮编:510660
传真:(020)38601859
网址:www.zlg.cn
新浪微博:ZLG-周立功(http://weibo.com/ligongzhou)
技术支持:
CAN-bus:
电话:(020)22644381 22644382 22644253
邮箱:can.support@zlg.cn
MiniARM:
电话:(020)28872684 28267813
邮箱:miniarm.support@zlg.cn
无线通讯:
电话:(020) 22644386
邮箱:wireless@zlg.cn
编程器:
电话:(020)22644371
邮箱:programmer@zlg.cn
ARM 嵌入式系统:
电话:(020) 22644383 22644384
邮箱:NXPARM@zlg.cn
iCAN 及数据采集:
电话:(020)28872344 22644373
邮箱:ican@zlg.cn
以太网:
电话:(020)22644380 22644385
邮箱:ethernet.support@zlg.cn
串行通讯:
电话:(020)28267800 22644385
邮箱:serial@zlg.cn
分析仪器:
电话:(020)22644375
邮箱:tools@zlg.cn
楼宇自动化:
电话:(020)22644376 22644389 28267806
邮箱:mjs.support@zlg.cn
mifare.support@zlg.cn
销售:
电话:(020)22644249 22644399 22644372 22644261 28872524
28872342 28872349 28872569 28872573 38601786
维修:
电话:(020)22644245
产品应用笔记 ©2012 Guangzhou ZLG MCU Technology Co., Ltd.
iii
广州周立功单片机科技有限公司
构建混合型控制网络
ARM 嵌入式工业控制模块
目 录
2.1
3.1
3.2
3.3
2.2
2.3
1.1
1.2
1.3
1.4
1.5
1. 概述...........................................................................................................................1
XMOS芯片 ...............................................................................................................1
XCore结构图 ............................................................................................................1
XC语言 .....................................................................................................................1
开发环境...................................................................................................................2
开发流程...................................................................................................................2
2. 开发环境的安装和使用...........................................................................................3
安装开发环境...........................................................................................................3
2.1.1 系统要求...............................................................................................................3
2.1.2 XDE安装过程.......................................................................................................3
如何建立工程...........................................................................................................8
2.2.1 XDE工作界面.......................................................................................................8
2.2.2 新建工程...............................................................................................................9
调试与下载(基于XK-1A).................................................................................13
2.3.1 在线调试.............................................................................................................13
2.3.2 下载程序.............................................................................................................16
3. XC语言分析与示例................................................................................................19
与C不兼容部分 ......................................................................................................19
新增关键字与运算符.............................................................................................19
3.2.1 运算符.................................................................................................................19
3.2.2 关键字.................................................................................................................20
应用实例与分析.....................................................................................................29
3.3.1 LED驱动实例.....................................................................................................29
3.3.2 UART通信实例 ..................................................................................................29
3.3.3 软件FIFO实例(实现不同线程操作同块内存) ............................................32
4. I/O的规划与使用 ....................................................................................................38
引脚(pin)与端口(port) .................................................................................38
port应用示例 ..........................................................................................................40
4.2.1 基础控制:输出高低电平.................................................................................40
4.2.2 时序port:特定时钟沿输入输出 ......................................................................40
4.2.3 带缓冲port:串并数据转换 ..............................................................................42
4.2.4 带选通port:选通信号 ......................................................................................43
4.2.5 触发条件输入port:外部事件 ..........................................................................45
特殊应用:多位port进行位操作 ..........................................................................46
5. 芯片加密(OTP).................................................................................................55
XMOS芯片加密简介 .............................................................................................55
XMOS加密后程序的运行过程 .............................................................................55
XMOS芯片加密过程与操作方法 .........................................................................55
5.3.1 加密过程简介.....................................................................................................55
5.3.2 单片加密操作步骤.............................................................................................56
5.3.3 生成批量加密文件.............................................................................................56
4.1
4.2
4.3
5.1
5.2
5.3
产品应用笔记 ©2012 Guangzhou ZLG MCU Technology Co., Ltd.
i
广州周立功单片机科技有限公司
构建混合型控制网络
ARM 嵌入式工业控制模块
1. 概述
1.1 XMOS 芯片
XMOS 在传统 MCU 顺序执行的基础上融入了 FPGA 的并发执行的思想,并且由于端口
的灵活通用,可以嵌入多种 IP 软核进行开发,使得设计过程更加简单、灵活,加入了时序
块,使 XMOS 在时序的控制上比起 MCU 更加灵活和强大。
一个 XMOS 芯片是由单个或多个 XCore 组成的,XCore 包含有一个多线程事件驱动处
理器,并且有高度整合的 I/O 端口和片上存储器。处理器通过硬件多线程能够同时运行多个
任务,并且使用特定的指令控制输入和输出端口,使得操作更加简便。单个 XCore 的线程
之间,多个 XCore 的线程之间,甚至多个芯片的线程之间,都可以通过内部高性能的切换
器来进行通信。也就是说多个芯片可以通过硬件连接成一个多核网络设备。
1.2 XCore 结构图
XCore的结构简图如图 1.1所示。
图 1.1 XCore 结构图
一个 XCore 有 8 个硬件线程,每个线程最高可达 100MHz 的时钟频率。线程与线程之
间是通过通道来传输数据。有一个高性能的通用输入输出端口,核内集成了一个 64K 的
SRAM,一个 8K 的 OTP,时钟源和一个 JTAG 接口等。
1.3 XC 语言
XMOS 的程序开发是可以使用 XC、C 以及 C++语言结合起来编写的。XC 语言具有 C
的延伸特性,增加了并发执行、I/O 以及时间的控制。所以延伸出来的特性直接对应到 XCore
的硬件资源,例如:多线程并发执行语句、输入输出端口的控制语句、通道的使用等都是
XCore 特有的硬件资源。有了这些新特性,可以避免大量调用库函数。XC 的结构能够高效
地编译成简短的指令代码,并且不受到任何死锁现象的限制。这使得程序容易编写、理解和
产品应用笔记 ©2012 Guangzhou ZLG MCU Technology Co., Ltd.
1
广州周立功单片机科技有限公司
维护。
如图 1.2所示,XC是在C的基础上开发
出来的,大部分仍然是ANSI C,只有少部分
C的功能无法使用,例如:指针、浮点、long
long类型,以及goto语句等类型。如果需要
使用这部分功能可以在C文件里实现,再加
到相应的工程里。相对的,XC增加了部分
针对XCore 特性的新功能,例如:I/O 类型
(in/out port)、定时器类型(timer)、时钟类
型(clock)以及并行语句(par)等等。
1.4 开发环境
构建混合型控制网络
ARM 嵌入式工业控制模块
XMOS 公 司 推 出 的 XDE (XMOS
图 1.2 XC 与 C
Development Environment),是专门针对 XMOS 设备以及 XC 所开发出来的一个开发环境。
它包括编译器,仿真器,调试器,和一个静态时序分析器。XDE 是基于行业标准平台设计
出来的,并且可以使用 C,C++,或 XC 语言混合编写程序。
1.5 开发流程
XMOS整个的开发流程如图 1.3所示。
图 1.3 XMOS 开发流程
使用 C、C++和 XC 语言进行程序开发,编译成所需二进制文件,在 XDE 上进行仿真
调试、时序检测,通过 XTAG 在硬件上进行在线调试,也可使用 XCope 工具进行信号采样。
最后将生成的二进制文件下载到硬件 Flash 上。
产品应用笔记 ©2012 Guangzhou ZLG MCU Technology Co., Ltd.
2
广州周立功单片机科技有限公司
构建混合型控制网络
ARM 嵌入式工业控制模块
2. 开发环境的安装和使用
2.1 安装开发环境
2.1.1 系统要求
XMOS工具套件是官方提供的一个专业开发平台,操作系统版本要求如表格 2.1所示。
表格 2.1 系统要求
系统版本
系统要求
Windows XP SP3
Windows 7 SP1
Mac OS X 10.5+
Linux CentOS 5
32-bit with 32-bit JRE
32-bit with 32-bit JRE
64-bit with 32-bit JRE
Intel Processors
32-bit with 32-bit JRE
64-bit with 64-bit JRE
开发套件也可以在 Linux 的其他一些版本运行,例如:RedHat 和 Ubuntu。
开发工具的最新信息可以在http://www.xmos.com/tools查看到。
在系统上同时必须安装上Java Runtime Environment(JRE) 1.5 或 1.5 以上版本,Java
Runtime Environment(JRE)可以在http://java.sun.com/javase/download下载到。
2.1.2 XDE 安装过程
1. 从 http://www.xmos.com/tools 下 载 到Desktop-Tools-(Windows)(11[1].11.0).exe 或 是
更高的版本,本文档所有涉及开发环境的地方都是以版本号为 11.11.0 的XDE为标准的。双
击已下载的Desktop-Tools-(Windows)(11[1].11.0).exe进行安装。此时弹出安装开始界面,点击
Next。
产品应用笔记 ©2012 Guangzhou ZLG MCU Technology Co., Ltd.
3