DSP

DSP BIOS的建立(以gxv3140的davinci为例)

2019-07-13 12:00发布

 1,建立一个项目,打开CCS的dsp端编译器 Project->new 取名为gxv3140。
2,创建BIOS配置文件,选择File→New→DSP/BIOS Config,在弹出窗口中选中evmDM6446,保存为gxv3140.tcf,并把它加入工程中。
3,创建一个包含main()函数的源文件编译一下会自动产生以下四个文件:
  gxv3140cfg.h       声明配置文件中定义的一些对象,如:LOG_Obj trace; TSK_Obj TSK_task1;
  gxv3140cfg.cmd     
  gxv3140cfg.s62     汇编语言源文件
  gxv3140cfg_c.c     包含#include "gxv3140cfg.h"
  gxv3140.cdb        保存配置设置
  
4,修个配置文件,主要是三个地方要修个:1 内存分布,2 任务建立,3 定时器设置。其他的都可以不动,使用默认配置
    1,配置内存
     右键点击"MEM-Memory Section Manager",再点击"Insert MEM"添加你要的内存,我就把DDR添加进去吧。
     取名为“DDR”,一个内存就出来了,右键点击"DDR",再点击"properties",base填0x80000000吧,len选项为长度,随便填个“0x8000000”吧
     添加其他内存方法和上面一样。
    2,任务建立
     右键点击"TSK-Task Manager",再点击"Insert TSK"添加你的任务,取名为TSK_task0,
     再右键点击"TSK_task0",再点击"Properties"添加你的任务函数名_my_task0(函数名前面多加个下划线,规定),再为你的任务选个优先级吧。
     OK,一个任务建成,等一下在源文件中实现这个函数就可以,按上面的方法在建个任务,TSK_task1.函数名:_my_task1
     
    3 定时器设置
    这块没配置,系统不会工作,你的任务不会切换。
    右键点击"CLK-Clock Manager",再点击"Properties ",选“Timer 1”,取消"specify input clock rate",选中“Reset Timer TIMMODE”即可,其他的默认。
5,源文件实现3个函数:main(),my_task0(),my_task1().
   main()   系统启动前调用一起,里面可以放一些初始化的东西。
   my_task0() 实现如下
   {
   while(1){
      printf("task0 ")
      TSK_sleep(50);
    }
   }
   my_task1()的实现就不用说了,好了,编译运行下,看看多线程是怎么玩的。