自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 sizeof与strlen的区别。

sizeof(...)是运算符,它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。用sizeof来返回类型以及静态分配的对象、结构或数组所占的空间,返回值跟对象、结构、数组所存储的内容没有关系。strlen(...)是函数,要在运行时才能计算。参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化成指针了。 它的功能是:返回字符串的长度。

2014-10-13 10:09:42 522

转载 多时域设计中如何处理信号跨时域。

多时钟域的设计中,对于信号跨时域的处理这里可以采用乒乓操作的方法来进行。乒乓操作的处理流程为:输入数据流通过‘输入数据选择单元”将数据流等时分配到两个数据缓冲区,数据缓冲模块可以为任何存储模块,比较常用的存储单元为双口RAM(DPRAM)、单口RAM(SPRAM)、FIFO等。  在第1个缓冲周期,将输入的数据流缓存到“数据缓冲模块1”;  在第2个缓冲周期,通过“输入数据选择单元

2014-09-16 09:57:58 4939

转载 五大内存分区。(转自鱼C)

在C/C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。     栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。     堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在

2014-09-10 20:49:32 499

转载 什么是VSync。

VSync是垂直同期(Vertical Synchronization)的简称。基本的思路是将你的FPS和显示器的刷新率同期起来。其目的是避免一种称之为"撕裂"的现象。再下面我将详细介绍这些内容。每一台CRT显示器都有自己的刷新率。其单位是HZ.其数值是显示器每秒钟更新画面的次数。不同的显示器支持再不同分辨率下的不同刷新率。它的范围可以从低到60高到100。注意它不是你游戏中所

2014-08-08 21:42:26 2860

转载 RGB、YUV和YCbCr

之前对RGB、YUV和YCbCr一直没有清晰的理解和认识,今天打算做一个小结,结合网上的文章谈谈自己的看法,也希望有机会看到这篇文章的人能指点一二,相互交流,共同进步。    首先要说明,上述的RGB、YUV和YCbCr都是人为规定的彩色模型或颜色空间(有时也叫彩色系统或彩色空间)。它的用途是在某些标准下用通常可接受的方式对彩色加以说明。本质上,彩色模型是坐标系统和子空间的阐述。【

2014-08-07 12:38:50 483

转载 #define 与 typedef 的区别。

1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如:#define PI 3.1415926程序中的:area=PI*r*r 会替换为3.1415926*r*r如果你把#define语句中的数字9 写成字母g 预处理也照样带入。2)typedef是在编译时处理的。它在自己的作

2014-07-29 09:11:04 363

转载 malloc函数详解

一、原型:extern void *malloc(unsigned int num_bytes);头文件:#include 或 #include (注意:alloc.h 与 malloc.h 的内容是完全一致的。)功能:分配长度为num_bytes字节的内存块说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再使用时,应使用free(

2014-07-25 09:58:47 464

转载 什么是频率补偿?

1。主导思想:设法改变放大电路高频部分的开环频率特性,使高频部分衰减的更快些,即使相移180度时,满足|AF|2。实际校正做法:A。用示波器观察放大电路是否自激,如自激,观察自激频率;               B。选择校正网络的值,使RC=1/2pif0,其中f0为自激频率;               C。将RC校正网络接入高阻抗的位置;3。实质:是用一个低通

2014-07-23 09:47:17 4038

转载 视频信号的垂直消隐和水平消隐

所有的游戏机都有一个刷新动作,用来重新定位电子枪显示可见的数据。如电视机,它分为NTSC制和PAL制, NTSC制每秒刷新60次, 而PAL制每秒刷新50次。电子枪从左到右画出象素,它每次只能画一条扫描线,画下一条之前要先回到左边并做好画下一条扫描线的准备,这之间有一段时间叫做水平消隐(HBlank)。在画完全部256条扫描线之后它又回到屏幕左上角准备下一次画屏幕(帧),这之间的一段时间就

2014-07-02 17:06:11 5528 1

原创 为什么要声明静态(static)数组

在函数定义中用static声明的局部变量虽然存在於程序的整个执行期间,但是只能在函数体内访问。用static声明局部数组可避免在每次调用函数时都建立和初始化数组以及在每次退出函数时撤销数组。这样可缩短程序的执行时间,特别是在频繁调用包含大型数组的函数时。因此,如果要频繁地进入和退出包含自动数组的函数,可把该数组声明为static。

2014-06-30 10:27:50 2238

转载 Nios II 系统时钟timestamp的应用

