自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (1)
  • 收藏
  • 关注

原创 读取一行数据中第n列数据的方法

假如一行数据的格式是这样的name      score     sort        datehaha       100         1           2018.04.19这行数据位于字符串变量buf中,那么我们可以用下面方式来分别读取其中记录项 char    name[BUFSIZ],score[BUFSIZ],sort[BUFSIZ],date[BUFSIZ];sscanf(...

2018-04-19 16:29:35 992 2

原创 奇怪的C语言表达式

#define    SLIST_FOREACH_SAFE(var, head, field, tvar)            \    for ((var) = SLIST_FIRST((head));                \        (var) && ((tvar) = SLIST_NEXT((var), field), 1);        \        (

2017-10-07 16:44:19 506

原创 一种很好的登录随机退出有序的链表操作方法

前些日子写了个队列结构,用来处理多机通讯。程序架构是一主多从,同时开启的最多从机数是在程序里定义好的,从机是随机和主机建立连接。所以用了个队列来记录从机的的登录和退出。我写的那个队列方法每当有从机退出时,会进行移位操作,所幸队列不够大,否则效率是很低的。今天看到了一个很好的队列操作方法,元素的登录和退出都不会用到移位操作,效率很好,所以贴在这里#define MAX_TIMER 5

2017-09-09 14:45:53 330

原创 VS编译时MSB8012 的问题解决

这是由输出目录和链接目录的不一致造成的,解决办法是修改下面两个配置选项一致就可以了。        Project->Properties->Configuration  Properties->General->Output Directory 选择输出目录        Project->Properties->Linker->General->Output File  在这里选择和上

2017-08-04 09:10:52 676

原创 状态机跑飞的惨案

调这个nrf24l01模块差不多半个月的时间了,期间真是千难万阻,困难重重啊!每每以为调通了时候,一测试,不是发送不行了就是接收不行了,或者是时间一长就莫名其妙地断开了,再也不能自动连接上!我将发送和接收写在同一个模块里,通过模式切换信号来切换,一开始就是用使能了自动应答的方式来调试的,代码前前后后改写了个无数版本。最痛苦的是刚开始就使用Signaltap II来调试的,谁知signaltap

2017-06-13 15:01:43 1139 3

原创 state忘记设置缺省状态的悲剧

最近在调试NRF24L01的收发模块,将发送模块的控制程序设置成3个步骤,分别对应于3个状态:configue_init、data_load,irq_check,结果由于缺少熟练使用verilog的经验以及粗心的缘故,想当然地以为程序会按照设定的流程无误地运行,压根就没有想到设置状态机的缺省状态,结果苦苦调试了好几天,依然摸不着头脑眼睁睁就这么走人死胡同。直到用signaltap发现状态机并不是想

2017-06-01 17:10:10 602

原创 FPGA上电配置以及初始化

FPGA的AS配置过程主要分为3个过程:复位、配置、和初始化过程。在配置之前,还有一个POR(上电复位)过程,即一上电FPGA经过一个POR后才开始整个配置流程。而POR的时间可以控制,通过控制PORSEL引脚控制POR的时间,当PORSEL接高电平时POR的时间大约是12ms,当PORSEL接低电平时POR的时间大约是100ms。POR的时候nconfig和nstatus均为低电平,进入复位

2017-05-18 17:39:14 11031 1

原创 STA静态时序分析

特权的书上关于reg2pin静态时序的分析时写到,output dleay参数值的计算公式如下:output delay max = dd_max +tsu_ext + (cd_alt_min - cd_ext_max)output delay min = dd_min - th_ext + (cd_alt_max - cd_ext_min)而且他也用这个公式计算了一个实例,结

2017-05-17 17:21:58 1170

原创 OV7670摄像头调试

这个OV7670的摄像头是带有fifo芯片的,fifo容量大小只可以存储320*240的图像帧,存不了640*480的,而我是在VGA上显示视频,所以必须准确调好fifo读写的时序才能正确使用。这个地方花了很长的时间,从一开始没图像到出现不规整快速闪屏的画面分割的图像,然后又出现模糊的红绿色点的图片(花了一天时间才弄明白是是两字节的像素没有对齐的原因,可见我是多么的菜!)几乎每改动一点就会久问题没

2017-05-13 13:48:46 6520 1

原创 不能淡定的低级错误

这两天被自己犯的一个低级错误苦恼的寝食难安,归根结底还是自己的经验不足或者说不善于总结教训。 情况是这样的,我要在verilog中对一个数据的地址进行定位,这种情况相当于步进电机的位置控制,结果我把判断地址计算错了,比如位置是以5个脉冲为单位进行定位并进行检测的,当步进到4个单位也就是脉冲计数为20时就停止,我把结束停止计数的脉冲数计算成了18,而进行检测时的脉冲计数值只会是5*n-1这种情况

2017-04-26 11:09:19 359

原创 SD卡的驱动

这几天一直在调大容量SDHC卡的驱动,期间遇到一些问题,现在只调好一张4G容量的卡,8G容量的卡还不行。不得不感叹SD卡协议的混乱和兼容性之差。特别是命令响应这部分,看了很多文档,还是云里雾里。期间参考正点原子的SPI驱动SDHC的例子,那例子里判断CMD17的正确响应应该是0x00,然而在Verilog代码里一直不起作用,最后参考了特权的代码应该为0xfe,我查了些文档,也没查出个所以然。

2017-04-24 11:15:37 483

原创 SignalTap II的参考时钟配置

SignalTap II的逻辑信号的显示是以参考时钟的周期为精确度的,所以要显示数据变化频率比较高的信号,就要选择较高的参考时钟。例如,我在测试一个起到数据通信同步作用的fifo时使用较低的跨域时钟做参考时钟,结果较高时钟域的数据就不能完全正确地显示出来。

2017-04-15 11:21:45 4453

原创 Qurrtus ii下载以及SDRAM调试的问题

这几天一直在条sdram的驱动,总是调不通,感觉突然不好了。发现quartus ii真是奇葩,有时下载程序时,非得删了原来的.sof程序文件,重新添加新编译的.sof文件才能下载到正确的版本。可能软件用到了缓冲,频繁的更新编译使得软件有时会来不及更新内存缓冲区里的文件。

2017-04-11 09:28:52 418

原创 SDRAM

SDRAM内部结构1.逻辑Bank与芯片位宽这里主要的概念就是逻辑Bank。简单地说,SDRAM的内部就是一个存储阵列。SDRAM并不像SRAM,可以在一个Cycle内完成一个Access,SDRAM的内部就是一个存储阵列。SDRAM并不像SRAM的Access过程分做几个Command,而且通常要3——7个左右的CYCLE才能完成,我们需要执行一连串的动作才能开始读写:1.初始化RA

2017-04-08 13:35:40 2269

原创 浮点数运算

浮点运算有时候看起来有些麻烦和神秘。在C语言中这个问题尤其严重一些,因为C语言传统上并不是用来设计大量使用浮点数的程序的。大多数电脑都是用二进制来表示浮点数和整数的。例如,在十进制里,0.1是个简单、精确的小数,但是用二进制表示起来却是个循环小数0.0001100110011...。在对一些二进制中无法精确表示的小数进行赋值后再读取输出时,也就是从十进制转换成二进制再转回十进制时,你会观察到数值的

2017-04-07 11:55:29 605

原创 悠着点

最近杂事比较多,心也较浮躁,每天的睡眠严重不足,感觉整个人不在状态了,上班时脑子是灰的,下班了也不想动,什么也不想做。很多时候都是这样的,你越盼望什么最后发现几乎都会事与愿违,最后只能无奈地去接受,还要一遍遍告诫自己要心平气和。好想离开这里去休息一段时间,可又知道这种可能微乎其微,我不再是以前那个什么都不管不顾的自己了,那就像颗陀螺一样的转吧!该来的总会来,把自己的事做好就是了,保护好自己的热

2017-04-06 14:34:05 208

原创 Modelsim仿真

testbench中有这么一个任务函数://写入RAM任务task task_wr_ram;input[11:0] t_addr;input[7:0] t_data;begin@(posedge clk);forkram_wr = 1;ram_addr = t_addr;ram_din = t_data;join@(posedge clk);fo

2017-03-30 10:52:58 673

原创 往前看别回头

最终还是决定走搞软件的道路了,虽然现在做这个决定看起来有点晚,但无论如何相对于我以后的职业生涯来说,这是最早的时候。在我上学的时候,满脑子的只有人文这些东西,不屑为了谋生而把时间花费在学机械和应付考试这些事上,结果专业成绩一塌糊涂,当然我也是无所谓,我至今仍然认为那个专业根本学不到什么像样的专业知识------莫名其妙的森林工程,当初一无所知的我怎么就被那“好兄弟”一通忽悠上了这么个贼船!结果

2017-03-27 08:53:37 445

openwt开发手册

很好的关于openwrt的资料,对openwrt的开发作了详细的说明.

2015-09-10

空空如也

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

TA关注的人

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