导航:首页 > 源码编译 > csl库源码编译

csl库源码编译

发布时间:2022-07-29 20:20:11

❶ 各位大侠,ccs3.3安装后左边project选项,project菜单里都是灰色的,什么原因呀

如果出现Project不能使用的情况,可能是C:\Program Files\Common Files\Texas Instruments ccs_Compdb.ini文件出错。找一个安装成功的,拷贝来替换掉你的,就ok了,要保证你们的安装路径是一致的。反正我是一路默认安装的。

❷ 用CCS3.3编译连接瑞泰dm642开发板的例程,总是编译不成功 <Linking> undefined first referenced symbol i

这个错误提示有的符号未定义。把出现问题的符号在程序里搜索一遍,看是否未定义。ccs版本不同,头文件定义的符号也不同。
先确保你的例程所在目录不能包含中文字符。另外看看你的库文件是否正确添加了。

❸ C++扫雷源代码

这是字符界面的扫雷:

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <windows.h>
#include <conio.h>

// defines
#define KEY_UP 0xE048
#define KEY_DOWN 0xE050
#define KEY_LEFT 0xE04B
#define KEY_RIGHT 0xE04D
#define KEY_ESC 0x001B
#define KEY_1 '1'
#define KEY_2 '2'
#define KEY_3 '3'
#define GAME_MAX_WIDTH 100
#define GAME_MAX_HEIGHT 100

// Strings Resource
#define STR_GAMETITLE "ArrowKey:MoveCursor Key1:Open \
Key2:Mark Key3:OpenNeighbors"
#define STR_GAMEWIN "Congratulations! You Win! Thank you for playing!\n"
#define STR_GAMEOVER "Game Over, thank you for playing!\n"
#define STR_GAMEEND "Presented by yzfy . Press ESC to exit\n"

//-------------------------------------------------------------
// Base class
class CConsoleWnd
{
public:
static int TextOut(const char*);
static int GotoXY(int, int);
static int CharOut(int, int, const int);
static int TextOut(int, int, const char*);
static int GetKey();
public:
};

//{{// class CConsoleWnd
//
// int CConsoleWnd::GetKey()
// Wait for standard input and return the KeyCode
//
int CConsoleWnd::GetKey()
{
int nkey=getch(),nk=0;
if(nkey>=128||nkey==0)nk=getch();
return nk>0?nkey*256+nk:nkey;
}

//
// int CConsoleWnd::GotoXY(int x, int y)
// Move cursor to (x,y)
// Only Console Application
//
int CConsoleWnd::GotoXY(int x, int y)
{
COORD cd;
cd.X = x;cd.Y = y;
return SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),cd);
}

//
// int CConsoleWnd::TextOut(const char* pstr)
// Output a string at current position
//
int CConsoleWnd::TextOut(const char* pstr)
{
for(;*pstr;++pstr)putchar(*pstr);
return 0;
}

//
// int CConsoleWnd::CharOut(int x, int y, const int pstr)
// Output a char at (x,y)
//
int CConsoleWnd::CharOut(int x, int y, const int pstr)
{
GotoXY(x, y);
return putchar(pstr);
}

//
// int CConsoleWnd::TextOut(const char* pstr)
// Output a string at (x,y)
//
int CConsoleWnd::TextOut(int x, int y, const char* pstr)
{
GotoXY(x, y);
return TextOut(pstr);
}
//}}

//-------------------------------------------------------------
//Application class
class CSLGame:public CConsoleWnd
{
private:
private:
int curX,curY;
int poolWidth,poolHeight;
int bm_gamepool[GAME_MAX_HEIGHT+2][GAME_MAX_WIDTH+2];
public:
CSLGame():curX(0),curY(0){poolWidth=poolHeight=0;}
int InitPool(int, int, int);
int MoveCursor(){return CConsoleWnd::GotoXY(curX, curY);}
int DrawPool(int);
int WaitMessage();
int GetShowNum(int, int);
int TryOpen(int, int);
private:
int DFSShowNum(int, int);
private:
const static int GMARK_BOOM;
const static int GMARK_EMPTY;
const static int GMARK_MARK;
};
const int CSLGame::GMARK_BOOM = 0x10;
const int CSLGame::GMARK_EMPTY= 0x100;
const int CSLGame::GMARK_MARK = 0x200;

