基于仿真器的程序加载与烧写——TMS320F2837x_tms320f28377d无法连接仿真器-程序员宅基地

技术标签: TMS320F2837x  嵌入式  仿真器  

基于仿真器的程序加载与烧写

1.查看仿真器是否安装成功

广州创龙配套多种版本的仿真器的工程仿真配置文件,均在光盘目录下"Demo\NonOS\TargetConfig\ccxml"里面的。

如下TMS320F2837x的开发,均以TL-XDS200仿真器为例。开发板断电,连接好仿真器和开发板,并将仿真器的USB口插进电脑USB插槽,开发板上电。右击计算机图标,点击“设备->通用串行总线控制器”或者“设备->端口”,查看是否有对应的仿真器的选项出现,如有说明仿真器驱动已经正常安装,否则请先正确安装CCS。

 

图 1

CCS集成开发环境自带XDS100及XDS200系列仿真器驱动。如果仿真器无法正常使用,请检查是否存在驱动冲突,XDS100系列仿真器使用FTDI芯片,请检查是否与已经安装使用FTDI的USB转串口驱动冲突,如使用XDS200仿真器,请检查计算机中是否正确安装USB转串口驱动或者尝试重新安装计算机主板芯片组驱动。

 

2.设置工程配置文件信息

请先按照相关软件安装文档安装CCS,然后打开CCS集成开发环境,点击菜单"File->New->Target Configuration File",如下图所示:

图 2

在弹出的界面中输入工程配置文件名字,然后点击Finish。如下图所示:

图 3

在弹出的对话框的"Connection"下拉框中选择对应的仿真器类型(如使用TL-XDS200仿真器请选择"Texas Instruments XDS2xx USB Onboard Debug Probe"),在"Board or Device"下拉框中选择对应的CPU型号:TMS320F2837xS,并点击保存。如果CPU是双核,请选择:TMS320F2837xD,如下图所示:

 

图 4

 

仿真器连接开发板,上电后,点击"Test Connection",测试仿真器是否连接成功。如下图所示:

图 5

 

3.加载GEL文件

GEL文件主要用于在仿真调试的过程中对CPU进行初始化,如PLL、DDR等,还可以执行一些调试操作。CCS集成开发环境自带"f2837xs.gel"文件,为默认选项,可在Advanced界面配置。

图 6

 

点击CCS菜单"Run->Debug",弹出以下类似界面,可以看到C28xx核,是可以加载GEL文件和程序镜像的。

图 7

 

右击对应的DSP核,在弹出的界面中选择"Open GEL Files View"选项,右下角会弹出"GEL Files(TMS320C28xx)"对话框。

 

图 8

 

若前面没配置,可在对话框内点击右键,在弹出的界面中选择"Load GEL"。选择对应目录下的GEL文件,再点击确定,接着右下角的"GEL Files(TMS320C28xx)"对话框会出现Success提示语句,如上图。

 

4.CCS连接开发板CPU

右击对应的DSP核,选择"Connect Target"选项,会显示Suspended状态。这说明CCS已经和开发板CPU正常连接起来了。

 

图 9

 

备注:如果此处提示"No source****"的信息,不是错误信息,可以将其忽视。

 

5.加载程序镜像文件

点击"Run->Load->Load Program",选择程序镜像文件(光盘"Demo"目录下有用于演示的LED.out文件,现象为底板LED灯被循环点亮),可选择并点击OK。接着点击绿色三角启动按键,程序即可正常运转起来。

 

图 10

 

图 11

 

6.烧写程序到FLASH

6.1烧写单核裸机程序到FLASH

CMD文件是编译完成之后链接各个目标文件时,用来指示各个数据、符号等是如何分配到各个段,以及每个段所使用的存储空间的,通过CMD文件可以实现将编译生成的.out程序烧写到FLASH。具体烧写步骤如下:

  • 添加CMD文件

右键工程点击"Add Files…",在弹出的对话框中选到"2837xS_Generic_FLASH_lnk"文件,路径为光盘"Demo\F2837xS\NonOS\F2837xS_common\cmd"目录下。

图 12

 

图 13

 

在弹出的对话框中,选择"Copy files",然后点击OK。

 

