TMS320F2837x开发例程使用手册

举报
tronlong小分队 发表于 2020/08/03 10:55:42 2020/08/03
【摘要】 基于仿真器的程序加载与烧写 查看仿真器是否安装成功广州创龙配套多种版本的仿真器的工程仿真配置文件,均在光盘目录下"Demo\NonOS\TargetConfig\ccxml"里面的。如下TMS320F2837x的开发,均以TL-XDS200仿真器为例。开发板断电,连接好仿真器和开发板,并将仿真器的USB口插进电脑USB插槽,开发板上电。右击计算机图标,点击“设备->通用串行总线控制器”或者“...

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

  •  查看仿真器是否安装成功

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

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

图 1


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


  • 设置工程配置文件信息

请先按照相关软件安装文档安装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


  • 加载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提示语句,如上图。


  • CCS连接开发板CPU

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

图 9


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


  • 加载程序镜像文件

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

图 10


图 11


  •  烧写程序到FLASH

 烧写单核裸机程序到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。


 烧写双核裸机程序到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流水灯。

 烧写双核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的流水灯程序,即可正常运行。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。