摘要: 心里一直对传说中的Linux有种向往,曾经在没太了解Linux的情况下,凭着一些安装教程自己动手,结局是悲剧性的。虽然逢此一难,对Linux的热情却是更盛,于是便看了前几章《鸟哥的私房菜》。鉴于上次的悲剧和盘里的资料,所以用VM装了个Fedora,虽一切正常,可是总觉得有些怪。再说,机子运行虚拟机时的内存消耗让人心痛,再在里头运行个桌面版的Linux,还有什么体验可谈呢?后来呢,后来也没怎么弄啦,但心里还一直惦记着这件没完成的事情。最近在网上了淘了一个移动硬盘,拷了所有的资料,准备了此一愿。也不是闲得无聊,而是心里有种冲动。写这些文字纯粹是为了记录安装过程中遇到的问题和一些使用体验。初衷是为了 阅读全文
posted @ 2012-09-06 22:17 陈小硕 阅读(2760) 评论(10) 推荐(2) 编辑
摘要: 折腾了几天Emacs,配置过程实在是很繁琐,对于一个新手来说,Lisp就已经是天文啦。本来想放弃了,因为这个配置过程实在是浪费时间。当回到Windows下频繁的鼠标操作时,我想我还是继续配置好了。这里主要记录一下配置过程中我所遇到的问题吧。平台:win7软件版本:emacs-23.2(windows)、cedet1.1、ecb-2.40emacs的安装过程遍地都是,cedet和ecb这两个插件的安装与配置的说明文档也有很多。需要注意的是:1、这个版本的emacs自带cedet,所以安装是先要删除掉;2、还有就是,需要先安装好cedet,才能安装ecb。具体步骤请参考:Emacs中文网。(根据这 阅读全文
posted @ 2012-06-09 15:17 陈小硕 阅读(1176) 评论(1) 推荐(0) 编辑
摘要: 从会敲代码开始,我们就知道编译器的重要性,没有这东西,我们的代码就是一堆字符而已。而编译器编译程序的步骤主要有四个——预处理、编译、汇编和链接,最后得到可执行的目标文件。四个步骤各自的工作会是怎么样的呢?不知为何,对这个东西有了点兴趣。以GCC为例,主要工作是这样的:预处理阶段会调用cpp,编译阶段会调用cc得到汇编程序,汇编阶段调用as得到目标代码,链接时调用链接程序ld 得到可执行文件。由于四个步骤(其实本质上就是四个可执行代码)早就被编译器打包,一并替我们打理了,我们的工作是轻松了,对于这几个过程究竟是怎样进行的,恐怕还是有个问号在脑中打转。后面3个阶段的具体工作机制,我没有深入了解过, 阅读全文
posted @ 2012-06-01 23:38 陈小硕 阅读(3297) 评论(0) 推荐(2) 编辑
摘要: 虽然可以在windows的CMD下用gcc/g++编译代码了,可是CMD的字体是在是难以让我忍受。没有任何歧视心态,就是觉得没有美感,心理感觉不爽。由于CMD使用的是中文代码页(936),所以可通过“属性”修改的字体只有那难看两种字体。如果在CMD窗口中执行“chcp 437”,可以看到可更换的字体中多了Consolas和Lucida console两种字体。这两种字体虽然没有难看了,但并不是我最喜欢的。Linux终端中的默认字体是Momospace的,所以想把CMD也换成这种字体。经过百度,得到了解决方案,记录如下。1、当然,首先得下个Bitstream Vera Sans Mono的安装包 阅读全文
posted @ 2012-05-27 12:09 陈小硕 阅读(3078) 评论(0) 推荐(0) 编辑
摘要: 即使在windows下,也可以像linux一样使用gcc/g++这样优秀的编译器。晚上闲得无聊,突然看到Windows的CMD也可以编译C/C++程序,就像Linux下的超级终端一样,通过命令行使用gcc/g++编译器来编译C/C++代码。这是我从Larry Ullman的C++ PROGRAMING一书上看到的。还是记录一下,说不定以后无聊时可以拿来玩玩。网上有一些关于通过设置环境变量,使用VS的编译器来编译代码的。但是,个人觉得VS太巨大了,所以装了个DEV C++来依葫芦画瓢试试看(使用命令行编译程序的前提是有装了编译器)。装好IDE之后,即可设置环境变量(新建用户变量即可)。我的安装路 阅读全文
posted @ 2012-05-21 20:03 陈小硕 阅读(9620) 评论(1) 推荐(0) 编辑
摘要: 也算是用过一段时间的单片机,但是当初也就是熟悉了一些模块的使用,对于单片机的工作原理并不是很了解。所以最后也难以深入学习,充其量就是熟悉了C51的编程,要想了解一个MCU的工作原理,了解汇编是很有必要的。而在编程过程中,最重要的就是时序!无论是进行存储器的读写,还是进行通信,只有时序匹配了,才可以写出高效的少bug的代码。而这些恰恰是需要掌握最基础的东西才能达到的。于是重新学了下MCS51,有了一些新的理解。指令的属性:指令长度和执行时间。指令长度就是存储在ROM中所占的ROM空间,编译器把程序汇编后,会给出这个程序的大小,这个值就是存储这个程序要占用的ROM空间(当然是以二进制的形式存储的) 阅读全文
posted @ 2012-01-06 21:12 陈小硕 阅读(486) 评论(0) 推荐(0) 编辑
摘要: 虽然临近考试,还是偷着时间把DDS的初级操作给搞定了,O(∩_∩)O哈哈哈。从搞清理论原理,到下载调试出波形,还真费了点功夫。 这也算从VHDL转战verilog的第一仗吧,把模块化设计小过了把瘾,嘿嘿…… 不管这能不能算个项目,但我还是在短时间内弄出来了,至于细节问题还有功能加强,考试之后再说喽! 首先还是要理清DDS中的理论计算关系,好的设计总是靠些理论的,呵呵。以输出信号为正弦信号为... 阅读全文
posted @ 2011-12-18 23:35 陈小硕 阅读(4748) 评论(0) 推荐(2) 编辑
摘要: 一个数字系统中往往需要多种频率的时钟脉冲作为驱动源,这样就需要对FPGA的系统时钟(频率较高)进行分频。 比如在进行流水灯、数码管动态扫描设计时不能直接使用系统时钟(太快而肉眼无法识别),或者需要进行通信时, 由于通信速度不能太高(由不同的标准限定),这样就需要对系统时钟分频以得到较低频率的时钟。 分频器主要分为偶数分频、奇数分频、半整数分频和小数分频,如果在设计过程中采用参数化设计,就可以... 阅读全文
posted @ 2011-12-16 12:30 陈小硕 阅读(33597) 评论(1) 推荐(1) 编辑
摘要: slack 的值通常用来表示设计是否满足时序要求。同样有setup slack 和 hold slack ,如果slack 的值为正,则表明设计可以满足setup / hold time 要求,反之不满足。 Setup slack = Data Required Time(setup) - Data Arrival Time 若setup slack 为正,表示Data Required ... 阅读全文
posted @ 2011-12-12 23:21 陈小硕 阅读(10196) 评论(0) 推荐(1) 编辑
摘要: 首先要理解两个概念:launch edge 和 latch edgelaunch edge 是源寄存器发送数据的时钟沿,是时序分析的起点。latch edge是目的寄存器捕获数据的时钟沿,是时序分析的终点。如图示,源寄存器在0ns时发送数据,目的寄存器在5ns时采样数据,两者刚好相差一个时钟周期。Data Arrival Time :从launch edge开始,data实际到达Reg2 D端的时间。Clock Arrival Time : 从latch edge 开始,时钟实际到达Reg2 时钟输入端的时间。相关时序图为:Data Arrival Time = Tclk1 + Tco + T 阅读全文
posted @ 2011-12-06 22:23 陈小硕 阅读(7294) 评论(3) 推荐(1) 编辑