C6713(一)CCS3.3,建立BIOS环境的过程/printf的输出/内核认识

一、CCS3.3,建立BIOS环境的过程

1,从Project菜单选择New,建立项目工程.prj
2,从File菜单选择New -> DSP/BIOS configuration建立.tcf文件,并保存
3,将上述.tcf文件添加到项目中
4,建立一个源文件.c,含main函数
5,编译。此时会报错。其中一个是说heap空间没有分配,一个是说没有.cmd文件。后者将.tcf文件编译生成的.cmd手工添加到项目中。前者的解决方法是,在.tcf编辑窗口里,选择MEM下的IRAM,右点属性,建立heap空间,然后在MEM条目右点属性,选择使用堆栈的MEMNULL为IRAM。
6,再次编译,通过。缺省编译配置是Debug版本。
7,上述过程并未指定链接库,甚至未指定缺省的链接库路径,比较惊奇,也比较心虚。
8,SDRAM大小的填写:使用64Mb的MT48LC2M32B2TG6填写len=8MB=0x0x00800000;使用128Mb的MT48LC4M32B2TG6填写len=16MB=0x0x01000000,长度单位是MADUs(Minimum Addressable Data Units),最小可寻址数据单元。定义为:The smallest unit of data storage that can be read or written by the CPU. For the C6000, this is an 8-bit byte. For the C5000, this is a 16-bit word. For the C28x, this is an 16-bit word。可见,对不同处理器,这个定义不一样。

二、关于printf的输出

  • puts直接将结果输出到Stdout窗口,无需头文件
  • printf函数需要引用#include ,而且不会立刻输出,需要有\n等语句排空。
// 结尾的\n是不能少的
如:printf("\nTesting is success!\n");    
  • 都说LOG_printf函数比printf速度快很多,它是依托BIOS环境的,需要引用下列头文件:
     #include 
>    #include <log.h>    
>    //并且,要在.tcf环境中添加一个LOG对象,如trace
>    extern LOG_Obj trace;    
>    main()    
>    {
>    	unsigned int sum=880;
>    	LOG_printf (&trace,"the sum = %d .\n",sum);    
>    }    
>    //运行后,在Message Log窗口中选择trace,即可显示运行结果。

三、版本变化、资料

  • TI早期的文档:
1,应用报告,SPRA772A,May 2006,DSP/BIOS Sizing Guidelines for TMS320C2000/C5000/C6000 DSPs,讲述了COFF章节,如何裁减BIOS占用空间
2,一些ROM的应用,不列举
3,DSP/BIOS Driver Developer's Guide

CCS3.3缺省安装版本bios_5_31_02。CCS3.x使用的最新BIOS版本是DSP/BIOS 5.41.10.36,兼容CCS3.3和CCS4,
下载地址: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dspbios/5_41_10_36/index_FDS.html
文档地址:http://focus.ti.com.cn/cn/docs/toolsw/folders/print/dspbios5.html

1,SPRU403R,November 2010,TMS320C6000 DSP/BIOS 5.x Application Programming Interface (API) Ref Guide, c28x和C5x有自己的API手册
2,SPRU423H,August 2009,TMS320 DSP/BIOS v5.41 User's Guide
3,SPRU007I,February 2009,DSP/BIOS 5.40 Textual Configuration (Tconf) User’s Guide

CCS4使用的是SYS/BIOS 6,最新版本SYS/BIOS 6.32.00.28,支持CCS4.X和CCS5.X。

软件下载地址: 软件下载地址:http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/bios/sysbios/
文档: SPRUEX3E,June 2010,TI SYS/BIOS Real-time Operating System v6.x User’s Guide
在线教程: http://focus.ti.com/docs/training/catalog/events/event.jhtml?sku=OLT110026

迁移手册: 1,Migrating a DSP/BIOS 5 Application to SYS/BIOS 6

BIOS时有更新升级,CCS也在不断升级,低版本需要向高版本迁移过程中,代码转换会出现一些问题,这是很麻烦的事情!

四、中文图书

1,TI DSP/BIOS用户手册与驱动开发。前一部分是上述用户手册的中文翻译,后一部分是驱动开发手册是翻译。
2,DSP系统设计和BIOS编程及应用实例——基于TMS320C67x系列DSP芯片,赵家祥,机械工业出版社。前半部分6713最小系统;4~9章讲述了BIOS用法,10章给了2个例子。这本书通俗易懂,适合初学者。

五、一些认识

1,C6713内部RAM一共256K字节,其中0X00000000-0X0002FFFF的192K字节数是内部RAM(L2),0X30000-0X3FFFF的64K字节是内部RAM/cache,即后64K字节可以配置成0/16K/32K/64K Cache,也可以都看成内部RAM。
2,基于上述定义,GEL文件中的RAM显示范围应该涵盖0X30000-0X3FFFF,缺省是不显示这一部分的,把这一部分直接当成CACHE了吧。不了解如何设置成CACHE的,貌似TCF文件里没有啊。
3,按照中文图书2的例子,测试了一些模块,包括MEM、线程管理模块HWI/SWI/PRD/TSK、线程协调同步模块SEM/MBX/QUE,到I/O传输类模块PIP/HST/SIO/DEV/RTDX这里卡住了,上述例子转换不了,也没耐心看下去了。明天去找个CCS低版本的,看看怎样弄的,把它跑起来。
4,HOOK钩子,其实与回调函数是一样的。这部分没有例子,了解的不具体。
5、C6713的模块
C6713(一)CCS3.3,建立BIOS环境的过程/printf的输出/内核认识_第1张图片

转载链接:https://blog.csdn.net/dreamofnous/article/details/51504496?biz_id=102&utm_term=6713%E5%86%85%E5%AD%98%E5%88%86%E9%85%8D&utm_medium=distribute.pc_search_result.none-task-blog-2blogsobaiduweb~default-2-51504496&spm=1018.2118.3001.4187

你可能感兴趣的:(dsp)