自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (5)
  • 收藏
  • 关注

原创 汽车常见尾标代表的含义

排量:1.5T(Turbo):排量为1.5升带涡轮增压的发动机。涡轮增压器实际上是一种空气压缩机,通过压缩空气来增加进气量。它是利用发动机排出的废气惯性冲力来推动涡轮室内的涡轮,涡轮又带动同轴的叶轮,叶轮压送由空气滤清器管道送来的空气,使之增压进入气缸。涡轮增压的主要作用就是提高发动机进气量,从而提高发动机的功率和扭矩,让车子更有劲。1.5L、1.5:发动机排量是发动机各汽缸工作容积的总和,一般用升(L)表示。而汽缸工作容积则是指活塞从上止点到下止点所扫过的气体容积,又称为单缸排量,它取决于缸径和活

2020-06-26 22:36:15 319 1

原创 C语言的内存管理

由于DSP片上资源有限,良好的内存管理有利于提升效率,这里总结一下关于C的内存管理。一、一个可执行程序在存储时(没有调入到内存)分为代码区(text)、数据区(data)和未初始化数据区(bss)3个部分。1、代码区(text):存放CPU执行的机器指令(machine instructions),通常,代码区是可共享的(即另外的执行程序可以调用它),因为对于频繁被执行的程序,只需要在内存...

2020-06-26 11:31:09 402 1

原创 4、SYS/BIOS--CLOCK

本文主要讲解SYS/BIOS的定时器模块(CLOCK)。对于定时器模块,可以设置成周期性的定时器,也可以设置为一次性的定时。如上图所示,当startFLAG为True表示立即启动而不需要调用Clock_start()来启动。Clock_create中来配置timeout,clkParams.period设置是否为周期调用,若为周期性的定时器,则会没经过period个时间重复调用Functi...

2020-06-26 11:30:41 785

原创 3、SYS/BIOS--TASK

本模块介绍SYS/BIOS中的第三种线程:TASK线程。Task线程被Task模块所管理控制,Task的优先级高于空闲循环(Idle Loop),但是低于硬件中断和软件中断。Task模块基于Task的优先级和当前执行的状态动态地调度和抢占任务。这样确保了处理器始终准备运行最高优先级的线程。Task线程拥有高达32个优先等级。默认为16,最低优先级为0,即空闲循环。这里值得注意的是,SWI和...

2020-06-26 11:30:32 1150

原创 2、SYS/BIOS--SWI

本模块主要介绍软件中断(SWI);软件中断通过调用SYS/BIOS中断API接口函数如Swi_post()来触发中断程序。SWI优先级高于任务,低于HWI。同以下API函数可以触发或者发起一个SWI:Swi_andn():当触发器值变为0时,发出(post)一个Swi对象 Swi_dec():当触发器值变为0时,发出(post)一个Swi对象 Swi_inc():在发出一个Swi对象时...

2020-06-26 11:30:23 511

原创 1、SYS/BIOS--HWI

在SYS/BIOS中,一个线程就是控制单点,它能够激活一个函数的调用,或者是激活一段中断服务程序(ISR)。SYS/BIOS中提供了一系列具有不同属性的线程,每个线程类型具有不同的优先权和执行特性,各种线程从最高优先级到最低优先级排列如下:HWI(硬件中断):包括了定时器函数 SWI(软件中断):包括了CLOCK函数 TASK(任务) IDLE(后台空闲线程)本文主要讲解SYS/BIO...

2020-06-26 11:30:12 696

原创 CCS历代版本下载地址以及6.0以上版本添加软件仿真

历代版本下载地址:http://software-dl.ti.com/ccs/esd/documents/ccs_downloads.html#code-composer-studio-version-6-downloadsCCS 6.0以上不支持软件仿真,即脱机仿真。要实现6.0以上的软件仿真,需要通过拷贝CCS5.0中软件包实现在6.0上的软件仿真1、找到CCS8安装路径,将sim...

2020-06-26 11:29:48 10038

原创 Matlab中MUSIC函数转为C语言