图 14

 

  • 编译程序镜像文件

先右击工程中"2837xS_Generic_RAM_lnk"文件,点击"Exclude from Build",再右击工程,点击"Build Project",即可对当前工程编译。

 

图 15

 

  • 烧写程序镜像文件

点击"Run->Load->Load Program",选择刚生成的程序镜像文件并点击OK。加载完成即烧写完成,重新上电就可以运行程序。

 

图 16

 

如果遇到烧写效果与仿真效果不一致,则有可能为例程中存在延迟函数,导致运行效果延迟较大(几百秒以上)或无法运行,解决办法如下:

请双击工程里的main.c文件,在文件里查找是否有"DELAY_US"函数,如下图:

 

图 17

图 18

 

将其注释即可。

如有,请在文件里加入外部定义和复制内存地址代码,并重新烧写,添加位置如下图。

外部定义代码:

extern Uint16 RamfuncsLoadStart;

extern Uint16 RamfuncsLoadSize;

extern Uint16 RamfuncsRunStart;

复制内存地址代码:

memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);

 

图 19

 

:如果遇到烧写不成功,请按以下流程进行操作:

  1. "Help->About CCS->Installation Details->Installed Software",搜索flash,点击"Debug Server Flash",Update更新即可。
  2. 更新完成,提示重启CCS。

重启完成后,Debug Server Flash版本会变成Debug Server Flash 6.1.0.1425。

 

6.2烧写双核裸机程序到FLASH

CMD文件是编译完成之后链接各个目标文件时,用来指示各个数据、符号等是如何分配到各个段,以及每个段所使用的存储空间的,通过CMD文件可以实现将编译生成的.out程序烧写到FLASH。

以双核工程led_flash为例,具体烧写步骤如下:

按照工程文件的导入步骤,将led_flash_cpu01和led_flash_cpu02的工程,导入到CCS的Project Explorer窗口,如图所示。

 

图 20

 

打开led_flash_cpu01的工程目录,右键点击"2837xD_RAM_lnk_cpu1.cmd",左键点击"Exclude from Build"选项。

 

图 21

 

然后,在led_flash_cpu01的工程目录下,右键点击"2837xD_FLASH_lnk_cpu1.cmd",左键点击"Exclude from Build",取消该选项。

 

图 22

 

在main.c文件的定义中,添加以下代码,如图所示:

#define _STANDALONE

#define _FLASH

#ifdef _FLASH

extern Uint16 RamfuncsLoadStart;

extern Uint16 RamfuncsLoadSize;

extern Uint16 RamfuncsRunStart;

#endif

图 23

 

在主函数中,添加以下代码,如图所示:

#ifdef _FLASH

memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);

#endif

 

#ifdef _STANDALONE

#ifdef _FLASH

 //发送 boot 命令,允许 CPU2 开始执行应用程序

IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH);

#else

// 发送 boot 命令,允许 CPU2 开始执行应用程序

IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_RAM);

#endif

#endif

 

// 片上 Flash 初始化

#ifdef _FLASH

   InitFlash();

#endif

 

图 24

 

保存修改,点击"Rebuild Project"选项,重新编译工程。

 

图 25

 

打开led_flash_cpu02的工程目录,右键点击"2837xD_RAM_lnk_cpu2.cmd",左键点击"Exclude from Build"选项。

 

图 26

 

然后,在led_flash_cpu02的工程目录下,右键点击"2837xD_FLASH_lnk_cpu2.cmd",左键点击"Exclude from Build",取消该选项。

 

图 27

 

在main.c文件的定义中,添加以下代码,如图所示:

#define _FLASH

#ifdef _FLASH

extern Uint16 RamfuncsLoadStart;

extern Uint16 RamfuncsLoadSize;

extern Uint16 RamfuncsRunStart;

#endif

 

图 28

 

在主函数中,添加以下代码,如图所示:

#ifdef _FLASH

memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);

#endif

 

// 片上 Flash 初始化

#ifdef _FLASH

   InitFlash();

#endif

 

图 29

 

保存修改,点击"Rebuild Project"选项,重新编译工程。

 

图 30

 

