自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(868)
  • 资源 (11)
  • 收藏
  • 关注

转载 yield( )函数的使用

yield函数在并发编程中是非常重要的一个概念,尤其在多核计算机还不是那么普及的年代,要完成一个“并发”程序,是不得不借助yield函数的。我们知道,yield的意思是“屈服、礼让”,在程序中表现为当前线程会尽量让出CPU资源来给其他线程执行,但是yield函数背后究竟发生了什么呢,我们结合线程、栈来说明函数背后是如何执行,程序是如何配合CPU来完成yield函数的。首先我们来看一个例子,...

2019-01-01 19:24:32 23148 3

转载 进程、线程、多线程相关总结

一、说说概念1、进程(process)狭义定义:进程就是一段程序的执行过程。广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。简单的来讲进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、...

2019-01-01 19:21:05 257

转载 深入理解Semaphore

使用Semaphore是计数信号量。Semaphore管理一系列许可证。每个acquire方法阻塞,直到有一个许可证可以获得然后拿走一个许可证;每个release方法增加一个许可证,这可能会释放一个阻塞的acquire方法。然而,其实并没有实际的许可证这个对象,Semaphore只是维持了一个可获得许可证的数量。Semaphore经常用于限制获取某种资源的线程数量。下面举个例子,比如说操场上...

2019-01-01 19:17:43 6138

转载 SGMII 和 Serdes 的详细说明

Serdes  : SERDES是英文SERializer(串行器)/DESerializer(解串器)的简称。它是一种时分多路复用(TDM)、点对点的通信技术,即在发送端多路低速并行信号被转换成高速串行信号,经过传输媒体(光缆或铜线),最后在接收端高速串行信号重新转换成低速并行信号。这种点对点的串行通信技术充分利用传输媒体的信道容量,减少所需的传输信道和器件引脚数目,从而大大降低通信成本。S...

2019-01-01 13:26:20 6296 1

转载 DSP320C6000的指令列表汇集

TMS320C6000产品是美国TI公司于1997年推出的dsp芯片,该DSP芯片定点、浮点兼容,其中,定点系列是TMS320C62xx系列,浮点系列是TMS320C67xx系列,2000年3月,TI发布新的C64xx内核,主频为1.1GHz,处理速度9000MIPS,在图像处理和流媒体领域得到了广泛的应用。C6000片内有8个并行的处理单元,分为相同的两组。DSP的体系结构采用超长指令字(v...

2018-12-28 13:27:40 9005

转载 如何解决C/C++中stack overflow问题

一般遇到这个问题,有两个常见的情况,一个是存在函数的递归调用,另一个是函数中定义了一个较大的数组或者别的变量。 1、在函数的递归调用中,函数中定义的局部变量所占的空间要直到递归结束才能被释放,这样函数不停的递归,堆栈早晚会被用完,解决这一问题的办法是在递归函数中每次动态的分配变量的内存,在使用结束的时候释放内存。遇到这种情况更改堆栈的最大空间大小是没有用的,要从代码的优化入手。下面以二维数组的动...

2018-12-28 13:21:50 19308

转载 C6000系列DSP的内联函数

在c中,为了解决一些频繁调用的小函数大量消耗栈空间或是叫栈内存的问题,特别的引入了inline修饰符,表示为内联函数数。栈空间就是指放置程序的局部数据也就是函数内数据的内存空间,在系统下,栈空间是有限的,假如频繁大量的使用就会造成因栈空间不足所造成的程序出错的问题,函数的死循环递归调用的最终结果就是导致栈内存空间枯竭。下面我们来看一个例子 #include <stdio.h> ...

2018-12-23 13:58:49 1739

转载 数组、结构体的初始化

   一直以来,初始化变量和数组常采用定义时赋值的方法,今天在定义一个结构体的时候发现了一些问题,查了下相关资料发现以往的使用确实有些误区,一直没有注意到,于是搜集了下零散的资料在此记录一下。 一、以往常用的初始化方式:1 int a=0; /*a初始化为0*/2 int b[10]={0}; /*b中全部元素初始化为0*/想必一直这样使用也确实不会发现问题...

2018-12-14 13:13:58 8989

转载 数组名和指针的区别

1. 己址数组和指针,都是有自己的地址的。在代码中,你可以用取地址运算符“&”来取得。程序中是:printf("%x %x\n", &pInt, &arr);2. 己值数组和指针,都是有自己的数据值的。程序中,数组arr的数据值,是arr[0]的地址;而对于指针pInt,通过pInt = arr;之后,pInt的数据值也是arr[0]的地址。但是...

2018-12-14 13:09:19 193

转载 C语言指针高级部分:void指针和数据指针

概念    void指针    数据指针void指针void指针的基本概念void的意思就是“无类型”,void指针则为“无类型指针”,void指针可以指向任何类型的数据。所以void指针一般被称为通用指针或者泛指针,或者叫做万能指针void的意思就是“无类型”,void指针则为“无类型指针”,void指针可以指向任何类型的数据。所以void指针一般被称为通用指针或者泛...

2018-12-09 21:21:11 1341

转载 指针的定义和使用

1.指针是变量,但是指针的字节长度是固定的。因为指针保存的是地址,由操作系统的位数决定,32位机的字节是4,64位机的字节是8。2.指针指向的内存空间和对应的内存空间我在这里定义了一个整型指针p保存num的地址(0x1000),num的地址就是首字节的地址,而指针p本身的地址为0x2000。下面我们来引入指针的定义:num对应的内存空间为5,指针p对应的内存空间为0x1000,指针...

2018-12-09 21:13:23 10982

转载 条件编译#ifdef的妙用详解

本文主要介绍c语言中条件编译相关的预编译指令,包括  #define、#undef、#ifdef、#ifndef、#if、#elif、#else、#endif、defined。#define            定义一个预处理宏#undef            取消宏的定义#if                   编译预处理中的条件命令,相当于C语法中的if语句#ifdef    ...

2018-12-09 21:08:39 117108 5

转载 ROM、RAM、IROM、IRAM、DRAM、SRAM、Flash介绍

1 ROM 、RAM、IROM、IRAMROM:read only memory 只读存储器ROM是指程序运行的过程中不能直接通过数据总线、地址总线进行数据的写操作,必须借助于相关的控制器接口来进行数据的写操作。ROM大部分对应着外部存储器,主要是用来存储永久性数据的,程序不能在其上运行,也不能在保存程序运行时的数据。比如硬盘、Flash(U盘、Nand、iNand、SSD)、光盘等。但...

2018-12-09 21:04:38 19689

转载 C语言中static全局变量与普通的全局变量区别

下面是中兴通讯2012校招笔试题的一道问答题:1. static全局变量与普通的全局变量有什么区别 ?  全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。  全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。  这两者的区别在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变...

2018-12-09 20:54:05 18228 1

转载 static作用(修饰函数、局部变量、全局变量)

C语言:static作用(修饰函数、局部变量、全局变量)一、 static全局变量与普通的全局变量有什么区别 ?全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。  全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。  这两者的区别在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变...

2018-12-09 20:52:50 60281 9

转载 堆(heap)与栈(stack)的区别(二)

程序的运行场所是内存,栈和堆是进程的虚拟内存中的两部分区域。当程序被执行时,程序代码,你所创建的变量、常量等都会被压入栈空间里,栈是程序代码的执行区域。栈的内存地址是连续的且被一一记录,所以说当你创建了一个变量(比如int var = 1),我们就可以通过var这个变量来访问变量的内容。在这里,var就存放在栈中,它的地址已经默认被编译器计算好了,调用过程也不需要你涉及到有关地址的操作。更直观的...

2018-11-30 22:52:19 239

转载 堆(heap)与栈(stack)的区别(一)

堆区(heap):一般由程序员分配和释放,若程序员不释放,程序结束时可能由操作系统回收,但它与数据结构中的堆不是一回事,分配方式类似于链表。 栈(stack):由编译器自动分配和释放,存函数的参数值,局部变量等,其操作方式类似于数据结构中的栈。 全局区(静态区)(static):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在块区域,未初始化的全局变量和未初始化的...

2018-11-30 22:51:32 2268

转载 CCS5中的小钥匙标志是什么意思

如果没搞错的话,应该是你对单个源文件进行了build选项的操作,小钥匙表示这个源文件跟工程中的其他文件的配置不同。    如果你不是有意为之的,那么可以通过右键该源文件->[Resource Configuration]->[Reset to default...]的方法来消除这个图标。 最后在分析,发现凡是设置过文件属性的,都会出现这个标志重启是不行的,即是将其删除,...

2018-11-18 22:54:14 2606

转载 Debug 和 Release 编译方式

Debug 和 Release 编译方式的区别本文主要包含如下内容:1. Debug 和 Release 编译方式的本质区别2. 哪些情况下 Release 版会出错3. 怎样“调试” Release 版的程序Debug 和 Release 编译方式的本质区别    Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是...

2018-11-18 22:41:42 6780

转载 VS2010相对路径与绝对路径问题

在添加外部库的时候总是会涉及相对路径的问题,这里做个总结,将需要了解的地方罗列出来: 1. 绝对路径:是从盘符开始的路径,形如C:\windows\system32\cmd.exe    另外,还有一种不包含盘符的特殊绝对路径,形如   \windows\system32\cmd.exe   无论当前路径是什么,会自动       地从当前盘的根目     录开始查找指定的程序。...

2018-11-18 21:38:16 5507

转载 DSP编程技巧---C/C++与汇编语言的交互之-使用编译器的内联函数

在C/C++与汇编语言混合编程的情况下,一般我们都会选择C/C++来实现所期待的功能。在我们用C/C++来实现某些位操作、数学运算等功能后,编译器会尽可能地把它们编译为一些已经高度优化的汇编函数(内联函数),一般情况下是一条或者多条汇编指令的集合,在封装之后,我们可以在C/C++编程的时候直接使用这样的内联函数。如果不直接使用它们,那么在单步调试的时候,也可以从C/C++代码编译生成的汇编代码中找...

2018-11-18 21:11:35 1340

转载 仿真器(emulator)和模拟器(simulator)的区别

仿真器(emulator)和模拟器(simulator)是比较容易混淆的概念,这两个概念不仅针对计算机体系结构,在很多方面都有所应用,例如航空模拟器、街机仿真器等。模拟器(simulator)是用于分析研究目标系统本身,模拟器系统本身要跟目标系统保持一致。例如飞行模拟器对于用户来讲其本身要跟真正的飞机一致;再比如gem5模拟器,其本身要跟CPU所有内部行为一致(包括内部运行原理都要一致)。好的...

2018-11-18 18:32:28 26109 1

转载 CCS5.5 中报错 Does not match the target type,not loaded 的一种情况

出现现象:在使用CCS5.5调试TMS320DM642时,代码没有任何报错,却出现不能导入出数情况,报错信息是Does not match the target type,not loaded。用的是TI公司官方下载的c64plus-imglib_2.02版本。解决办法:查阅了相关资料,发现TMS320DM642属于C64x系列,而我用的版本是C64x+系列。当时下载imglib2完全是因...

2018-11-18 18:09:28 2827 1

转载 Does not match the target endianness, not loaded.问题解决方案

“.out Does not match the target endianness,not loaded. Check build ptions, or use the setup program. ”出现上述错误,解决方案:(1)首先检查硬件检查“GP8/HD8”引脚的电位是否被拉低为“0”,如果拉低为0的话,是“big endianness”,如果为高电平为“little end...

2018-11-18 18:01:52 3077

转载 为什么不能够用unsigned 修饰 float和double

最近犯了一个错误:定义变量类型的时候竟然定义了unsigned double的类型。由于编译能够通过,因此一直没有发现这样写会有什么样的问题。今天一次偶然的测试中发现这些变量的值都是整数。一开始觉得奇怪,明明是浮点数,怎么变成整型了? 后来上网查了一下资料:原来浮点数是不能用 unsigned来规范的。unsigned 的意思就是把内存中的数据第一位也用来表示数据,而不用于表示...

2018-11-17 22:49:14 24012 6

转载 《XML实用大全》

 第1章 XML概览本章将向读者介绍XML的基本知识以及概略地解释什么是XML以及如何使用XML。还要向读者说明如何将各种不同的XML表达式组合在一起,XML文档是如何创建的并如何向人们发送这种文档。本章的主要内容包括:·         什么是XML为什么开发人员对XML感到激动 XML文档的“生命” 相关的技术1.1 什么是XMLXML代表Extensible M...

2018-11-17 22:46:18 10497

转载 DSP学习初阶的一些笔记

这些内容都是一些基础的、概述性的知识,是本人在学习、使用DSP开始阶段的一些总结,对于DSP内部结构:各个寄存器的配置使用、各种外设的详细配置、中断处理机制、内存管理以及各种编程、调试的经验,以后有空会另外贴出。一、DSP芯片概述:1、各平台:C6000平台,包含定点C62x和C64x以及浮点C67x,追求至高性能,最高达1GHz。C5000平台,TI公司推出双核处理器OMAP,包...

2018-11-17 22:42:01 21564 1

转载 TI xDAIS的深入理解

现代软件开发,已从上世纪的面向过程编程发展到当前的面向框架编程。软件开发经验已证明:框架话、模块化的开发方式可以极大的提高软件开发效率,提高代码质量及代码重用率。然而,在嵌入式编程中,由于长期缺乏完善的开发框架和可用的API,开发人员依旧利用C或汇编语言和底层硬件打交道,凡是亲力亲为,这必然会增加嵌入式开发的入门门槛,降低代码的重用性,甚至增加代码易集时的复制度(不过这些缺点,对于程序员来说确是好...

2018-11-17 21:45:41 357

转载 TI DSP的专业术语词汇

AMC  Advanced Mezzanine CardCCS  Texas Instruments Code Composer StudioCSL  Texas Instruments Chip Support LibraryDDR  Double Data RateDHCP Dynamic Host Configuration ProtocolDSP Digital Signal P...

2018-11-16 22:57:43 480

转载 基于DSP/BIOS和NDK的嵌入式网络操作系统设计方案

随着嵌入式应用的普及,嵌入式操作系统的问题日益引人关注。由于DSP代表了一类重要的嵌入式应用,以DSP为核心的嵌入式操作系统也正在成为人们研究的热点。为了对自己的DSP产品提供软件支持,TI公司发行了DSP/BIOS程序包。但是关于DSP/BIOS的定位却存在分歧。一方面,在TI的正式资料和文档中均回避把DSP/BIOS称为实时操作系统,另一方面,为了满足在DSP应用中对操作系统环境的迫切需求,T...

2018-11-16 22:53:50 655

转载 BIOS MCSDK 2.0 User Guide 示例学习

TI提供了详细的适合初学者的demo,具体见文档:BIOS MCSDK 2.0 User Guide。此文档中已经详细介绍了各个demo的编写调试流程,此处不再赘述,只简单介绍:(1)第一至第四章详细介绍了MCSDK的结构,各种组件和工具的作用。(2)第五章介绍了怎样用CCS建立一个项目,并在5.2.6给出了一个dsp加载网页的demo,在5.3给出了四个演示LED的demo,包括单核和多...

2018-11-16 22:49:59 556

转载 CCS调试常见问题

1、CCS仿真时使用SEED_XDS510PLUS问题:在使用例程仿真时,因为当时用的CCS6.2,一直没找到510的选项。方案:后来上网查资料发现,XDS510最高支持到5.5,重新下载5.5版本微笑,相关驱动可以去官网(XDS510)上下载,版本选择4.1.3above就行,下载完之后安装到CCS相关文件夹下即ccs_base文件夹下(应该是这个文件夹),插上后即可识别出,然后在工程下...

2018-11-16 22:39:35 15672

转载 CCS卸载安装过程及所遇问题

由于项目需求,要在多核DSP 6678平台上实现算法,接触CCS是在所难免的,之前在不同电脑上安装卸载CCS,过程甚是痛苦,总会出一些莫名其妙的错误,但由于安装时间有点久远,图片也未保存,只能尽可能文字描述,方便自己回忆。首先是CCS的安装:    安装包是师兄传承下来的,所以免去了下载安装包的过程;首先把含有exe的整个CCS文件夹拷贝至C盘(其实只要安装路径在C盘即可,一定要安装到C盘...

2018-11-16 22:25:17 9619 2

转载 CCS5.5里DSP工程建及Simulator模式配置

CCS5.5不仅可以用来进行Emulator仿真,还可以脱离硬件进行软件仿真(Simulator),下面介绍一下CCS5.5建立CCS工程以及配置Simulator仿真的步骤:1、打开CCS5.5,建立一个新的工程:New--》》CCS Project然后根据具体情况,配置芯片信息:2、右键我们新建立的工程,配置CCXML文件选择Texas Instruments Simulator...

2018-11-16 22:20:25 2357

转载 CCS V5 创建工程和配置软件仿真

阅读目录新建CCS项目  新建项目对话框   新建与添加文件  编译项目 项目仿真回到目录新建CCS项目选择File/New/CCS Project:回到目录 新建项目对话框回到目录1)        Project name: 指项目名称,这里要注意的项目名称不区分大小写。2)        Output type: 输出类型,Executab...

2018-11-16 22:08:44 2945

原创 CCS编译出错:缺少头文件的解决办法

问题:"../Source/DSP2833x_SysCtrl.c", line 16: fatal error #5: could not open source file "DSP2833x_Device.h"      ,在工程目录下已经在include下包括所有头文件了,编译仍然找不到头文件。 解决办法:1:将头文件拷贝到该工程文件夹目录下面。2:#include “DS...

2018-11-02 13:19:02 21311 2

转载 CCS编译添加链接库文件与头文件的方法

编译的include文件目录Compiler -》 Preprocessor-》include search path //include文件搜索路径$(Proj_dir);                                                               //注释:工程所在文件同级目录下  ../../include;              ...

2018-11-02 13:14:12 14894

转载 DSP的GEL文件介绍

gel文件中主要包含PLL, DDR的初始化,具体你可以打开gel文件看看。 在CCS环境下调试时,在load程序之前可以选择运行gel文件,这样在你的应用程序中就不需要再次进行PLL及DDR的初始化。在CCS环境下也可以不用gel文件,此时需要在程序运行起来后在应用程序中初始化PLL及DDR等,但是需要注意的是由于DDR未被初始化,所以此时的代码不能放在DDR。在脱离CCS环境调...

2018-11-02 13:10:09 7972

转载 Ti公司DSP的DSK、EVM、DDK的区别

1. DSKTI的DSP Starter kit,初学者开发套件,它是一个DSP的最简单系统,最小开发功能板,是在最小系统上的略微扩充,使初学者了解DSP系统结构的板卡。DSK是TI或TI的第三方生产的,如有需求需要从美国定货。TI公司原厂提供,所以比较贵。一般的DSP开发板都比DSK便宜,因为板子大多数是个人或其他研发公司做的,他们实现的功能一般比DSK还要强大仿真头  连接你的电脑和开...

2018-11-02 13:00:38 4125 1

转载 TMS320C6678中Hyperlink接口的理解

一、hyperlink的使用1.overview    1.DSP之间用于高速,低延迟,少管脚的通信接口,可以模拟多种当前使用的外设接口。    2.hyperlink包括数字信号和边频带控制信号。数字信号是基于serdes的,边频带信号是基于LVCMOS的。当前的hyperlink提供点对点的连接方式。2.feeatures    1.少量的pin只有26个,数据传输才用ser...

2018-10-31 13:25:48 3889

msk调制与gmsk调制

使用matlab进行仿真,编写的非常详细的msk调制与gmsk调制调制程序。这些程序是自己通过各种查资料以及在自己独立的修改下完成的有关于msk、以及gmsk信号的一些特征与性质的仿真分析。

2014-01-13

matlab仿真qpsk gmsk msk fsk qam ask

仿真了通信原理中常用到的调制技术。包括了qpsk gmsk msk fsk qam ask psk oqpsk ssb等。每种调制方式都编写了详细的调制程序。这些程序是自己做毕业设计的时候用到的,仿真结果经受住了老师的检验。因此可以保证每一个程序可以正确的运行以及得到的波形图的正确性。这些程序特别适用于那些做通信原理课程设计以及毕业设计的人。在这里将自己花了很久的时间编写的程序分享给大家,希望能够给大家一定的帮助。

2014-01-13

OFDM性能仿真

OFDM通信系统性能的仿真信道为AWGN和Rayleigh信道。仿真的软件平台是matlab

2013-06-19

qam与qpsk调制解调

QAM与QPSK的调制解调,里面还有ask,bpsk,64qam,msk的相应仿真。使用matlab进行。

2013-06-19

msk与gmsk仿真

msk与gmsk'仿真,分别用matlab进行了调制解调的仿真。

2013-06-19

物理层仿真

自己做的物理层仿真,使用到了MATLAB,并且进行了gui设计。

2013-06-19

msk与QPSK调制解调

使用matlab仿真程序实现了MSK、QPSK的调制与解调。给出了多种调制解调的方法。所有的程序能够良好的运行,并且给出了调制解调时候的波形图。可以作为研究数字调制技术的参考。

2013-06-03

msk调制解调

使用matlab仿真程序实现了FSK、MSK的调制与解调。程序能够良好的运行,并且给出了调制解调时候的波形图。可以作为研究数字调制技术的参考。

2013-06-02

GMSK与MSK调制解调

使用matlab仿真程序实现了GMSK、MSK、OQPSK、QPSK的调制与解调。程序能够良好的运行,并且给出了调制解调时候的波形图。可以作为研究数字调制技术的参考。

2013-06-02

DPSK的调制解调

基于systemview的仿真,实现了2DPSK的调制与解调。分析了其误码率性能。并且文中给出详细的仿真结果图,可以作为很好的参考。

2013-06-02

msk 的调制解调

基于matlab的msk仿真程序。里面包括了msk的正交调制的程序,以及msk相干解调的程序。并且程序中还分析了msk的功率谱,能够做出msk的调制与解调过程中的波形。

2013-04-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除