1.在MATLAB中自己写好封装的函数music.m后,在新建m文件编写数据输入,其中pulse0是已经产生好的数据矩阵:2.将测试矩阵pulse0.mat转为txt格式,方便后续转化为C语言的测试使用;这里需要注意矩阵转为txt是以列向量存储,因为后面C程序是通过一列一列的读取数据存储在一维数组中,因此这里应该采用先读列数据,后读行数据进行txt的写入。b为列的大小...

2020-06-26 11:29:36 516

原创 CCS加载数据到DSP指定位置

CMD文件中先指定各个段的位置,例如我们想把数组a放在evm6678l的DDR3中,通过查询手册可知,DDR3的起始地址在0x80000000处:因此才CMD文件中加:-c-heap 0x41000-stack 0xa000/* Memory Map */MEMORY{ L1PSRAM (RWX) : org = 0x0E00000, len = 0x7FFF ...

2020-06-26 11:29:05 3128

原创 EVMC6678L时钟主频配置

本文从两个方面来讲解如何配置6678的CPU:关于6678芯片时钟初始化可以利用F:\ProgramFiles\ti\ccsv8\ccs_base\emulation\boards\evmc6678l\gel 文件夹下面的GEL文件来进行初始化,在Target Configuration.ccxml下Advanced中右边Initialization script中加载6678的gel文件即可...

2020-06-26 11:28:49 1406

原创 Matlab中eig内置函数转为C语言

本文记录一下如何将MATLAB中的eig函数转为C语言,即通过C语言求解矩阵的特征值与特征向量。[V,D]=eig(Rx)中V为矩阵Rx的特征向量,D为矩阵的特征值。其中Rx维度为12*12的复矩阵。首先在MATLAB端创建入口函数保存为eigvalue.m: 打开MATLAB Coder,添加入口函数:3.在定义输入类型窗口中,需要添加输入数据来训练...

2020-06-26 11:28:38 2959

原创 1、IPC--MessageQ

本节讲解如何建立一个多核例程,并解释代码的运行结果.首先确保安装了SYS/BIOS中的IPC模块,该模块中有两个例程:MessageQ,Notify。其中MessageQ的代码文件位于F:\ProgramFiles\ti\ipc_1_25_03_15\packages\ti\sdo\ipc\examples\multicore\evm667x(需要注意的是更高版本的IPC模块在该路...

2020-06-26 11:28:23 418

原创 DSP中CMD文件理解

CMD的名称为链接命令文件(Linker Command Files),用来存放链接的配置信息,简称命令文件,CMD由三大部分组成:1、输入输出定义,2、MEMORY命令,3、SECTION命令1、输入输出的定义:通过ccs的“BuildOption”菜单设置:.obj(链接的目标文件)、.lib(链接的库文件)、.map(生成的交叉索引文件)、.out(生成的可执行代码)。2、默认C66...

2020-06-26 11:27:58 2284

原创 DSP在SYS/BIOS建立自定义Platform

本文详细介绍建立Platform的流程,Platform类似于CMD,主要是建立平台与CPU地址的绑定。对于C6678芯片其默认的平台为ti.platforms.evm6678。查看已有的平台包:1.在CCS工具栏:Project--RTSC Tools--Path下面:2.打开后显示:3.上面是寻找存储平台信息的路径,下面是所有找到的Platform建立自定义的...

2020-06-26 11:24:41 1252

原创 Visual Studio简单使用

https://visualstudio.microsoft.com/zh-hans/?rr=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DyxP6pSd0ZARXWoTyrwO5yu0z8v4PDbTW4fritURkZo40nBOTfjo5LmXEm0V2jgJB%26wd%3D%26eqid%3Db2ae9cfe0007565a000000035c7c...

2020-06-26 11:24:22 163

原创 通信常识

信噪比和比特信噪比的关系信噪比:比特信噪比:符号信噪比:是广义的信噪比,包含比特信噪比,符号信噪比等。信噪比一般定义为信号(平均)功率与噪声(平均)功率之比:S:信号功率(瓦特,即焦耳/秒):信号每个bit的能量(焦耳/比特):信号传信率(比特/秒):噪声功率(瓦特,即焦耳/秒):噪声功率谱密度(瓦特/赫兹):噪声带宽(赫兹)在dB下:(dB)...

2020-03-26 17:02:47 3899

原创 MATLAB分析频谱

根据信号的FFT计算信号频率和幅度:假设采样频率为Fs,信号频率F,采样点数为N。那么FFT之后结果就是一个为N点的复数。每一个点就对应着一个频率点。第一个点表示直流分量(即0Hz),而最后一个点N的再下一个点(实际上这个点是不存在的,这里是假设的第N+1个点,也可以看做是将第一个点分做两半分,另一半移到最后)则表示采样频率Fs。即第一个点对应0Hz,第N+1个点对应Fs。例如第n点所表示...

2020-03-26 17:02:22 7055

原创 Ubuntu18.04安装GNURadio3.8

1.系统版本为Ubuntu18.04,下载GNURadio3.8的版本,下载地址为:https://www.gnuradio.org/releases/gnuradio/。下载完成后解压。2.官网安装教程链接:https://wiki.gnuradio.org/index.php/UbuntuInstall#Building_GNU_Radio_on_Ubuntu_Linux。安装前需要安装依...

2019-08-14 14:35:46 10527 3

原创 U盘安装Ubuntu18.04

1.准备一个空U盘,以及Ubuntu的镜像文件,下载地址:https://ubuntu.com/download/desktop2.下载UltraISO安装,打开软件后将Ubuntu的镜像文件添加进来3. 点击启动-写入硬盘镜像,写入方式选择raw,之后点击写入即可。4.写入完成后将U盘插入电脑中,BIOS选择U盘启动,即可进入安装界面。5.安装完成后,先初始化设置root...

2019-08-13 15:36:44 1193

原创 11.力扣2018年常见编程题总结(数学&位运算)

1.给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1解:通过采用两两异或,可以把相同的数字变为0,留下单独存在的那个数字代码:class Solution {public: int singleNum...

2019-07-15 10:52:26 306

原创 10.力扣2018年常见编程题总结(图论)

1.给定两个单词(beginWord和endWord)和一个字典,找到从beginWord到endWord的最短转换序列的长度。转换需遵循如下规则:每次转换只能改变一个字母。 转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回 0。 所有单词具有相同的长度。 所有单词只由小写字母组成。 字典中不存在重复的单词。 你可以假设beginWor...

2019-07-09 10:23:52 463

原创 9.力扣2018年常见编程题总结(动态规划)

1.找到给定字符串(由小写字符组成)中的最长子串T,要求T中的每一字符出现次数都不少于k。输出T的长度。输入: s = "ababbc", k = 2输出: 5最长子串为 "ababb" ,其中 'a' 重复了 2 次, 'b' 重复了 3 次。解:当x字符的次数小于k时则不能最终结果包括x,因此将x分为左边和右边进行递归寻找代码:#include"pc...

2019-07-04 10:01:53 907

原创 常见排序算法:随机化快速排序算法

基本思想:在快速排序的思想上,对基数的选择采用了一个随机化的选择。1.对于递归到某一层的数组中,在该数组中随机化选择一个数字,把数组中的数字分为两部分,比该数字小的数据都放在它的左边,比该数字大的数据都放在它的右边。2.适用递归的思路对每次选出来的数字的左右两边进行排序。代码:#include <iostream>#include<time.h>usi...

2019-07-03 17:11:07 2974

原创 8.力扣2018年常见编程题总结(排序与检索)

1.给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。输入: [3,30,34,5,9] 输出: 9534330解:因为结果可能为很大,因此用string输出,需要对两两字符进行拼接并返回最大的一个,因此可以采用字符串排序来实现代码:#include<string>#include <iostream>#include<vector&g...

2019-06-27 17:01:08 293

原创 7.力扣2018年常见编程题总结(树)

1.给定一个二叉搜索树,编写一个函数kthSmallest来查找其中第k个最小的元素。解:要求找第k个最小的元素,即需要对树进行遍历排序,中序遍历元素得到的结果即为二叉搜索树的排序好的结果,因此采用中序遍历,每遍历一次都保存下父结点并且遍历k次。代码:#include <iostream>#include<queue>#include<vec...

2019-06-26 10:25:38 399

原创 6.力扣2018年常见编程题总结(哈希与映射)

1.给定一个Excel表格中的列名称,返回其相应的列序号。例如, A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28解:字符串只有一个的情况下为s[i]-'A'+1,两个字符串的情况下需要进行拆分,(s[0]-'A'+1)*26+(s[1]-'A'+1)代码:#include<string...

2019-06-25 11:30:24 380

原创 5.力扣2018年常见编程题总结(链表)

1.给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的深拷贝。解:为了实现在O(n)的时间复杂度内完成操作,可以先复制每一个结点到其后面,在复制其random指针,最后进行拆分1.复制每一个结点,并接在原始结点的后面2.根据原始结点复制random指针。3.删除奇数位置的结点,连接偶数位置的结点。代码:...

2019-06-21 11:23:38 246

原创 4.力扣2018年常见编程题总结(堆、栈和队列)

1.设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x)-- 将元素 x 推入栈中。 pop()-- 删除栈顶的元素。 top()-- 获取栈顶元素。 getMin() -- 检索栈中的最小元素解:前四个操作均可以使用stack来完成,检索最小元素,需要重新用一个新的stack来存储每次压入元素的最小值。代码:using na...

2019-06-19 16:54:44 564

原创 3.力扣2018年常见编程题总结(数组)

1.给定一个整数数组nums,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。示例 1:输入: [2,3,-2,4] 输出: 6解释:子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1] 输出: 0 解释:结果不能为 2, 因为 [-2,-1] 不是子数组。解:因为是寻找连续的最大乘积,因此想到使用for循环来记录每一层的最大值,这里...

2019-06-18 17:31:50 706

原创 2.力扣2018年常见编程题总结(字符串)

1.给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true解:首先对字符串去掉标点符号以及全部变为小写。去掉标点符号采用isalnum函数,该函数用来判断字符是否为数字或字母。将字母变为小写采用tolower函...

2019-06-14 19:13:29 798

原创 常见排序算法:桶排序算法

每一个桶(bucket)代表一个区间范围,里面可以承载一个或多个元素。桶排序的第一步,就是创建这些桶,确定每一个桶的区间范围:具体建立多少个桶,如何确定桶的区间范围,有很多不同的方式。我们这里创建的桶数量等于原始数列的元素数量,除了最后一个桶只包含数列最大值,前面各个桶的区间按照比例确定。区间跨度 = (最大值-最小值)/ (桶的数量 - 1)第二步,遍历原始数列,把元素对号入座放...

2019-06-13 11:13:07 246

原创 常见排序算法:位图排序算法

位图:用一个bit来标记某个元素对应的值,键值就是该元素。最大的好处就是节省了内存空间。应用场景:在海量数据中找出重复出现的元素或者去除重复出现的元素或者判断指定数是否在该海量数据中,例如,给40亿个未排序不重复的unsinged int的整数,判断某个数是否在这40亿的数据中,或者判断这40亿数据中哪些数是重复的。基本原理:1.给定数n,n所对应的字节位置:n/8;n所对应的位位置:...

2019-06-13 11:00:16 385

原创 1.力扣2018年常见编程题总结(入门)

1.给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。输入: [2,2,1] 输出: 1解:采用异或^操作,即相异才为1,相同为0 ,两个相同元素相与运算后为0 ,剩下的那一个元素与只出现了一次的元素一定不同,则异或后一定为只出现了一次的那个值。#include <iostream>#include<vecto...

2019-05-29 19:09:44 1077

原创 常见排序算法:计数排序算法

基本原理:根据统计待排序数组中某个数大于等于其他数的个数来确定排序后所在的位置计数排序是一种非常快捷的稳定性强的排序方法,时间复杂度O(n+k),其中n为要排序的数的个数,k为要排序的数的组大值。计数排序对一定量的整数排序时候的速度非常快,一般快于其他排序算法。但计数排序局限性比较大,只限于对整数进行排序。消耗空间复杂度来获取快捷的排序方法,其空间复杂度为O(K),K为要排序的最大值。1....

2019-05-13 11:59:32 490

原创 MATLAB连接USRP实现数据采集

本文主要针对USRP 2955设备进行数据接收。2955由X310进行封装,可以实现数据的收发。1、USRP连接电脑需要修改IP地址。USRP中的IP地址默认为192.168.10.2。因此电脑端需要修改IP地址为192.168.10.1 ,子网掩码为255.255.255.0。2、MATLAB2018中的UHD版本为3.9.7,MATLAB2019中的UHD版本为3.13。USRP官网目...

2019-05-08 19:32:31 10726 8

原创 常见排序算法:总结

排序算法比较 排序方法 最好时间 平均时间 最坏时间 空间复杂度 稳定性 备注 简单选择排序 不稳定 n小时较好 直接插入排序 稳定 大部分已有序时较好 冒泡排序 稳定 n小时较好 希尔排序 ...

2019-05-06 16:32:39 75

原创 常见排序算法:堆排序算法

基本思想:先将待排序数据化为完全二叉树,从length/2+1处开始寻找他的左/右子节点,将较大值与父节点进行交换,最后遍历到根节点处,此时根节点为所有数中的最大值,将该值与最后一个元素进行交换,length=length-1,又从父节点开始进行比较,继续寻找较大值。将找到的较大值与length-2处进行交换。依次类推。1.首先将待排序的数组元素转换为完全二叉树,根节点对于数组第一个元素...

2019-05-06 16:20:48 112

原创 常见排序算法:希尔排序算法

基本思想:对待排序的数据进行一个分组,对每个组进行插入排序,分组增量取delta=delta/3+1。每个组插入排序完成后再进行总的插入排序。原理:1.delta初始为length,进入while(delta>1)循环,获取每次的增量:delta=delta/3+1=3;即取出a[3]与a[6]。同时将a[0]作为插入排序的基本数。2.将取出的元素进行插入排序。j指向a[...

2019-05-06 16:18:38 765 5

原创 常见排序算法:快速排序算法

基本思想:先确定一个基数,一般选取数组中第一个。然后从右边开始向左边移动j,与基数进行比较,若比基数小则停止移动,并将该数赋值给左边基数处,然后从左边向右边移动i,找到比基数大的数便停止运动。此时将值赋给j处。依次类推。当j=i时停止移动。此时将基数移动到他们相等处。基数左边和右边分别重复上述过程。1.首先取数组中第一个数作为基数放在temp中,同时定义i,j两个变量分别指向第一个元素和最后一...

2019-05-06 14:48:05 213

原创 常见排序算法:归并排序算法

基本思想:先通过迭代将数组不断进行二分,最后分成每组只有一个元素,在进行合并,合并是两两元素依次比较,放入临时数组中。1.首先应对数组进行分开,通过迭代的方法每次二分数组,直到每组只剩一个元素。mid=(start+end) /2。2.对于上面左边部分,进行归并排序, 首先定义i,j两个指针,分别进行比较,当a[i]<=a[j]时,将a[i]元素放入temp中,同时自增t...

2019-05-06 14:44:31 144

ccsv5_files.rar

6.0以上版本添加软件仿真所需要的组件包,软件仿真器模式能够脱离DSP芯片,在PC机上模拟DSP的指令集和工作机制,主要用于前期算法实现和调试.

2020-04-26

MessageQ_Send_Num

利用MessageQ模块实现多核数据简单传输,将Core0的int数据传递给Core1,Core1修改该数据又回传给Core0。

2018-11-19

IPC的MessageQ与Notify例程

IPC官方例程,包换MessageQ与Notify例程,已调试成功。

2018-11-16

MUSIC算法C语言+MATLAB

music算法,通过MATLAB仿真,编译为C语言,在main函数中导入自己的数据

2018-07-13

ccs初学者教程

包括建立工程,运行程序,如何设置断点和观察窗,显示图形,如何创建自己的库工程以及剖析代码,分析函数等

2015-08-06

空空如也

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

TA关注的人

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