i.MX RT600之DSP调试环境搭建篇
恩智浦的i.MX RT600是跨界处理器产品,同样也是i.MX RTxxx系列的开山之作。不同于i.MX RT1xxx系列单片机,i.MX RT600 采用了双核架构,将新一代Cortex-M33内核与高性能Cadence Tensilica HiFi 4 音频DSP内核相结合,适用于32位沉浸式音频播放和视频用户界面应用。其结构框图如图所示:
i.MX RT600的Cadence Xtensa HiFi 4 Audio DSP 是一个高度优化过的音频处理器,主频高达600MHz,专门为音频信号的编码、解码以及预处理和后处理模块而设计,功能十分强大。本文主要介绍了一套完整的RT600 DSP调试平台的搭建过程。
搭建HiFi4 DSP开发环境
Xtensa Xplorer开发环境是Tensilica公司推出的HiFi DSP开发环境。首先,点击链接:https://tensilicatools.com/download/rt600-download-page/ 访问Tensilica官网。在获取Xtensa Xplorer的安装包之前,需要点击访问页面中右上角的“REGISTER / LOGIN”进行注册,在确认收到邮件并激活后,注册完毕。
接着利用新注册的账号登录后,会看到如下所示的下载界面。点击“XTENSA XPLORER IDE FOR WINDOWS”,在Windows环境下安装编译器Xtensa Xplorer。
安装时需要注意两点:
注意按照默认推荐路径进行安装,并保留已经选中的复选框。
目前Xtensa Xplorer,NXP主要支持的版本是V8.0.10版本。
安装完编译器后,下一步点击“CLICK TO GET A LICENSE KEY FOR RT600 SDK”,会有以下界面弹出。
获取License需要填写计算机连接的网络设备的MAC地址。不知道自己计算机网路信息的同学可以打开计算机CMD命令窗口,输入“ipconfig/all”进行查看,找到对应的MAC地址即可。
输入的MAC地址验证通过后,注册邮箱就会收到包含下载链接的一份邮件并进行下载。
下一步,打开安装完毕的Xtensa Xplorer开发环境,然后点击Help->Xplorer License Keys->License Options->Install Software Keys->Browse得到如图所示的界面,选中刚刚下载的license文件,然后点Finish直到安装完毕。

