随笔 - 342  文章 - 0 评论 - 49 阅读 - 147万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

09 2013 档案
点评VHDL语言
摘要:(1)VHDL的描述风格及语法十分类似于一般的计算机高级语言,但是它是一种硬件描述语言。学好VHDL的关键是充分理解VHDL语句和硬件电路的关系。编写VHDL,就是在描述一个电路,我们写完一段程序后,应当对生成的电路做到心中有数,而不能用纯软件的思路来编写VHDL程序(硬件描述语言和单片机程序是有区别的)。(2)语法掌握贵在精不在多。30%的基本VHDL语句就可以完成95%的电路设计,很多生僻的语句并不能被所有的综合工具所支持,在程序移植或被更换软件平台时容易产生兼容性问题,也不利于其他人阅读和修改。建议多用心钻研常用语句,理解这些语句的硬件含义,这比多掌握几个新语法要有用的多。(3)VHDL 阅读全文
posted @ 2013-09-29 16:13 amanlikethis 阅读(532) 评论(0) 推荐(0) 编辑
VHDL程序的库
摘要:VHDL库存储和放置了可被其他VHDL程序调用的数据定义、器件说明、程序包等资源。VHDL库的种类有很多,但最常见的库有IEEE标准库、WORK库。IEEE标准库主要包括STD_LOGIC_1164、NUMERIC_BIT和NUMERIC_STD,其中STD_LOGIC_1164是最重要和最常用的程序包。大部分关于数字系统设计的程序包都是以此程序包设定的标准为基础的。每个VHDL程序的开头一般都要有如下的IEEE库使用说明:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;这是因为实体说明中要描述的器件的输入、输出端口的数据类型,而这些数据类型在IEEE.STD 阅读全文
posted @ 2013-09-29 16:12 amanlikethis 阅读(2120) 评论(0) 推荐(0) 编辑
转载“用USBOOT制作DOS启动盘”
摘要:使用软件:Usboot和MaxDOS_5.6s_U盘版。由于我的U盘容量比较小,暂时只能做DOS启动功能,其它功能如Windows PE,等我以后测试成功后再补充说明。U盘是啥?读音优盘,可以实现两台电脑的文件互相复制,是早期的软盘替代品。启动盘是什么?启动盘的专业解释我就不想多说,我只想说,启动盘的主要功能及用处就是安装系统和维护系统用。系统安装盘大家用过的应该知道,当我们将系统安装盘放进光盘之后,重启电脑就会出现一个安装系统的菜单。其实那个系统安装盘就是一个带启动功能的系统盘。而U盘启动盘就是可以让我们安装系统的时候无需使用光盘,只需要将U盘插到电脑,就可以达到和系统安装光盘一样的效果。使 阅读全文
posted @ 2013-09-29 16:08 amanlikethis 阅读(2132) 评论(0) 推荐(0) 编辑
继电器驱动电路中二极管的作用
摘要:二极管作用:起续流作用。具体说来,就是在继电器线圈断电的时候,线圈两端会产生一个自感电动势,这个自感电势会造成破坏,就在继电器线圈两端反向并联一个二极管,为自感电动势提供一个放电电流回路(续流),从功能上这个二极管叫续流二极管。 阅读全文
posted @ 2013-09-29 15:36 amanlikethis 阅读(837) 评论(0) 推荐(0) 编辑
单片机复位电路
摘要:它的基本原理是当单片机上电时,电容短时间内可以看做短路,RST为高电平,从而实现单片机的复位;当单片机工作过程中,按下复位键,那么RST为高电平,单片机复位。 单片机的两种复位状态的区别:上电复位后,单片机就进入初始化状态,片内RAM为随机值;运行过程中,通过复位键复位,单片机进入复位状态,但是RAM值保持为复位前的状态,即复位不会引起RAM的改变。 阅读全文
posted @ 2013-09-29 15:33 amanlikethis 阅读(514) 评论(0) 推荐(0) 编辑
WARNING L15: MULTIPLE CALL TO SEGMENT
摘要:原网页:http://www.cnblogs.com/CuriosityWzk/archive/2011/12/25/2301090.htmlWARNING L15: MULTIPLE CALL TO SEGMENT 其实这个问题应该是引起注意的,有可能引起程序冲突,但是一般时候程序运行不会有问题,... 阅读全文
posted @ 2013-09-29 15:31 amanlikethis 阅读(407) 评论(0) 推荐(0) 编辑
ARM中的PC和AXD的PC
摘要:R15 (PC)总是指向“正在取指”的指令,而不是指向“正在执行”的指令或正在“译码”的指令。一般来说,人们习惯性约定将“正在执行的指令作为参考点”,称之为当前第一条指令,因此PC 总是指向第三条指令。当ARM 状态时,每条指令为4 字节长,所以PC 始终指向该指令地址加8 字节的地址,即:PC 值=当前程序执行位置+8;而AXD 中的pc,是为了调试看着方便而修改过的,它指向的是正在执行的指令,即“真正pc-8”! 阅读全文
posted @ 2013-09-28 21:03 amanlikethis 阅读(370) 评论(0) 推荐(0) 编辑
Keil的c语言编译器
摘要:我曾经通过查看反汇编代码对KEILC编译器进行了测试,大概有这么一下内容,也得出一些结论。(1)全局变量:如果程序中定义了全局变量,而且初始值不是0。此时,在程序调到main()函数执行前,除了要进行内存清零、初始化堆栈外,还需要将全局变量的初始值加载到内存的指定区域(编译过程中为全局变量分配的空间)。(2)局部变量:局部变量通常使用那些缓冲内存(用作保存运算过程的中间数据)。初始化的局部变量,通常程序中都会对用到的缓冲内存重新赋值。但是,对于没有初始化的局部变量需要注意“无知情的情况下被赋了值”。下边的子函数中定义了变量,但是并未初始化。按照标准C语言的准则,未初始化的变量的初值默认是0,. 阅读全文
posted @ 2013-09-28 21:00 amanlikethis 阅读(1765) 评论(0) 推荐(0) 编辑
gcc编译器
摘要:gcc/g++在执行编译的时候,只要分四个阶段 :1、预处理阶段,完成宏定义和include文件展开等工作; [预处理器cpp] 2、根据编译参数进行不同程度的优化,编译成汇编代码,生成.s的文件; [编译器egcs]3、用汇编器把汇编代码进一步生成目标代... 阅读全文
posted @ 2013-09-28 20:29 amanlikethis 阅读(272) 评论(0) 推荐(0) 编辑
arm-linux-gcc中对“inline”的处理
摘要:C++对于关键字“inline”的处理大家都知道,C++编译器对于内敛函数就是把它当做一个宏展开。这样可能会增加程序的代码量,却可以减少程序入栈和出栈的此处,从而影响程序的执行速度。但是,C语言中扩展了C++的这个关键字,不同的编译器对它的处理还不一样。ADS的C编译器对“inline”还不支持,而本文主要谈arm-linux-gcc对“inline”的处理。 下边是对“arm-linux-gcc的C编译器对 inline处理”的测试。无关键字的程序inline的程序代码:staticvoidwait(volatileunsignedlongdly){for(;dly>0;dly--); 阅读全文
posted @ 2013-09-28 19:23 amanlikethis 阅读(1640) 评论(0) 推荐(0) 编辑
对ARM9哈佛结构的认识
摘要:书本上都说ARM是哈佛结构,但是我总感觉好像看不出来。后来针对S3C2440的ARM9核进行分析,我有了自己的见解。 我的结论是“ARM9被称为是哈佛结构是从它拥有指令cache和数据cache”来说的。 原来,我怀疑S3C2440的ARM9核不是哈佛结构,是冯诺依曼结构。我的理由如下。哈佛结构要求,能同时访问指令和数据,所以我认为一个哈佛结构要求处理器的总线是复杂的,应该包括程序的地址总线、程序的数据总线、数据的地址总线、数据的数据总线。但是,观察S3C2440核发现,程序和数据最终都会被加载到RAM中运行,所以它也就只有两条总线,FLASH、RAM,包括外设都是公用这两条线。 但... 阅读全文
posted @ 2013-09-28 19:18 amanlikethis 阅读(5947) 评论(0) 推荐(1) 编辑
链接脚本分析
摘要:链接三要素:链接顺序,链接地址,加载地址1.连接顺序的问题 倘若没有链接脚本,例如:arm-linux-ld –Ttext 0x00000000 -o nand_elf ^的顺序,即makefile中依赖的顺序。 倘若有链接脚本,则会按照链接脚本的规则进行链接。例如:SECTIONS { firtst 0x00000000 : {head.o init.o nand.o} second x30000000 : AT(4096){ main.o}} 这个规则中定义了两个大段,first和second。first的链接顺序为head.o init.o nand.o. ... 阅读全文
posted @ 2013-09-28 18:25 amanlikethis 阅读(1616) 评论(0) 推荐(0) 编辑
在虚拟机的linux中利用VMware Tools实现与windows共享文件
摘要:很多人都知道安装"VMware Tools"可以实现与windows共享,但是其实它的功能远不止此。安装了"VMware Tools"后,虚拟机的网络、显示、鼠标等等功能都可以改善。对于咱们初学者,用的最多的还是文件共享。为了实现这个目标,我们开始以下工作。 首先声明软件版本问题,这是一个必须慎重考虑的问题,安装过程中出现的问题通常都是由于版本导致的。本人用的是"VMware 6.5+redhat 9.0",出于好奇对于"VMware 6.5+ubuntu 12.0.4"也有测试,下面我们分开讨论。VMware 6 阅读全文
posted @ 2013-09-28 16:28 amanlikethis 阅读(1100) 评论(0) 推荐(0) 编辑
S3C2440的LCD虚拟显示测试
摘要:一、概述 S3C2440的LCD控制器支持虚拟显示,说的容易理解一点就是,可以显示比实际显示器大的图像。可以这样想象,有一个大的图片,但是显示器(显示串口)比较小,但是我们可以相对于大图片(即大图片不动)移动显示器的位置,从而实现观察大图片的其他部分的内容。芯片手册上对这部分内容用一个图片来生动展示 阅读全文
posted @ 2013-09-28 11:07 amanlikethis 阅读(1440) 评论(0) 推荐(0) 编辑
arm-linux-gcc编译器测试
摘要:1、#include <>与#include ""的区别 #include <>只在标准库中搜索头文件,而#include ""首先在用户工作目录(指的是当前被编译源文件所在目录)搜索,搜索不到再到标准库中搜索头文件(注意其他目录是不会搜索的)。也就是说#include ""搜索的范围比#inclu 阅读全文
posted @ 2013-09-24 15:32 amanlikethis 阅读(1018) 评论(0) 推荐(0) 编辑
韦东山教程ARM的时钟设置出现的问题及其解决方法
摘要:时钟设置是一个非常重要的环节,如果系统没有合适的时钟,根本无法工作。 S3C2440的时钟复杂,分为FCLK,HCLK,PCLK。 在程序测试中,曾出现这样一个错误。系统当前FCLK为400MHz,分频比是1:4:8,并且为同步工作模式。现在,欲重新设置时钟,把FCLK设置为200MHz,分频比设置 阅读全文
posted @ 2013-09-22 09:37 amanlikethis 阅读(882) 评论(0) 推荐(0) 编辑
程序在nor flash中真的可以运行吗?
摘要:程序在nor flash中可以运行,但是是有限制的,它不能像RAM那样随意的写(尽管它可以随意的读)。在norflash上,不能运行写存储器的指令,不过排除写的地方是RAM类。实验中的三个文件如下所示:Makefile如下: led_on.bin : crt0.S leds.c arm-linux- 阅读全文
posted @ 2013-09-22 09:05 amanlikethis 阅读(3827) 评论(0) 推荐(1) 编辑
存储器的速度
摘要:ARM处理器执行速度与存储器的速度有关。下面列出SRAM、SDRAM、cache运行速度的顺序(从高到低): 1.cache 2.SRAM 3.SDRAM其实,我认为norflash上运行程序的速度最低。 阅读全文
posted @ 2013-09-22 09:02 amanlikethis 阅读(743) 评论(0) 推荐(0) 编辑
程序测试的方法
摘要:编写一个程序还算容易,但是如果测试程序的正确性,甚至是可靠性就是一个困难的问题了。 目前,我想到的测试方法如下:1.当程序运行出现错误时,我们可以采用“逐步缩小范围法”。 首先,从开始处排除程序,直到找到程序的错误段(可能是一个函数)。然后在对错误段继续从内部检测,排除,直到找到错误原因。 在排错的过程中,可以通过反汇编代码进行分析。2.打印信息法 倘若,开发板的串口和串口程序都没问题,可以通过不断打印信息来检测问题的所在。我们,在每个功能程序段,输出一个提示信息。这样,当工作时,倘若显示出这样的信息,就代表这个程序段基本通过。而如果到了哪个地方停止了,就可以知道问题出现在什么地方。 而且,. 阅读全文
posted @ 2013-09-22 08:57 amanlikethis 阅读(1097) 评论(0) 推荐(0) 编辑
对编程的一些思考
摘要:1.程序代码是编程思想的体现我想程序设计人员在设计程序之初,肯定会有一番思考。思考主要是程序设计的目的,然后是实现目的的方法,最后才是代码的实现。所以,程序代码是编程思想的体现。 分析代码的启示:我们分析程序代码时,可以在看代码之前,想想这个代码要干什么事,然后再去看代码就容易多了。 编程的启示:先思考程序的目的,然后思考程序的算法,画程序流程图,最后编写代码。 2.程序的封装 程序为什么有封装的概念,这是指程序的通用性,是对程序功能的提炼。例如,C语言定义的与硬件无关的函数,这个函数具有一定的功能。不论是在x86平台,还是在arm平台,它都能运行(只不过需要不同的编译器编译)。我们可以把这. 阅读全文
posted @ 2013-09-17 09:36 amanlikethis 阅读(635) 评论(0) 推荐(0) 编辑
C语言全局变量的定义与声明
摘要:C语言中全局变量的定义与声明困扰着许多C语言初学者。本文讲述了全局变量定义与声明的用法,而且本为也将阐述这种用法的内在原理。我们先从两个错误例子引入,以下两个例程都在vc6.0平台上测试。 两种错误例程 1.unresolved external symbol 例子包含两个C文件(test.c)和( 阅读全文
posted @ 2013-09-13 17:18 amanlikethis 阅读(72247) 评论(2) 推荐(5) 编辑

点击右上角即可分享
微信分享提示