CCS开发DSP综合资料一 - 图文(3)

2019-05-18 22:10

1.1 DSP/BIOS的组件构成

DSP/BIOS在一个主机/目标机环境中的组件分布如图 39所示:

图 39

? DSP/BIOS API:编写的程序可以调用API接口函数;

? DSP/BIOS配置:创建的配置文件定义了程序使用的静态BIOS对象;

? DSP/BIOS分析工具:集成在CCS上的一些BIOS分析工具可以对运行与目标设备上的程序进行监测,包括CPU负载、时间、日志、线程执行状态等。

DSP/BIOS分为很多模块,提供的所有API函数都按照模块分类,以模块名加下划线开头来命名,如图 40所示为DSP/BIOS的全部模块。

图 40

1.2 DSP/BIOS的启动顺序

当DSP/BIOS的应用程序启动时,一般遵循下面的步骤:

1) 初始化DSP:DSP/BIOS程序从C/C++环境入口c_int00开始运行。对于C6000平台,在c_int00开始处,系统栈指针(B15)和全局页指针(B14)被分别设置在堆栈断的末尾和.bss断的开始。控制寄存器AMR、IER、CSR等被初始化;

2) 初始化.bss段:当堆栈被设置完成后,初始化任务被调用,利用.cinit的记录对.bss断的变量进行初始化;

3) 调用BIOS_init初始化用到的各个模块:BIOS_init调用MOD_init对配置用到的各个模块进行初始化,包括HWI_init、HST_init、IDL_init等;

4) 处理.pinit表:.pinit表包含一些指向初始化函数的指针,对C++程序,全局对象类的创建也在此时完成;

5) 调用用户程序的main函数:用户main函数可以是C/C++函数或者汇编语言函数,对于汇编函数,使用_main的函数名。由于此时的硬件、软件中断还没有被使能,所以在用户主函数的初始化中需要注意,可以使能单独的中断屏蔽位,但是不能调用类似HWI_enable的接口来使能全局中断;

6) 调用BIOS_start启动DSP/BIOS:BIOS_start在用户main函数退出后被调用,它负责使能使用的各个模块并调用MOD_startup启动每个模块。包括CLK_startup、PIP_startup、SWI_startup、HWI_startup等。当TSK管理模块在配置中被使用时,TSK_startup被执行,并且BIOS_start将不会结束返回;

7) 执行idle循环:有两种方式进入idle循环。当TSK管理模块使能时,任务调度器运行的TSK_idle任务调用IDL_loop在其它任务空闲时进入idle循环;当TSK模块未被使用时,BIOS_start调用将返回,并执行IDL_loop进入永久的idle循环,此时硬件和软件中断可以抢占idle循环得到执行。由于idle循环中管理和主机的通信,因此主机和目标机之间的数据交互可以进行了。

1.3 DSP/BIOS的配置

DSP/BIOS的静态配置是利用CCS提供的配置工具完成,包括图形化配置工具和文本配置工具。图形化工具层次清晰,比较直观,而文本工具更加灵活。通常使用图形化的配置方法,下面对主要的模块配置做一些介绍。

1.3.1 Global Setting Properties

右键点击“Global Settings”,点击“What’s This”,会弹出帮助窗口,该文件中有Global Setting Properties的各项设置说明。下面介绍的其他如MEM、LOG等配置都可以用同样的方法得到相应的帮助。

选择弹出菜单中的“Properties”,如图 41所示。

图 41

弹出如图 42所示对话框:

图 42

一般选择默认设置即可,CLKOUT项需要根据DSP硬件单板提供的工作时钟设置,Himalaya通常运行在1GHz频率。 DSP Endian Mode 项根据实际情况设置。

1.3.2 MEM设置

MEM模块设置中可以根据具体情况设置不同的内存段,其中存在一个默认的IRAM片内内存段。需要注意的是,首先必须在IRAM段上设置一个heap段落,用于BIOS的内部使用。


CCS开发DSP综合资料一 - 图文(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2015年生物试剂现状研究及发展趋势

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: