自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

魏军的博客

记录一些学习上的笔记,和生活中的点滴。

  • 博客(131)
  • 收藏
  • 关注

原创 计算一个时间的各个位

1hour = 60minutes = 3600seconds= 3600 000milliseconds假设一个时间为3600 000ms,用hh:mm:ss表示hh为:(3600 000/1000/60/60)%24mm: (3600 000)/1000/60%60ss:3600 000/1000%60ms:3600 000%1000

2017-12-16 20:03:25 461

原创 冯诺依曼结构和哈佛结构

冯诺依曼结构提出了存储程序的方式,即指令和数据不加区分共同存储在内存中,按顺序执行。EIP指针指向哪cpu就加载哪块内存中的程序。CPU在保护模式中,每段内存都有其描述符,记录着内存的访问权限可读可写可执行。这就变相指明了哪些是指令哪些是数据。存储器是按线性编址的一维结构,内核单元的大小固定。指令由操作码和地址码组成,操作码指明了指令的操作类型,地址码指明了操作数和地址。通过执行指令直

2017-11-16 17:27:59 921

原创 linux中用到的一些思想

面向对象的思想分层思想(ubs sd alsa)控制器和设备分层,中间通过核心层来建立连接隔离总线的思想:物理总线和虚拟总线平台总线设备驱动模型:软件驱动driver.c和设备驱动device.c分层,有些硬件的driver.c已经由内核提供,我们只需编写device.c,把板级文件告诉内核。

2017-11-16 17:23:50 481

原创 c语言链表

链表不同于数组,数组是连续存储(线性结构),元素类型相同,大小相同。而链表是离散存储,每个节点不连续,通过指针相连。每个节点只有一个前驱节点,每个节点只有一个后续节点,首节点没有前驱节点,尾节点没有后续节点。链表相对数组要消耗更多cpu资源,因为它要通过指针一个一个去查找对应节点,而数组只要通过下标就可以找到对应元素。链表可以很大,如果要通过一个函数输出一个链表,通过指针,指向链表的头节点

2017-11-16 12:51:27 324

原创 线性搜索linear search

#include #include struct student{ int id; char name[10]; char addr[20]; double sorce;};struct student array[5] = { {1,"weijun", "pinghu", 98}, {4, "xiaohong", "jiaxing",97},

2017-11-14 21:10:40 3126

原创 CACHE

SRAM  is called static memory,the data store in memory is don't change unless close the power or write new data.the cpu handle the data is to fast to the memory, so need store the data in the cache,

2017-11-11 15:01:44 312

原创 the mapping between virtual addresses and physical addresses

a page table is the data structure used by a virtual memory computer operating system to store the mapping between virtual addressess and physical addresses.the virtual addresses are used by accessi

2017-11-11 15:00:56 368

原创 今天看了知乎上的一些文章得到的感想

关于女生:不要觉得喜欢上一个女生就觉得她是你心中的女神,虽然你觉得她很好,认为自己配不上她。女生或许并不一定像你想象的那样完美,和她像普通人一样相处就可以了。生活上不要和女人争论,要哄她,或买买买。或是自己DIY一样东西给她,或许比买的东西更能感动她。不要绝对认为任何女生都是拜金物质的,虽然很多女生是这样。关于自卑:自卑并不一定是坏事,因为自卑才使得你有更大的动力去改变。

2017-11-09 17:03:10 1342

原创 计算机的启动过程

BIOS:英文全称是Basic input/output system,。它固化在微机主板上的一块ROM芯片上。由于ROM的特性决定了它不能写数据,BIOS是工厂生产ROM时就用特殊的方法烧入进去的,所以用户不能修改BIOS,这对BIOS升级带来了很大的不方便。后来又出现了PROM,PROM从工厂生产出来后里面并没有任何数据,用户可以自己用专用的编程器写入BIOS,但也只能写入一次。如果用户想再次

