恩智浦的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直到安装完毕。
![img](http://q5om7jw8d.bkt.clouddn.com/RT600 Get_5.PNG)
第三步,还是进入之前的下载界面并点击“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(分布式应用).下面 ...
随机推荐
-
JMeter中3种参数值的传递
小伙伴们在使用JMeter的过程中,肯定会遇到参数值传递的问题,下面来和大家总结下,在使用JMeter做压力测试的时候,常见的3种参数值的传递是怎样的. (一)从CSV文件读取要批量输入的变量 假如我 ...
-
windows7所有版本
windows7所有版本迅雷地址下载集合(含32位和64位) Windows7 SP1旗舰版 32位官方原版下载: ed2k://|file|/cn_windows_7_ultimate_with_s ...
-
【转载】关于c++中的explicit
按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示: class String { String ( const char* p ); ...
-
.net实现多重继承问题(virtual)
C#中是没有类的多重继承这个概念.要使用多重继承必须要通过接口Interface来完成, 一.接口类 interface getTable{ DataTable Getdatatable( ...
-
docker镜像文件导入与导出
工作中经常需要拉取一些国外的镜像,但是网络限制等原因在公司拉取很慢,所以我习惯用亚马逊服务器拉取镜像,导出后下载到本地再导入开发环境 1. 查看镜像id sudo docker images REPO ...
-
yii2 模块的创建及使用
yii2 模型创建可以通过gii工具创建,方便快速yii2 可以在项目的根目录创建一个modules文件夹存放各个模块,当然,每个模块里还可以再创建模块 一.直接在项目根目录创建一个模块 看截图--& ...
-
来聊一聊不low的Linux命令——find、grep、awk、sed
前几天面试,被一位面试官嫌弃了"你的Linux命令有点low".被嫌弃也挺正常的,因为我的简历写的我自己都有点看不下去:了解Linux常用命令,如ls,tail -f等命令,基本满 ...
-
java常用设计模式七:装饰模式
一.概念 装饰模式可以在不改变一个对象本身功能的基础上给对象增加额外的新行为. 基本角色: 抽象构件:它是具体构件和抽象装饰类的共同父类,声明了在具体构件中实现的业务方法,它的引入可以使客户端以一致的 ...
-
Unity使用Rider作为IDE的体验
Rider 2017.2.1比较完整的支持Unity开发. 通过添加插件代码实现了直接选择Rider作为编辑器. 支持调试. 支持双击跳转代码. Alt+Insert可以插入Unity event函数 ...
-
python第二十九课——文件读写(读取读取中文字符)
演示:读取中文字符 结论: 1).如果不设置encoding,默认使用gbk进行编解码 2).如果编码和解码不一致,最终导致报错,但是一旦设置了errors='ingore',那么就不会报错,而采取乱 ...