按照工程导入步骤,将生成的led_flash_cpu01.out和led_flash_cpu02.out文件,分别加载到CPU1和CPU2。

开发板断电,然后重新上电,就可以正常点亮,核心板上的LED流水灯。

6.3烧写双核SYSBIOS程序到FLASH

以SYSBIOS的LED工程为例。

将光盘资料的Tools目录下的"TMS320F2837xD_BIOS.cmd"文件,拷贝到对应的工程目录下。

 

图 31

 

按照工程文件的导入步骤,将光盘资料中"Demo\DSP_F2837xD\SYSBIOS\Application"路径下的LED工程,导入到CCS的Project Explorer窗口,如图所示。

图 32

打开sysbios_led的工程目录,右键点击"TMS320F2837xD.cmd",左键点击"Exclude from Build"选项。

图33

双击工程目录下的app.cfg文件。

图 34

 

点击Boot选项。

图 35

 

确认Boot配置,如图所示。

图 36

 

保存退出,右键工程,选择"Rebuild Project"选项,重新编译工程,如图所示。

 

图 37

按照工程导入步骤加载sysbios_led.out文件,然后点击程序运行按钮。

开发板断电重启,烧写到FLASH的流水灯程序,即可正常运行。

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Tronlong/article/details/108572667

智能推荐

艾美捷Epigentek DNA样品的超声能量处理方案-程序员宅基地

文章浏览阅读15次。空化气泡的大小和相应的空化能量可以通过调整完全标度的振幅水平来操纵和数字控制。通过强调超声技术中的更高通量处理和防止样品污染,Epigentek EpiSonic超声仪可以轻松集成到现有的实验室工作流程中,并且特别适合与表观遗传学和下一代应用的兼容性。Epigentek的EpiSonic已成为一种有效的剪切设备,用于在染色质免疫沉淀技术中制备染色质样品,以及用于下一代测序平台的DNA文库制备。该装置的经济性及其多重样品的能力使其成为每个实验室拥有的经济高效的工具,而不仅仅是核心设施。

11、合宙Air模块Luat开发:通过http协议获取天气信息_合宙获取天气-程序员宅基地

文章浏览阅读4.2k次,点赞3次,收藏14次。目录点击这里查看所有博文  本系列博客,理论上适用于合宙的Air202、Air268、Air720x、Air720S以及最近发布的Air720U(我还没拿到样机,应该也能支持)。  先不管支不支持,如果你用的是合宙的模块,那都不妨一试,也许会有意外收获。  我使用的是Air720SL模块,如果在其他模块上不能用,那就是底层core固件暂时还没有支持,这里的代码是没有问题的。例程仅供参考!..._合宙获取天气

EasyMesh和802.11s对比-程序员宅基地

文章浏览阅读7.7k次,点赞2次,收藏41次。1 关于meshMesh的意思是网状物,以前读书的时候,在自动化领域有传感器自组网,zigbee、蓝牙等无线方式实现各个网络节点消息通信,通过各种算法,保证整个网络中所有节点信息能经过多跳最终传递到目的地,用于数据采集。十多年过去了,在无线路由器领域又把这个mesh概念翻炒了一下,各大品牌都推出了mesh路由器,大多数是3个为一组,实现在面积较大的住宅里,增强wifi覆盖范围,智能在多热点之间切换,提升上网体验。因为节点基本上在3个以内,所以mesh的算法不必太复杂,组网形式比较简单。各厂家都自定义了组_802.11s

线程的几种状态_线程状态-程序员宅基地

文章浏览阅读5.2k次,点赞8次,收藏21次。线程的几种状态_线程状态

stack的常见用法详解_stack函数用法-程序员宅基地

文章浏览阅读4.2w次,点赞124次,收藏688次。stack翻译为栈,是STL中实现的一个后进先出的容器。要使用 stack,应先添加头文件include<stack>,并在头文件下面加上“ using namespacestd;"1. stack的定义其定义的写法和其他STL容器相同, typename可以任意基本数据类型或容器:stack<typename> name;2. stack容器内元素的访问..._stack函数用法

2018.11.16javascript课上随笔(DOM)-程序员宅基地