//{{// class CSLGame:public CConsoleWnd
//
// int CSLGame::InitPool(int Width, int Height, int nBoom)
// Initialize the game pool.
// If Width*Height <= nBoom, or nBoom<=0,
// or Width and Height exceed limit , then return 1
// otherwise return 0
//
int CSLGame::InitPool(int Width, int Height, int nBoom)
{
poolWidth = Width; poolHeight = Height;
if(nBoom<=0 || nBoom>=Width*Height
|| Width <=0 || Width >GAME_MAX_WIDTH
|| Height<=0 || Height>GAME_MAX_HEIGHT
){
return 1;
}
// zero memory
for(int y=0; y<=Height+1; ++y)
{
for(int x=0; x<=Width+1; ++x)
{
bm_gamepool[y][x]=0;
}
}
// init seed
srand(time(NULL));
// init Booms
while(nBoom)
{
int x = rand()%Width + 1, y = rand()%Height + 1;
if(bm_gamepool[y][x]==0)
{
bm_gamepool[y][x] = GMARK_BOOM;
--nBoom;
}
}
// init cursor position
curX = curY = 1;
MoveCursor();
return 0;
}

//
// int CSLGame::DrawPool(int bDrawBoom = 0)
// Draw game pool to Console window
//
int CSLGame::DrawPool(int bDrawBoom = 0)
{
for(int y=1;y<=poolHeight;++y)
{
CConsoleWnd::GotoXY(1, y);
for(int x=1;x<=poolWidth;++x)
{
if(bm_gamepool[y][x]==0)
{
putchar('.');
}
else if(bm_gamepool[y][x]==GMARK_EMPTY)
{
putchar(' ');
}
else if(bm_gamepool[y][x]>0 && bm_gamepool[y][x]<=8)
{
putchar('0'+bm_gamepool[y][x]);
}
else if(bDrawBoom==0 && (bm_gamepool[y][x] & GMARK_MARK))
{
putchar('#');
}
else if(bm_gamepool[y][x] & GMARK_BOOM)
{
if(bDrawBoom)
putchar('*');
else
putchar('.');
}
}
}
return 0;
}

//
// int CSLGame::GetShowNum(int x, int y)
// return ShowNum at (x, y)
//
int CSLGame::GetShowNum(int x, int y)
{
int nCount = 0;
for(int Y=-1;Y<=1;++Y)
for(int X=-1;X<=1;++X)
{
if(bm_gamepool[y+Y][x+X] & GMARK_BOOM)++nCount;
}
return nCount;
}

//
// int CSLGame::TryOpen(int x, int y)
// Try open (x, y) and show the number
// If there is a boom, then return EOF
//
int CSLGame::TryOpen(int x, int y)
{
int nRT = 0;
if(bm_gamepool[y][x] & GMARK_BOOM)
{
nRT = EOF;
}
else
{
int nCount = GetShowNum(x,y);
if(nCount==0)
{
DFSShowNum(x, y);
}
else bm_gamepool[y][x] = nCount;
}
return nRT;
}

//
// int CSLGame::DFSShowNum(int x, int y)
// Private function, no comment
//
int CSLGame::DFSShowNum(int x, int y)
{
if((0<x && x<=poolWidth) &&
(0<y && y<=poolHeight) &&
(bm_gamepool[y][x]==0))
{
int nCount = GetShowNum(x, y);
if(nCount==0)
{
bm_gamepool[y][x] = GMARK_EMPTY;
for(int Y=-1;Y<=1;++Y)
for(int X=-1;X<=1;++X)
{
DFSShowNum(x+X,y+Y);
}
}
else bm_gamepool[y][x] = nCount;
}
return 0;
}