第三步,还是进入之前的下载界面并点击“RT600 BUILD CONFIGURATION WORKSAPCE FOR WINDOWS”。下载完毕后,在Xplorer界面点击File->Import,选择Xtensa Xplorer->Import,然后点击 Xtensa Xplorer Workspace->Next->Browse进行配置。
配置界面中,注意点击将Memory Maps选中,接着点Next,选中nxp_rt600_RI2019_newlib(RI-2019.1)后再点Finish。
最后一步,需要安装Xt-ocd(Xtensa On Chip Debugger Daemon),这是一款十分强大的Debugger工具,支持JLINK对RT600的DSP核进行单步调试。
在Xplorer默认的安装路径下找到:C:\usr\xtensa\XtDevTools\downloads\RI-2019.1\tools\xt-ocd-14.01-windows64-installer.exe,并进行安装。
安装完毕后,在其默认的安装路径下找到C:\Program Files(x86)\Tensilica\Xtensa OCD Daemon 14.0.1\topology.xml文件并进行修改。以文本模式将topology.xml打开后,使用以下这段代码将原来的代码进行覆盖替:
<configuration>
<controller id='Controller0' module='jlink' usbser='600110607' type='swd' speed='1000000'/>
<driver id='XtensaDriver0' dap='3' xdm-offset='0xc0000' module='xtensa' inst-verify='memretry' step-intr='mask,stepover,setps' />
<chain controller='Controller0'>
<tap id='TAP0' irwidth='4' />
</chain>
<system module='jtag'>
<component id='Component0' tap='TAP0' config='trax' />
</system>
<device id='Xtensa0' component='Component0' driver='XtensaDriver0' ap-sel='3' />
<application id='GDBStub' module='gdbstub' port='20000' sys-reset='0'>
<target device='Xtensa0' />
</application>
</configuration>
由于我们准备使用JLINK调试器对RT600进行debug,因此还需要将这段代码中userber=“600110607”进行修改,才能得到Xt-ocd的支持。找到Jlink调试器背后的9位序列码,对userber内容进行替换并保存。
最后打开一个安装完的Xtensa Xplorer开发环境,导入恩智浦官网SDK中Hello Word DSP demo进行编译,得到如下所示界面。图中红色方框从左到右分别依次是:当前选中的工程(hello word),DSP开发工具链(nxp_rt600_RI2019_newlib(RI-2019.1)),debug/release选择,编译。
至此,通过以上几步安装配置,RT600之DSP调试环境搭建篇介绍完毕。
i.MX RT600之DSP调试环境搭建篇的更多相关文章
- i.MX RT600之DSP开发环境调试篇
i.MX RT600的Cadence Xtensa HiFi 4 Audio DSP 是一个高度优化过的音频处理器,主频高达600MHz,专门为音频信号的编码.解码以及预处理和后处理模块而设计,功能十 ...
- Windows下Lua+Redis 断点调试环境搭建==Linux下类似
Lua+Redis 断点调试环境搭建 windows环境,使用Redis,写lua脚本头疼的问题之一不能对脚本断点调试,google加上自己的摸索,终于搞定. 1.下载ZeroBraneStudio, ...
- Solr4.8.0源码分析(4)之Eclipse Solr调试环境搭建
Solr4.8.0源码分析(4)之Eclipse Solr调试环境搭建 由于公司里的Solr调试都是用远程jpda进行的,但是家里只有一台电脑所以不能jpda进行调试,这是因为jpda的端口冲突.所以 ...
- Windebug双机调试环境搭建
Windebug双机调试环境搭建 开始进行内核编程/驱动编程的调试工作是非常烦人的,由于程序运行与内核层不受操作系统的管控,所以容易引起主机蓝屏和崩溃是常有的事.这也就使得内核程序的调试成了一大 ...
- 《天书夜读:从汇编语言到windows内核编程》四 windows内核调试环境搭建
1) 基础篇是讲理论的,先跳过去,看不到代码运行的效果要去记代码是一个痛苦的事情.这里先跳入探索篇.其实今天的确也很痛苦,这作者对驱动开发的编译与调试环境介绍得太模糊了,我是各种尝试,对这个环境的搭建 ...
- HI3518E平台ISP调试环境搭建
海思的SDK提供了ISP调试的相关工具,降低了IPC的ISP调试的难度.初次搭建ISP调试环境,记录一下. SDK版本:Hi3518_MPP_V1.0.A.0 硬件平台:HI3518E_OV9732 ...
- arm64 调试环境搭建及 ROP 实战
前言 比赛的一个 arm 64 位的 pwn 题,通过这个题实践了 arm 64 下的 rop 以及调试环境搭建的方式. 题目文件 https://gitee.com/hac425/blog_data ...
- 一步一步 Pwn RouterOS之调试环境搭建&&漏洞分析&&poc
前言 本文由 本人 首发于 先知安全技术社区: https://xianzhi.aliyun.com/forum/user/5274 本文分析 Vault 7 中泄露的 RouterOs 漏洞.漏洞影 ...
- eos源码分析和应用(一)调试环境搭建
转载自 http://www.limerence2017.com/2018/09/02/eos1/#more eos基于区块链技术实现的开源引擎,开发人员可以基于该引擎开发DAPP(分布式应用).下面 ...
随机推荐
- ListVIew中包含水平滑动控件,左右滑动时容易触发上下滑动
自定义ListView import android.content.Context;import android.util.AttributeSet;import android.view.Moti ...
- css3之渐变背景色(linear-gradient)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 一个超几何函数$_3F_2$的积分
\[\Large\displaystyle \int_0^\infty{_3F_2}\left(\begin{array}c\dfrac58,\dfrac58,\dfrac98\\\dfrac12,\ ...
- angular 输入框自动绑定值最长为16位,超过16位则会报错
最近发现angular在使用input输入框的ng-model绑定scope变量的时候,发现,输入长串的数字将会出错.代码如下: <html> <head> <meta ...
- Springboot项目搭建(3)-shiro登录
shiro简述+实现简单登录:https://www.jianshu.com/p/7f724bec3dc3
- electron-vue + element-ui构建桌面应用
最近需要用Node.js做一个桌面的应用,了解到electron可以用来做跨平台的桌面应用,而vue可以用来作为界面的解决方案,研究了一会儿如何把他们两个整合到一起使用,遇到了各种问题而放弃,毕竟作为 ...
- Hadoop 启动/停止集群和节点的命令
集群启动/停止Hadoop集群:start-all.sh stop-all.sh 1) 启动NameNode, DataNode 2) 启动JournalNode, JournalNode在hd ...
- 后台接口报500,前端获取报错详情message
最近和前端对接口的时候,前端说后台接口报500,不能获取里面的东西,然后就开始了这个研究,网上查了一些资料,发现报500里面的报错详情是可以获取的. 前端在调用接口的时候,加个catch,注意!!!这 ...
- LAMP调优
1.编译安装httpd前修改: 在安装包目录下 vim include/ap_release.h 搜索:BASEVENDOR 修改其八项隐藏curl -I http://地址 中的Server ...
- socketserver模块(实现并发)
socketserver模块(实现并发) 一.基于UDP协议实现的并发 # 服务端 import socketserver class MyServer(socketserver.BaseReques ...