- 博客(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
519
原创 冯诺依曼结构和哈佛结构
冯诺依曼结构提出了存储程序的方式,即指令和数据不加区分共同存储在内存中,按顺序执行。EIP指针指向哪cpu就加载哪块内存中的程序。CPU在保护模式中,每段内存都有其描述符,记录着内存的访问权限可读可写可执行。这就变相指明了哪些是指令哪些是数据。存储器是按线性编址的一维结构,内核单元的大小固定。指令由操作码和地址码组成,操作码指明了指令的操作类型,地址码指明了操作数和地址。通过执行指令直
2017-11-16 17:27:59
1042
原创 linux中用到的一些思想
面向对象的思想分层思想(ubs sd alsa)控制器和设备分层,中间通过核心层来建立连接隔离总线的思想:物理总线和虚拟总线平台总线设备驱动模型:软件驱动driver.c和设备驱动device.c分层,有些硬件的driver.c已经由内核提供,我们只需编写device.c,把板级文件告诉内核。
2017-11-16 17:23:50
517
原创 c语言链表
链表不同于数组,数组是连续存储(线性结构),元素类型相同,大小相同。而链表是离散存储,每个节点不连续,通过指针相连。每个节点只有一个前驱节点,每个节点只有一个后续节点,首节点没有前驱节点,尾节点没有后续节点。链表相对数组要消耗更多cpu资源,因为它要通过指针一个一个去查找对应节点,而数组只要通过下标就可以找到对应元素。链表可以很大,如果要通过一个函数输出一个链表,通过指针,指向链表的头节点
2017-11-16 12:51:27
372
原创 线性搜索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
3206
原创 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
352
原创 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
407
原创 今天看了知乎上的一些文章得到的感想
关于女生:不要觉得喜欢上一个女生就觉得她是你心中的女神,虽然你觉得她很好,认为自己配不上她。女生或许并不一定像你想象的那样完美,和她像普通人一样相处就可以了。生活上不要和女人争论,要哄她,或买买买。或是自己DIY一样东西给她,或许比买的东西更能感动她。不要绝对认为任何女生都是拜金物质的,虽然很多女生是这样。关于自卑:自卑并不一定是坏事,因为自卑才使得你有更大的动力去改变。
2017-11-09 17:03:10
1427
原创 计算机的启动过程
BIOS:英文全称是Basic input/output system,。它固化在微机主板上的一块ROM芯片上。由于ROM的特性决定了它不能写数据,BIOS是工厂生产ROM时就用特殊的方法烧入进去的,所以用户不能修改BIOS,这对BIOS升级带来了很大的不方便。后来又出现了PROM,PROM从工厂生产出来后里面并没有任何数据,用户可以自己用专用的编程器写入BIOS,但也只能写入一次。如果用户想再次
2017-11-09 16:23:52
543
原创 中断向量
中断向量是中断服务程序的入口地址,在计算机中中断向量的地址存放一条跳转到中断服务程序的跳转指令。中断地址是存储中断向量的内存单元。中断向量表:用来存放中断向量(共256个),它的地址范围是0~3FFH在arm处理器中中断向量的大小为4个字节。在中断向量里面不是存储的中断服务程序的入口地址,而是跳转到中断服务程序的可执行代码。中断号:微机通过中断号对应中断向量值,再通过中断向量的
2017-11-01 21:18:39
16720
原创 计算机上的各类存储设备
一台PC机上装有多块存储芯片,这些芯片从物理上看倒是独立的不同的器件。从读写属性上可以分为两类:随即存储芯片(RAM)随即存储芯片可读可写,必须带点存储,关机后数据丢失。改变内部的电子状态来实现二进制数据。所以当断电时里面的电子就丢失了。只读存储芯片(ROM)。只读存储芯片只能读取不能写,关机后内容不丢失。原理是改变磁盘内部的磁极来存储数据,所以当断电后,磁性还是不会改变,自然数据就保
2017-11-01 20:50:59
1019
原创 EEPROM
EEPROM是通过iic总线来进行数据传输的。也就是串行传输,一根为SCL时钟信号线,另一根为SDA数据信号线(传输数据和地址也包括开始结束和ACK信号)。这两根线必须接10k的上拉电阻。所以一开始SCL,SDA都是高电平。这两根线与EEPROM的SCL,SDA线相连。iic总线每次传输8bit(一个字节)的数据。而且iic总线是串行主从结构,读和写都由主机操作,从机只能接受。下面以2
2017-11-01 20:12:34
16039
原创 内存地址空间与分配
在32计算机中,它的最大内存容量是2^32次方(4个GB大小)。它是由无符号整形从0~4GB顺序构成。0地址对应一个存储单元(8bit),1地址也对应一个存储单元(8bit),以此类推。如果一个数据对应的地址是0~3地址,那么它占3个存储单元,也就是3个字节。内存地址指的是RAM的地址,通常用16进制表示。
2017-11-01 16:25:55
9332
1
原创 cpu的工作原理
cpu 只能识别机器码,如110001010。每一位只有两种状态,分别表示高电平和低电平。如果用这种法式去编码,就显得不便记忆和理解。所以随着时代的发展,就产生了汇编语言。相对机器码,汇编语言就好理解多了。它主要通过汇编指令集来实现编码。不过cpu还是不能直接来识别出汇编码,要通过编译器来对汇编语言转换成机器码,从而使cpu能够正常工作。上面我们已经了解了cpu只能通过一系列的二进制码
2017-10-31 19:20:40
1874
原创 BP神经网络-(参考游戏编程中的人工智能技术)
BP神经网络,采用有监督的训练方法,有监督的训练方法适用于已经具备可以用来训练网络的各种数据例子。他的工作过程:把一个输入模式送给网络,考察他这时的输出,并将它的输出与慕白哦输出进行比较,如果实际的输出和目标的输出不同,则网络的所有权重都要稍作改变。使它下一次的输出和期望的记过接近一i点。这一过程必须对要求网络学习的每一种输入模式进行重复,直到网络能正确识别每一种为止。反向传播
2017-10-18 11:15:48
486
原创 数码相框项目
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
457
原创 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
1238
原创 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
8610
原创 I2S总线
I2S(Inter—IC Sound)总线, 又称 集成电路内置音频总线,是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,该总线专门用于音频设备之间的数据传输,广泛应用于各种多媒体系统。它采用了沿独立的导线传输时钟与数据信号的设计,通过将数据和时钟信号分离,避免了因时差诱发的失真。
2017-10-03 15:36:06
622
原创 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
639
原创 虚拟网卡驱动
测试: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
677
原创 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
810
原创 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
686
原创 一个简单的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
2469
原创 ramblock
块设备程序框架:app: open, read, write "1.txt"--------------------------------------------------------文件的读写文件系统: vfat, ext2, ext3, yaffs2, jffs2 (把文件的读写转换为扇区的读写)----------------ll_rw_bloc
2017-09-16 17:10:22
540
原创 USB
USB是主从结构的所有的USB传输,都是从USB主机这方发起,USB设备没有“主动”通知USB主机的能力。例子:USB鼠标滑动一下立刻产生数据,但是它没有能力通知PC机来读数据,只能被动地等侍PC机来读。USB的传输类型:1.控制传输:可靠,时间有保证,比如:USB设备的识别过程2.批量传输:可靠,时间没有保证,比如:U盘3.中断传输:可靠,实时,比如:USB鼠标
2017-09-15 18:17:13
790
转载 Linux平台总线驱动设备模型
上一节中,我们详细分析了平台驱动设备模型的源码,懂得了框架是如何构成的。上一节文章链接:http://blog.youkuaiyun.com/lwj103862095/article/details/17957637这一节里,我们来使用平台驱动设备这一套架构来实现我们之前使用简单的字符设备驱动点亮LED,这里并无实际意义,只是告诉大家如果编写平台总线驱动设备。问:如何编写平台总线驱动设
2017-09-14 19:51:19
279
原创 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
488
转载 S3c2440之时钟频率(修改综合版)
转帖:http://blog.youkuaiyun.com/mr_raptor/article/details/6555734 开发板在没有开启时钟前,整个开发板全靠一个12MHz的晶振提供频率来运行,当MPLLCON存入初值,并开始生效后,S3C2440A可以正常工作在400MHz下。开发板的主板上的外设和CPU也有一个频率限度,ARM920T内核的S3C2440的最高正常工作频率如下:
2017-09-10 13:55:00
611
原创 百元之恋观后感
早已过了而立之年的一子,整日游戏虐杀小外甥,无心打理自家的料理店。电影开场一个颓废堕落的胖女孩,衣着邋遢,抽着香烟,桌上凌乱的摆着啤酒薯片等零食。长发卷曲盖住自己大部分面部,走路也没有精神,弯腰驼背,穿着宽松又有点脏的夏装。简直是一个颓废人物的代表。他的妹妹二三子离婚在家,看不惯一子的状况,便和她打了起来。一子自觉自己不被这个家容纳,便来到了自己一直光顾的百元超时当起了收银员。小店云集着许多怪人,患
2017-09-06 15:54:40
1457
转载 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
522
原创 qt串口调试助手
#-------------------------------------------------## Project created by QtCreator 2017-09-01T13:29:03##-------------------------------------------------QT += core gui serialportgreaterTh
2017-09-01 15:12:14
686
转载 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
406
原创 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
604
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人