在用Nios II做外设时序驱动的时候,经常会用延时函数。有时会常使用某个FPGA芯片和时钟,比如笔者一直使用的芯片是cyclone系列 EP2C35F484C8N,PLL输入SOPC时钟是50M。因此,提前测试硬件运行延时情况并编写今后常用的延时函数有一定的意义。软件:Quartus II 9.0, Nios II 9.0硬件配置:1、  在SOPC中调用Interval T

2014-05-22 19:13:43 2121

转载 FIFO存储深度(容量)计算

如果数据流连续不断则FIFO深度无论多少,只要读写时钟不同源同频则都会丢数;FIFO用于缓冲块数据流,一般用在写快读慢时,FIFO深度 / (写入速率 - 读出速率) = FIFO被填满时间   应大于 数据包传送时间= 数据量 / 写入速率例:A/D采样率50MHz,dsp读A/D读的速率40MHz,要不丢失地将10万个采样数据送入DSP,在A/D在和DSP之间至少加多大容量(深

2014-05-20 21:38:31 7657

原创 Quartus II中FPGA的管脚分配保存方法

一、摘要  将Quartus II中FPGA管脚的分配及保存方法做一个汇总。 二、管脚分配方法  FPGA 的管脚分配,除了在QII软件中,选择“Assignments ->Pin”标签(或者点击按钮) ,打开Pin Planner,分配管脚外,还有以下2种方法。方法一:Import Assignments步骤1:  使用记事本或类似软件新建

2014-05-16 20:29:20 744

转载 理解Avalon总线的静态地址对齐与动态地址对齐

尽管看了不少资料,但是一直对 Avalon slave 的动态地址对齐和静态地址对齐的理解不是很透彻。前两天自己做了一个SOPC的自定义组件,通过Deprecated这个选项的不同选取,一下子就理解了Avalon slave的两种地址对齐方式之间的区别。下面以Altera提供的PWM自定义外设的例子,介绍两种地址对齐方式的区别。该例子有所改动,源代码中的32-bit的接口被改成了8-bit

2014-05-16 16:26:27 1888

原创 NIOSII Slave with readdatavalid signal must support at least 1 pending read 解决方法。

NIOS // ============这算鸟解决办法,那我用SOPC builder该如何解决。在『Avalon Interface Specifications』文档中搜索相关内容,可能与maximumPendingReadTransactions有关,(文档22页,3-6)修改SOPC配置,把MaximumPendingReadTransactio

2014-05-15 20:56:44 2224

原创 const与volatile关键字的用法

const最主要的特点就是只读,有常量、常量指针,如果不是特别小心的分析C语言语句的书写格式,再加上指针的使用,就特别容易弄错。volatile关键字是一个类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问;如果不使用valatile,则编译

2014-05-12 16:37:25 1754

原创 C语言中const的用法

基本解释          const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的健壮性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。  虽然这听起来很简单,但实际上,const的使用也是c语言中一个比较微妙的地方,微妙在何处呢?请看下面几个问题。    问题:const变量 &常量  

2014-05-12 16:33:19 577 1

转载 嵌入式C语言中的volatile关键字。

/*********以下是转载《16道嵌入式C语言面试题中的一题》***********/关键字volatile有什么含意 并给出三个不同的例子。 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去 假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读 取这个变量的值,而不是使用保存在寄存器里的备份。下面是volat

2014-05-12 14:49:15 435

原创 关于STM32上电后不自动运行程序,需要按一下复位才运行。

FRAM在上电后也要进行一些内部初始化,所以在上电之后很快就对它进行操作,它可能还没有“准备好”,所以会出现有时出错的情况。一定延时之后,FRAM初始化完毕,再进行操作就不会错了。

2014-05-09 16:32:11 23869 3

转载 关于可屏蔽中断与不可屏蔽中断。

可屏蔽中断和不可屏蔽中断都属于外部中断,是由外部中断源引起的;但它们也有区别:可屏蔽中断是通过CPU的INTR引脚引入,当中断标志IF=1时允许中断,当IF=0时禁止中断,不可屏蔽中断是由NMI引脚引入,不受IF标志的影响。     不可屏蔽中断源一旦提出请求,CPU必须无条件响应,而对可屏蔽中断源的请求,CPU可以响应,也可以不响应。CPU一般设置两根中断请求输入线:可屏蔽中断请求INTR(

2014-05-07 19:10:38 13969 2

转载 ST库函数的assert_param程序的疑惑(转)

不少人问在ST官方的STM32的库函数里有很多assert_param是什么作用比如下面的assert_param(IS_ADC_ALL_PERIPH(ADCx));assert_param(IS_ADC_IT(ADC_IT));assert_param(IS_GPIO_ALL_PERIPH(GPIOx));assert_param(IS_GPIO_MODE(GPIO_Init

2014-05-07 16:21:06 842

空空如也

空空如也

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

TA关注的人

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