2017-11-09 16:23:52 449

原创 中断向量

中断向量是中断服务程序的入口地址,在计算机中中断向量的地址存放一条跳转到中断服务程序的跳转指令。中断地址是存储中断向量的内存单元。中断向量表:用来存放中断向量(共256个),它的地址范围是0~3FFH在arm处理器中中断向量的大小为4个字节。在中断向量里面不是存储的中断服务程序的入口地址,而是跳转到中断服务程序的可执行代码。中断号:微机通过中断号对应中断向量值,再通过中断向量的

2017-11-01 21:18:39 16097 2

原创 计算机上的各类存储设备

一台PC机上装有多块存储芯片,这些芯片从物理上看倒是独立的不同的器件。从读写属性上可以分为两类:随即存储芯片(RAM)随即存储芯片可读可写,必须带点存储,关机后数据丢失。改变内部的电子状态来实现二进制数据。所以当断电时里面的电子就丢失了。只读存储芯片(ROM)。只读存储芯片只能读取不能写,关机后内容不丢失。原理是改变磁盘内部的磁极来存储数据,所以当断电后,磁性还是不会改变,自然数据就保

2017-11-01 20:50:59 923

原创 EEPROM

EEPROM是通过iic总线来进行数据传输的。也就是串行传输,一根为SCL时钟信号线,另一根为SDA数据信号线(传输数据和地址也包括开始结束和ACK信号)。这两根线必须接10k的上拉电阻。所以一开始SCL,SDA都是高电平。这两根线与EEPROM的SCL,SDA线相连。iic总线每次传输8bit(一个字节)的数据。而且iic总线是串行主从结构,读和写都由主机操作,从机只能接受。下面以2

2017-11-01 20:12:34 15671

原创 内存地址空间与分配

在32计算机中,它的最大内存容量是2^32次方(4个GB大小)。它是由无符号整形从0~4GB顺序构成。0地址对应一个存储单元(8bit),1地址也对应一个存储单元(8bit),以此类推。如果一个数据对应的地址是0~3地址,那么它占3个存储单元,也就是3个字节。内存地址指的是RAM的地址,通常用16进制表示。

2017-11-01 16:25:55 8913 1

原创 cpu的工作原理

cpu 只能识别机器码,如110001010。每一位只有两种状态,分别表示高电平和低电平。如果用这种法式去编码,就显得不便记忆和理解。所以随着时代的发展,就产生了汇编语言。相对机器码,汇编语言就好理解多了。它主要通过汇编指令集来实现编码。不过cpu还是不能直接来识别出汇编码,要通过编译器来对汇编语言转换成机器码,从而使cpu能够正常工作。上面我们已经了解了cpu只能通过一系列的二进制码

2017-10-31 19:20:40 1786

原创 BP神经网络-(参考游戏编程中的人工智能技术)

BP神经网络,采用有监督的训练方法,有监督的训练方法适用于已经具备可以用来训练网络的各种数据例子。他的工作过程:把一个输入模式送给网络,考察他这时的输出,并将它的输出与慕白哦输出进行比较,如果实际的输出和目标的输出不同,则网络的所有权重都要稍作改变。使它下一次的输出和期望的记过接近一i点。这一过程必须对要求网络学习的每一种输入模式进行重复,直到网络能正确识别每一种为止。反向传播

2017-10-18 11:15:48 424

原创 数码相框项目