//
// int CSLGame::WaitMessage()
// Game loop, wait and process an input message
// return: 0: not end; 1: Win; otherwise: Lose
//
int CSLGame::WaitMessage()
{
int nKey = CConsoleWnd::GetKey();
int nRT = 0, nArrow = 0;
switch (nKey)
{
case KEY_UP:
{
if(curY>1)--curY;
nArrow=1;
}break;
case KEY_DOWN:
{
if(curY<poolHeight)++curY;
nArrow=1;
}break;
case KEY_LEFT:
{
if(curX>1)--curX;
nArrow=1;
}break;
case KEY_RIGHT:
{
if(curX<poolWidth)++curX;
nArrow=1;
}break;
case KEY_1:
{
nRT = TryOpen(curX, curY);
}break;
case KEY_2:
{
if((bm_gamepool[curY][curX]
& ~(GMARK_MARK|GMARK_BOOM))==0)
{
bm_gamepool[curY][curX] ^= GMARK_MARK;
}
}break;
case KEY_3:
{
if(bm_gamepool[curY][curX] & 0xF)
{
int nb = bm_gamepool[curY][curX] & 0xF;
for(int y=-1;y<=1;++y)
for(int x=-1;x<=1;++x)
{
if(bm_gamepool[curY+y][curX+x] & GMARK_MARK)
--nb;
}
if(nb==0)
{
for(int y=-1;y<=1;++y)
for(int x=-1;x<=1;++x)
{
if((bm_gamepool[curY+y][curX+x]
& (0xF|GMARK_MARK)) == 0)
{
nRT |= TryOpen(curX+x, curY+y);
}
}
}
}
}break;
case KEY_ESC:
{
nRT = EOF;
}break;
}
if(nKey == KEY_1 || nKey == KEY_3)
{
int y=1;
for(;y<=poolHeight;++y)
{
int x=1;
for(;x<=poolWidth; ++x)
{
if(bm_gamepool[y][x]==0)break;
}
if(x<=poolWidth) break;
}
if(! (y<=poolHeight))
{
nRT = 1;
}
}
if(nArrow==0)
{
DrawPool();
}
MoveCursor();
return nRT;
}
//}}

//-------------------------------------------------------------
//{{
//
// main function
//
int main(void)
{
int x=50, y=20, b=100,n; // define width & height & n_booms
CSLGame slGame;
// Init Game
{
CConsoleWnd::GotoXY(0,0);
CConsoleWnd::TextOut(STR_GAMETITLE);
slGame.InitPool(x,y,b);
slGame.DrawPool();
slGame.MoveCursor();
}
while((n=slGame.WaitMessage())==0) // Game Message Loop
;
// End of the Game
{
slGame.DrawPool(1);
CConsoleWnd::TextOut("\n");
if(n==1)
{
CConsoleWnd::TextOut(STR_GAMEWIN);
}
else
{
CConsoleWnd::TextOut(STR_GAMEOVER);
}
CConsoleWnd::TextOut(STR_GAMEEND);
}
while(CConsoleWnd::GetKey()!=KEY_ESC)
;
return 0;
}
//}}

❹ CCS3.3编译提示cmd中提示找不到*.OBJ文件,可是debug里面明明有obj文件啊

系统找不到.obj文件,.obj文件在工程目录下的DEBUG文件夹下,所以需要在.cmd命令文件中将.obj的路径添加进去,具体就是“ DEBUG/Notes.obj”。网上找了遍,没啥对的答案,希望对后来人有帮助

❺ CCS3.3编译时提示无法创建.out文件,是怎么回事

自己找到问题了! 库路径的问题!在build option -linker在CCS2.2下的路径是 c:\ti\c6000\bios\lib\;c:\ti\c6000\cgtools\lib而在CCS3.3下的路径是 C:\CCStudio_v3.3\C6000\cgtools\lib;C:\CCStudio_v3.3\C6000\csl\lib更改后,编译正确了!!

❻ 紧急求助~~c语言程序设计~谢谢

这么大型,连代码都估计要2000多行了,
即使能编出来,说不定你的问题已过期,
即使不过期,也不一定能显示2000多行,
2000多行也太多了吧。
叫别人完成你的课程设计,你全部分给我我都不要。
既然有这题目,是否该考虑自己做做呢,如果这些也做不到,我想你三年白学了。

❼ 编译错误为缺少函数或变量怎么解决

不知道你用的是什么语言,应该是vb的一种,分析如下:
1."欢迎进入 Hide"这句话前是否有单引号注释?
2.text1,text2控件是否存在?
3.“If Text1.Text = 123 + Text2.Text = 123 Then”这句话中的判断语句看不懂,至少去掉一个等号的内容
4.“Form.csl”是什么意思,是自定义的函数吗?如没自定义,应该是不能用的东东。

❽ 用ccs编译文件后出现如下错误:

而是楼书的库有问题,“member
'csl.obj'
has
incompatible
byte
ordering”,估计是大端小端的问题,可能是该库在编译的时候所选用的便宜参数和你的project环境不同,建议楼主重新编译该该库,然后替换原来的。

❾ 用51单片机处理音频信号

介绍基于DSP和FPGA的专业级音频处理开发板资料

介绍基于DSP和FPGA的专业级音频处理开发板资料

采用TMS320C5409和Cyclone EP1C3T144C8 FPGA、作为主处理器、协处理器。采用24bit高精度音频专用AD/DA转换芯片,特别适合应用于电台、录音室等专业级音频处理设备开发。

该开发板是面向专业级音频开发而设计的硬件平台,主要集成了ALTERA的EP1C3,STC的MCU和cirrus公司的高保真度音频AD/DA,音频经AD/DA转换后的信噪比达到90dB,完全达到专业音频处理的水平。

硬件资源:

◆TMS320VC5409-100:32K字片内RAM,3个McBSP口,8bit的HPI口(支持

16bit非复用模式),支持外部总线到内部存储器的DMA操作,相对5402,5409的资

源要丰富一些,特别在多位高速音频信号处理中,外部DMA特性能使处理速度提高

很多.

◆EP1C3T144C8: 2910个LE,内置13个独立的128X36bit的RAM块,104个可用

I/O口,内置PLL. 大量的管脚和内置RAM(可做各种FIFO)为扩展专业视频接口提

供了足够的硬件资源.

◆SST39VF160/1601:2M Bytes flash芯片(1M*16bit),能容纳大量程序。 提供从该flash芯片Bootload DSP程序的例子代码。

◆Bootload SPI EEPROM CSI25256:32K*8bit,支持在线下载DSP程序,不须通过JTAG接口;

◆Sram:ISSI的IS61LV6416;64K*16bit;

◆点阵LCD接口:支持128*64的点阵屏;

◆128*64屏(绿底黑字,蓝底白字):61202或K0107芯片组;该屏为用户另选配

的器件.

◆音频AD/DA:Crystal公司的专业级音频AD/DA转换器,最高支持精度为24bit宽,

采样率为96K.综合信噪比超过90db.

◆STC89C58RD+:32K字节的单片机,为DSP提供良好和低价的用户接口,同时也为

DSP做高速信号处理节省了宝贵的时间,使DSP不必忙于做用户接口的工作.

◆预留HPI口,可方便与上位机通讯。

软件资源:

DSP定时中断的汇编程序和C语言程序;

McBSP程序;

16位并行接口的Bootload程序和实现过程;

SPI接口通过McBSP2接口Bootload的程序和过程,McBSP0配置程序;

音频频谱分析的演示程序:音频信号经FFT实时转换后送到LCD显示的目标文件;

多段均衡器设计过程的介绍;

CSL库应用的介绍;

应用CSL库进行DMA配置的介绍;

单片机相应的原代码,包括在线下载串口bootload程序的代码;

FPGA的原码;

该音频信号处理套件以高速DSP为核心信号处理器,FPGA为信号处理的协处理器,处理包括视音频时序对齐和部分硬解码过程,MCU为用户接口协处理器,实现LCD显示和键盘操作,该开发板是为专业音频信号处理度身订做的,同时它可以为静态图象处理提供廉价的开发平台.

4层PCB板设计,具有更强的抗干扰性和进一步降低了系统的噪声.

基于DSP和FPGA的专业音频处理开发板的特点:

1、 该音频处理平台的最高处理能力为96kHz,24 bits,综合信噪比达到90dB,而音频CD的极限值为44.1 kHz,16 bits,该平台的的音频处理质量要远远优于CD音频,主要用于专业音频如电台,电视台等要求较高的场合上的设备开发。

2、 使用cirrus公司性价比较高的音频处理芯片,差分输入输出,有很高的共模抑制能力,AD通道带片外运放前置驱动,DA通道带片外运放后级驱动和有源滤波,大大提高了系统的信噪比和驱动能力。

