DspBios V542笔记(一) CSL LED测试程序1
来源:互联网 发布:php快速学习 编辑:程序博客网 时间:2024/06/11 11:57
DspBios V542笔记(一) CSL LED测试程序1:http://blog.chinaunix.net/uid-26553182-id-4051673.html
DspBios V542笔记(二) CSL LED测试程序2 :http://blog.chinaunix.net/uid-26553182-id-4051686.html
DspBios V542笔记(三) CSL LED测试程序3 :http://blog.chinaunix.net/uid-26553182-id-4051687.html
DspBios V542笔记(四)邮箱测试程序 : http://blog.chinaunix.net/uid-26553182-id-4051692.html
序:
之前都是做ARM相关的开发,由于机遇,需要做DSP C6000的开发,所以开始接触DSP。在开始应用DSP做项目之前,接触到了DSP/BIOS(V5.4以后更名为SYS/BIOS),出于兴趣爱好与好奇,开始探索一下TI的实时操作系统(其实之前就知道这实际上只是一个实时的内核)。C6000的板子,由于是自己设计的,稳定性能没有SEED的开发板强,又加上CCS经常莫名其妙的蓝屏和各种无解的BUG,因此先基于SEED-DEC5502研究一下DSP/BIOS。基于时间问题,研究深度有限,后面如果有用到项目里面,时间允许的话,会接着更新。
1、 关于DSP/BIOS
DSP/BIOS是一个用户可剪裁的实时操作系统,主要由三部分组成:多线程实时内核;实时分析工具;芯片支持库。利用实时操作系统开发程序,可以方便快速的开发复杂的DSP程序。操作系统维护调度多线程的运行,只需将定制的数字信号算法作为一个线程嵌入系统即可;芯片支持库帮助管理外设资源,复杂的外设寄存器初始化可以利用直接图形工具配置;实时分析工具可以帮助分析算法实时运行情况。
DSP/BIOS实时操作系统的图形配置界面包括:
*全局设置(System)—包括内存端设置、锁相环设置、中断向量入口设置等;
*调试工具(Instrumentation)—记录器(LOG)可以提供调试信息,但是特别针对实时操作优化;
*操作系统调度工具(Scheduling)—包括定时器、周期器、硬件中断管理、软件中断管理、任务调度、系统空载任务函数;
*同步机制(Synchronization)
—提供一般操作系统都具有的信号灯、邮箱、队列、锁四个工具;
*主机交互接口(Input/Output)
—提供DSP实时运行时与主机通过仿真口和CCS交互数据的机制;
*芯片支持库(Chip Support Library)—针对不同的DSP芯片帮助配置DSP的外设资源,最常用的有DMA、MCBSP的配置。
注意:
A、 CSL之前版本集成在图形界面配置中,DSP/BIOS V5.4.2.01已经被移出去了(具体从哪个版本开始移除,待考证)
B、 DSP/BIOS V5.4.2.01开始已经不支持CCS V4,只支持CCS V5
C、 在BIOS学习的过程中,几个手册比较重要:spru423i—>user guide等等,位置在安装目录下的docs文件夹。一定要先大致的浏览一遍
2、 DSP/BIOS基本配置
参见http://blog.chinaunix.net/uid-20620288-id-3379093.html
其他参考链接:
网友DSP学习心得:http://blog.chinaunix.net/uid/20620288/cid-165748-list-5.html
DSP/BIOS 实时性运算验证(FFT):http://blog.chinaunix.net/uid-22477616-id-1773821.html
其他有待补充
3、 一个DSP/BIOS与CSL库的例程(GPIO)
软件平台:CCS V5.4.0
硬件平台:SEED-DEC5502
说明:因为DSP/BIOS V5.4.2.01是没有集成CSL库的,所以我下载安装了一个5502的CSL(V2.31.00.7)库,我会在附件给出,也可以自己去官网下载,并安装在了bios_5_42_01_09的根目录下。工程是基于DSP/BIOS V5.4.2.01的Hello例程改写
关于如何创建一个新的DSP/BIOS V5.4.2.01例程:
A、 打开CCS V5
B、 File->New-> CCS project
C、 如附图0所示,点击finish
步骤:
A、 双击打开hello.tcf,在TSK上面右击,选择insert TSK,然后输入TSK的名称,我这里使用的是ledtask,见附图1
B、 在ledtask上面右击,选择Properties
C、 点击Function,修改Task function为_ledtaskFxn,见附图2
D、 关闭tcf配置窗口,并再修改hello.c文件为附件中内容,并在工程的Properties中将CSL库文件的路径添加进去,见附图3
E、 下载运行
注意:完成步骤E后运行会提示#35 #error NO CHIP DEFINED,解决方法为:选择工程,右击选择Properties,然后Build->C5500 Compiler->Advanced Options->Predefined Symbols中添加"CHIP_5502"
附件:
点击(此处)折叠或打开
- #include <std.h>
- #include <stdio.h>
- #include <log.h>
-
- #include "hellocfg.h"
- #include <csl.h>
- #include <csl_pll.h>
- #include <csl_chip.h>
- #include <csl_irq.h>
- #include <csl_gpt.h>
-
- void delay_vt(Int i);
- /* Define the power-off time length of LED */
- Uint16 LEDMARK = 0; // 设置指示灯的开关标志
-
- /* 通过定义宏来控制两个外围存储器映射的寄存器,从而实现对GPIO口的控制 */
- #define GPIODIR (*(volatile ioport Uint16*)(0x3400))
- #define GPIODATA (*(volatile ioport Uint16*)(0x3401))
- /*
- * ======== main ========
- */
- Void main()
- {
- LOG_printf(&trace, "hello world!");
-
- /* Config GPIO7 in order to ignite led D5*/
- GPIODIR = 0x80; // config the GPIO7 as output pin
- /* fall into DSP/BIOS idle loop */
- return;
- }
- void ledtaskFxn()
- {
- while(1)
- {
- if(LEDMARK==0)
- {
- GPIODATA = 0x00; /* 关闭指示灯D5 */
- LEDMARK = 1;
- }
- else
- {
- GPIODATA = 0x80; /* 打开指示灯D5 */
- LEDMARK = 0;
- }
- delay_vt(10000);
- }
- }
-
- void delay_vt(int i)
- {
- int a=3000,tmp,tmpi;
- for(tmp=a;tmp>0;tmp--)
- for(tmpi=i;tmpi>0;tmpi--)
- ;
- }
附图
附图0
附图1
附图2
附图3
- DspBios V542笔记(一) CSL LED测试程序1
- led驱动测试程序
- s3c6410字符设备(一)led字符驱动与测试程序
- rt-thread学习笔记(二)-LED测试程序
- stm32学习笔记(一)点亮LED
- GPIO(led灯)驱动和测试程序
- OK6410裸机程序(一)——GPIO(LED)
- IMX6Q学习笔记———编写LED驱动和测试程序以及相关管脚配置
- IMX6Q学习笔记——编写LED驱动和测试程序以及相关管脚配置
- CSL(Chip Support Library,CSL)库函数简介
- STM32学习笔记一(LED,跑马灯,呼吸灯)
- mini2440裸机程序测试第一部-LED
- 小小的led驱动和测试程序
- s3c2440- led驱动分析及其测试程序
- LED知识(一)
- led驱动(一)
- STM8S105S4_PKT学习笔记(1) LED灯
- 一、wh32开发板应用>>led程序
- C++的标准模板库STL中实现的数据结构之链表std::list的分析与使用
- PID
- WEB-INF目录与META-INF目录的作用
- Android ActionBar应用实战,高仿微信主界面的设计
- Geohash求当前区域周围8个区域编码的一种思路
- DspBios V542笔记(一) CSL LED测试程序1
- POJ_3104_Drying
- 如何了解路由器硬件信息
- Paths
- POJ 2705:跳绳游戏
- caffe源码简单解析——Blob(1)
- 最近一些程序小记
- 桥接模式(透传模式)和直驱模式
- SeekBar