ASCII码:共256个,在ASCII码点阵(fontdata)中,用8*16位表示一个ASCII码字模(dots)。也就是16个字节。void lcd_put_ascii(int x, int y, char c)unsigned char* dots = fontdata_8x16[c*16]   /* c*16表示一个字符占16个字节, dots指向的是从第字符的ASCII码值*16

2017-10-15 19:37:25 407

原创 char int word long的大小

在8位机上(位宽位为8):char 一个字节,一个字节=8位,大小为2的8次方= 256int  2个字节,二个字节=16位,大小为2的16次方= 65536long 4个字节,四个字节=32位,大小为2的32次方= 4294967296在16位机上(位宽为16):char 一个字节, 一个字节=8位,大小为2的8次方=256 int  2个字节,二个字节=16

2017-10-12 19:34:44 1162

原创 AT89C51定时器

若工作在定时器0:(不采用外部中断,且不采用计时,而采用定时,定时器模式选择:00:模式0,01:模式1)TMOD &= 0xf0;TMOD |= 0x01;定时时间计算:若定时1ms,晶振FOSC为11.0592MHz ,也就是11059200Hz,则晶振周期为1/11059200一个单指令的时间是12个晶振周期,也就是1/11059200*12,若要定时1ms,则1

2017-10-11 20:15:28 8330

原创 ubuntu各个版本下载

http://mirrors.melbourne.co.uk/ubuntu-releases/

2017-10-05 20:30:44 2231

原创 dma

2017-10-05 15:00:04 252

原创 I2S总线

I2S(Inter—IC Sound)总线, 又称 集成电路内置音频总线,是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,该总线专门用于音频设备之间的数据传输,广泛应用于各种多媒体系统。它采用了沿独立的导线传输时钟与数据信号的设计,通过将数据和时钟信号分离,避免了因时差诱发的失真。

2017-10-03 15:36:06 556

原创 i2c

2017-09-30 13:22:48 270

原创 DM9000C

测试DM9000C驱动程序:1. 把dm9000.c 放到内核的driver/net 目录下2. 修改driver/net/Makefile把obj-$(CONFIG_DM9000) += dm9000.o改为:obj-$(CONFIG_DM9000) += dm9dev9000c.o3.make uImage使用新内核启动4.使用NFS启动

2017-09-23 21:11:47 588

原创 虚拟网卡驱动

测试:insmod virt_net.ko查看IP: ifconfig配置IP: ifconfig vnet0 3.3.3.3ping 3.3.3.3 看是否能PING通ping 3.3.3.4 看能否PING通

2017-09-21 19:59:45 635

原创 NOR FLASH

使用UBOOT体验NOR FLASH 的操作(开发板设为NOR启动,进入UBOOT)1.使用OpenJATAG烧写UBOOT到NOR FLASH,启动,1.读数据md.b 02.读ID往地址555H写AAH往地址2AAH写55H往地址555H写90H读0H地址得到厂家ID C2H读1H地址得到设备ID 22DAH 或  225BH退出读ID,往任意地

2017-09-21 14:36:40 721

原创 NAND FLASH

Nand Flash 是一个存储芯片Nand Flash 和s3c2440之间只有数据线怎么传输地址:1.在DATA0~DATA7上既传输地址又传输数据也传输命令当ALE为高电平时传输地址2.从NAND FLASH芯片手册上可知,要操作NAND FLASH需要先发出命令怎么传命令?①当ALE为高电平时传输地址②当CLE为高电平时传输的是命令③当A

2017-09-20 15:10:22 636

原创 一个简单的51操作系统

/* os_cfg.h * * * */#include "reg51.h"#define TIME_PER_SEC 200 //定义任务时钟频率,200Hz#define CLOCK 22118400 //定义时钟晶振,单位Hz#define MAX_TASK 4 //定义任务数量/*函数变量声明,在需要用以下函数或变量的文件中包含此文件即可*/extern vo

2017-09-18 12:21:55 2401

原创 ramblock

块设备程序框架:app: open, read, write "1.txt"--------------------------------------------------------文件的读写文件系统: vfat, ext2, ext3, yaffs2, jffs2          (把文件的读写转换为扇区的读写)----------------ll_rw_bloc

2017-09-16 17:10:22 493

原创 USB