文章浏览阅读71次。<li> <a href = "“#”>-</a></li><li>子节点:文本节点(回车),元素节点,文本节点。不同节点树:  节点(各种类型节点)childNodes:返回子节点的所有子节点的集合,包含任何类型、元素节点(元素类型节点):child。node.getAttribute(at...

随便推点

layui.extend的一点知识 第三方模块base 路径_layui extend-程序员宅基地

文章浏览阅读3.4k次。//config的设置是全局的layui.config({ base: '/res/js/' //假设这是你存放拓展模块的根目录}).extend({ //设定模块别名 mymod: 'mymod' //如果 mymod.js 是在根目录,也可以不用设定别名 ,mod1: 'admin/mod1' //相对于上述 base 目录的子目录}); //你也可以忽略 base 设定的根目录,直接在 extend 指定路径(主要:该功能为 layui 2.2.0 新增)layui.exten_layui extend

5G云计算:5G网络的分层思想_5g分层结构-程序员宅基地

文章浏览阅读3.2k次,点赞6次,收藏13次。分层思想分层思想分层思想-1分层思想-2分层思想-2OSI七层参考模型物理层和数据链路层物理层数据链路层网络层传输层会话层表示层应用层OSI七层模型的分层结构TCP/IP协议族的组成数据封装过程数据解封装过程PDU设备与层的对应关系各层通信分层思想分层思想-1在现实生活种,我们在喝牛奶时,未必了解他的生产过程,我们所接触的或许只是从超时购买牛奶。分层思想-2平时我们在网络时也未必知道数据的传输过程我们的所考虑的就是可以传就可以,不用管他时怎么传输的分层思想-2将复杂的流程分解为几个功能_5g分层结构

基于二值化图像转GCode的单向扫描实现-程序员宅基地

文章浏览阅读191次。在激光雕刻中,单向扫描(Unidirectional Scanning)是一种雕刻技术,其中激光头只在一个方向上移动,而不是来回移动。这种移动方式主要应用于通过激光逐行扫描图像表面的过程。具体而言,单向扫描的过程通常包括以下步骤:横向移动(X轴): 激光头沿X轴方向移动到图像的一侧。纵向移动(Y轴): 激光头沿Y轴方向开始逐行移动,刻蚀图像表面。这一过程是单向的,即在每一行上激光头只在一个方向上移动。返回横向移动: 一旦一行完成,激光头返回到图像的一侧,准备进行下一行的刻蚀。

算法随笔:强连通分量-程序员宅基地

文章浏览阅读577次。强连通:在有向图G中,如果两个点u和v是互相可达的,即从u出发可以到达v,从v出发也可以到达u,则成u和v是强连通的。强连通分量:如果一个有向图G不是强连通图,那么可以把它分成躲个子图,其中每个子图的内部是强连通的,而且这些子图已经扩展到最大,不能与子图外的任一点强连通,成这样的一个“极大连通”子图是G的一个强连通分量(SCC)。强连通分量的一些性质:(1)一个点必须有出度和入度,才会与其他点强连通。(2)把一个SCC从图中挖掉,不影响其他点的强连通性。_强连通分量

Django(2)|templates模板+静态资源目录static_django templates-程序员宅基地

文章浏览阅读3.9k次,点赞5次,收藏18次。在做web开发,要给用户提供一个页面,页面包括静态页面+数据,两者结合起来就是完整的可视化的页面,django的模板系统支持这种功能,首先需要写一个静态页面,然后通过python的模板语法将数据渲染上去。1.创建一个templates目录2.配置。_django templates

linux下的GPU测试软件,Ubuntu等Linux系统显卡性能测试软件 Unigine 3D-程序员宅基地

文章浏览阅读1.7k次。Ubuntu等Linux系统显卡性能测试软件 Unigine 3DUbuntu Intel显卡驱动安装,请参考:ATI和NVIDIA显卡请在软件和更新中的附加驱动中安装。 这里推荐: 运行后,F9就可评分,已测试显卡有K2000 2GB 900+分,GT330m 1GB 340+ 分,GT620 1GB 340+ 分,四代i5核显340+ 分,还有写博客的小盒子100+ 分。relaybot@re...

推荐文章

热门文章

相关标签