3、 该开发板源于已成功开发且量产的专业化音频处理设备,我们结合实际的开发流程,使用DSP-FPGA-MCU的设计框架,做到了用DSP做算法处理,FPGA做逻辑和时序对齐处理,MCU做用户接口。这种架构能很好的发挥DSP的高速处理性能,而不需耗费资源去管理接口,特别在跟专业视频AD/DA如SAA7114和SAA7121接口的时候,FPGA做端口操作和时序对齐就远远胜于DSP了,用户利用该系统做视频处理时,只需在FPGA中提取出有效的视频数据和开通PING和PONG两级FIFO,然后在DSP中利用DMA操作将数据PING-PONG进DSP就可以了。而EP1C3为我们提供了足够的RAM做缓冲FIFO,该功能为实际开发提供了很大方便,我们结合实际对DSP,FPGA, MCU管脚做了适当的扩充。用户可以方便地扩展自己的PCB板。

4、 该开发板提供了两种bootload方式,16bit并行flash和8bit串行EEPROM方式,提供整个bootload过程的源代码和上位机软件。串行EEPROM bootload方式提供了在线下载功能,通过计算机串口直接实现了DSP 16进制文件的烧写,省却了HPI接口bootload时对MCU重新编程的繁琐操作,同时将HPI口预留给用户使用。

5、 板上预留了点阵LCD接口,同时提供纵模LCD 12864的MCU驱动程序。音频处理类的产品一般需要一个比较大的LCD显示处理前后的音频数据信息,如输入音频的幅度波形,频谱图,处理后输出的幅度波形和频谱图等。在做均衡器处理时,通过点阵LCD,就能描出用户需要的各频段的增益曲线,这在产品开发中是非常有用的。

6、 该开发板定位在专业音频处理上,跟一般的DSP学习板有较大的区别,它提供了丰富的片级处理资源。为用户提供一个良好的二次开发平台,特别适合研究生和公司做音频或静态图像处理项目时使用。

FAQ:

1、该开发套件提供多少东西?

核心板+开关电源+音频线+串口线+开发资料光盘

2、5409相对于5402性能上有哪些改进和不同?

5409有32K*16bit片内RAM,较5402大1倍,5409有3个McBSP口,较5402多1个McBSP2口,其中McBSP2支持串行EEPROM bootload。支持非复用模式的16bit HPI接口,5402不支持。支持外部总线到内部RAM的DMA传输,5402不支持。但5409只有1个时钟Timer0,5402有2个时钟。

3、该平台做高速音频处理的依据是什么?

我们在该平台上开发过多段音频均衡器(基于IIR滤波器)和音频频谱分析及单峰干扰检测消除等项目,均取得较好的效果,只要在软件架构上做适当的配置,如利用FPGA和DSP结合做DMA数据传输通道,将DSP从数据传输中解放出来,同时关键程序使用汇编和C结合的方式编程,就能获得较高的处理性能。

4、使用串口bootload和使用并口flashrom bootload有什么优缺点?

我们提供2种方式的bootload方式的目的是让用户有更多的选择,一般在串口资源足够的话就用串口bootload方式,但5409有个问题是它只支持32k*8bit的串口EEPROM,因而当程序大于32K时就考虑用并口方式了。

5、能不能在FPGA芯片EP1C3中植入NIOS系统?

可以的,但是因为没有对EP1C3做 flashrom和sdram扩展,如果单纯在EPCS1中定制程序的话,程序容量就非常有限了。

详情请登陆 www.21control.com
=================================================================
这个是51单片机实验及实践教程,从入门到精通,附有汇编,C源程序
http://www.51kaifa.com/bbs/viewthread.php?tid=154
注册一下就可以下载

阅读全文

与csl库源码编译相关的资料

热点内容
音乐喷泉软件要什么加密狗 浏览:491
androidhttpmime 浏览:774
威科夫操盘法pdf 浏览:981
算法可以用图表表示 浏览:948
山西太原php 浏览:273
常用cmd网络命令 浏览:676
hashmap7源码分析 浏览:898
搜索引擎原理技术与系统pdf 浏览:361
运动估计算法python 浏览:860
java正则1 浏览:538
redhatlinux最新 浏览:182
python字典编程词汇 浏览:147
微信和服务器如何通讯 浏览:13
百家号服务器配置有什么用 浏览:600
怎么为电脑加密 浏览:59
服务器出现差错是什么意思 浏览:619
苹果app移到商店里怎么删掉 浏览:257
phpjsphtml 浏览:66
吃鸡手机国际服服务器超时怎么办 浏览:69
努比亚Z5无命令 浏览:642