USB是主从结构的所有的USB传输,都是从USB主机这方发起,USB设备没有“主动”通知USB主机的能力。例子:USB鼠标滑动一下立刻产生数据,但是它没有能力通知PC机来读数据,只能被动地等侍PC机来读。USB的传输类型:1.控制传输:可靠,时间有保证,比如:USB设备的识别过程2.批量传输:可靠,时间没有保证,比如:U盘3.中断传输:可靠,实时,比如:USB鼠标

2017-09-15 18:17:13 740

转载 Linux平台总线驱动设备模型

上一节中,我们详细分析了平台驱动设备模型的源码,懂得了框架是如何构成的。上一节文章链接:http://blog.csdn.net/lwj103862095/article/details/17957637这一节里,我们来使用平台驱动设备这一套架构来实现我们之前使用简单的字符设备驱动点亮LED,这里并无实际意义,只是告诉大家如果编写平台总线驱动设备。问:如何编写平台总线驱动设

2017-09-14 19:51:19 246

原创 LCD 内核配置

cd /work/system/linux-2.6.22.6/make menuconfig进入内核菜单:Device driverGraphics support(图形支持)s3c2410 LCD framebuffer support  (设为M,去除内自带的LCD驱动程序)make uImagecp arch/arm/boot/uImage  /w

2017-09-14 11:16:35 450

原创 触摸屏原理及程序框架

2017-09-11 18:59:29 1448

转载 S3c2440之时钟频率(修改综合版)

转帖:http://blog.csdn.net/mr_raptor/article/details/6555734 开发板在没有开启时钟前,整个开发板全靠一个12MHz的晶振提供频率来运行,当MPLLCON存入初值,并开始生效后,S3C2440A可以正常工作在400MHz下。开发板的主板上的外设和CPU也有一个频率限度,ARM920T内核的S3C2440的最高正常工作频率如下:

2017-09-10 13:55:00 563

原创 LCD硬件操作图

LCD

2017-09-09 16:17:32 317

原创 百元之恋观后感

早已过了而立之年的一子,整日游戏虐杀小外甥,无心打理自家的料理店。电影开场一个颓废堕落的胖女孩,衣着邋遢,抽着香烟,桌上凌乱的摆着啤酒薯片等零食。长发卷曲盖住自己大部分面部,走路也没有精神,弯腰驼背,穿着宽松又有点脏的夏装。简直是一个颓废人物的代表。他的妹妹二三子离婚在家,看不惯一子的状况,便和她打了起来。一子自觉自己不被这个家容纳,便来到了自己一直光顾的百元超时当起了收银员。小店云集着许多怪人,患

2017-09-06 15:54:40 1416

原创 驱动框架

2017-09-06 15:40:22 239

转载 qt5 制作exe文件图标

设置.exe程序图标(ico文件) 将需要设置的图片放置到源码目录新建一个.rc文件 新建文件–>C++–>source文件–>命名为XX.rc(不能掉了rc后缀)打开rc文件添加如下一行代码。IDI_ICON1 ICON DISCARDABLE "XXX.ico"11XXX.ico是你的exe程序图标名。最后在pro文件添加一行代码RC_FILE

2017-09-01 16:11:24 476

原创 qt串口调试助手

#-------------------------------------------------## Project created by QtCreator 2017-09-01T13:29:03##-------------------------------------------------QT += core gui serialportgreaterTh

2017-09-01 15:12:14 638

转载 Qt程序打包发布方法(使用官方提供的windeployqt工具)

Qt程序打包发布方法(使用官方提供的windeployqt工具)转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.groupQt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行。因此 Qt 官方开发环境里自

2017-08-25 13:36:47 377

原创 multiset

#include using namespace std;#include templatevoid show(Iter ib, Iter ie){ while(ib!=ie) cout << *ib++ << ' '; cout << endl; }int main(){ int a[5]={5, 1, 7, 5, 1}; multiset pids(a, a+5

2017-08-18 15:01:46 561

空空如也

空空如也

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

TA关注的人

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