浅谈DSP开发创建第一个工程Hello World

  • 本教程以TI公司的TMS320F2812芯片为例进行演示

  • 开发环境搭建(CCS)

     首先开发环境问题:目前最新TI官方发布的开发环境为9.3
    

    点击查看当前最新版本

     但是值得注意的是在TI官方发布的CCS6.0以上已经取消了对软件仿真的支持
     (就是使用PC的CPU来仿真运行你的DSP代码与keil中的simulator功能类似)
     当然有小伙伴想说可以使用美观又方便的CCS5.5但是我没有在CCS5.5中
     找到F2812的软件仿真选项(当然有小伙伴找到了可以在评论区告诉我)
    

    综上所述本文采用比较LOW的CCS3.3来演示虽然有种种不便但是对软件仿真的支持还是很好的
    CCS3.3百度云路径密码:qfe0
    安装过程中如果弹出窗口中有三个按键的点最右侧的那个忽略掉即可报错就点确定(本人win10环境安装)若有出现其他情况评论区发出来

    安装完软件接下来就要安装硬件支持包(类似于STM32开发中的模块)
    TMS320F2812支持包密码:pfd8
    同样一路next就安装完成中间只有一步需要做的就是选择安装到的位置

  • CMD文件概述

    在单片机和DSP开发中最明显的区别就是这个 .cmd 文件那么这个cmd文件也是令人头痛的一件事
    那么下面我就浅谈一下CMD是什么东西(如有不对请及时在评论区指出)

    MEMORY
    {
    PAGE 0:
      PROG: origin = 0x80, length = 0xFF80
    PAGE 1:
      DATA: origin = 0x1400, length = 0xFF80  /*mmr and internal dual access scratch, RAM */
    }
    
    SECTIONS
    {
    .text   PAGE 0
    .cinit  PAGE 0
    .switch PAGE 0
    
    .bss    PAGE 1
    .const  PAGE 1
    .sysmem PAGE 1
    .stack  PAGE 1
    .ico    PAGE 1
    }
    
     由上面这段CMD文件可以看出来CMD文件必备的两个function为MEMORY和SECTIONS
     MEMORY:为对DSP的存储空间分割,看上去类似于PC上的硬盘分区
     SECTIONS:为分配各个工作模块工作在什么区域这里很重要如果分配不对就会产生类似如下的报错:
    

    CCS3.3 placement fails for object “.text”, size 0x182a (page 0).
    这句说明你的.text这个模块的工作区域太小不能满足其工作的需要所以要重新整定.text这个模块的工作区

  • 编写第一个工程Hello World

    下面我们就来实际新建我们的第一个DSP工程
    很多小伙伴应该注意到了我所给的F2812的模块安装包中有一个doc文档其中有描述如何创建工程,但是经过我实测其实创建输出Hello World的工程并不需要那么难如果要是点灯的话我觉得可以使用这个工程目录结构。
    在点灯的工程中除了要按照官方文档配置好之外还要引入在你安装目录下\C2000\cgtools\lib\C2000\cgtools\lib中的rts2800_ml.lib文件
    首先创建开发使用的防真环境:
    在这里插入图片描述
    安装后会有这两个图标我们首先要点击如图中Setup的图标
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    如图点击红框位置创建一个新的文件
    Ctrl +S保存命名为hello.c
    在这里插入图片描述
    然后右键Source ——> Add Files to Project…
    选择刚刚保存的hello.c文件加入到现在的工程中
    在这里插入图片描述
    然后再右键工程图标选择添加文件到工程
    在你模块安装的路径下\v120\DSP281x_common\cmd
    这个文件夹里面有一个F2812.cmd的文件选择打开
    在这里插入图片描述
    然后双击你的hello.c 将下面的代码粘贴进去

#include <stdio.h>
int i=2812;
int main() {
 	printf("HelloWorld!\n");
	printf("ID is %d \n",i);
	printf("欢迎来到DSP\n");
	return 0;	
}

接下来进行配置include文件
右键工程名选择Build Options…
在这里插入图片描述
在include search path中填写
模块安装目录下的\v120\DSP281x_common\include;你的模块安装目录\v120\DSP281x_headers\include
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

	此时Hello world工程创建运行就完成了
  • 概述

如果在程序编译时遇到.cmd文件中的某个模块地址没有分配只需在SCTIONS的function加入相应的名字并且分配到指定的MEMORY中定义的分区上即可,如果出现栈(stack)的错误可以尝试查看一下cmd文件或如图位置
在这里插入图片描述
这两个位置的分配区域是否太小注意这里最大是0x400

  • 若上文中有错误地方请各位及时在评论写出避免误导其他人
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值