- 博客(15)
- 收藏
- 关注
原创 linux中断三个数据结构
以一个IRQ中断为例子。内核启动-------调用start_kernel()函数------调用setup_arch(&command_line)函数-----------调用early_trap_init()函数,实现异常向量表,异常处理代码的搬运如果产生IRQ中断---------PC指向搬运后的异常向量表的vector_irq + stubs_offset地址 -------跳
2012-04-20 15:09:31
1350
原创 中断剖析一early_trap_init()函数解析
今天就将上面的函数,该函数实现的功能就是:该函数代码很小,主要就是: memcpy((void *)vectors, __vectors_start, __vectors_end - __vectors_start); memcpy((void *)vectors + 0x200, __stubs_start, __stubs_end - __stubs_start);而关于vec
2012-04-19 22:25:20
3542
原创 ARM9---中断篇
广工仔有意转载,请标明来源:http://blog.youkuaiyun.com/shiyi_2012/article/details/7467956其实对于ARM9中断和51差不多啦,总的就是中断前期准备做好,然后中断满足,中断做后续工作就OK啦。第一个问题就是ARM9中断实质。首先要好好理解这个表,就是相应的中断产生之后,处理器就会使得PC指针自动跳转到该对应地址上。所以,对于
2012-04-17 00:44:49
8681
原创 存储器之DRAM
1S.DRAM是什么?上网百度百科一下:DRAM(Dynamic Random Access Memory),即动态随机存取存储器最为常见的系统内存。DRAM 只能将数据保持很短的时间。为了保持数据,DRAM使用电容存储,所以 必须隔一段时间刷新(refresh)一次,如果存储单元没有被刷新,存储的信息就会丢失。 (关机就会丢失数据)。关键字,存储。也就是存放数据。2.SDRAM的特点
2012-04-14 23:45:53
2210
原创 LED子系统剖析(一)
广工仔如果有意转载,请标明来源:http://blog.youkuaiyun.com/shiyi_2012/article/details/7456165写之前,先看一张图:上次说了LED驱动程序,Linux自身也携带了LED驱动,且是脱离平台的,即LED子系统。操作起来十分简单。但是它的实质却不是那么容易,研究了一个晚上,终于明白了其中一个文件的功能啦,机led-class.
2012-04-13 00:45:32
11559
3
原创 ARM9---LED驱动
前天写了ARM9的LED和按键的裸机程序,今天把它用驱动实现。但是真的不好写,搞了一个晚上,不过真算OK啦。我的这个驱动,实现的功能就是提供一个菜单给你选择,只要在总端输入数字选着LED运行模式就可以。并且我用KI按键,实现了可以返回菜单另选另一种模式的功能。最后一个,就是应用层序是一个死循环,我还提供一个选择,退出死循环。但是另选模式后,要执行完本次才执行重选的模式。图如下:1.进入
2012-04-12 00:56:08
3551
原创 linux网络设备驱动之实质篇
在讲解linux内核自身携带的网络设备驱动程序之前,先讲解一下网络设备模型,知道要做些什么。对于网络设备驱动,主要目的就是接受数据和发送数据。而人们把网络设备的体系结构就分为上面四层,就是为了更好的实现上面两个功能。怎么更好,后面会说到。先来个总介,后面在展开细讲。网络协议接口层提供两个函数,dev_queue_xmit发送函数和netif_rx接收函数,而网络设备接口层其实姐
2012-04-10 18:13:41
1583
原创 ARM9---LED和按键
//寄存器设置#define GPBCON (*(volatile unsigned long *)0x56000010)#define GPBDAT (*(volatile unsigned long *)0x56000014)#define GPBUP (*(volatile unsigned long *)0x56000018)#define G
2012-04-10 00:18:58
1078
原创 一个linux下安装多个内核
步骤:1.解压内核源代码到某个目录中2.make distclean清理内核中间文件与配置文件3.选择参考配置文件cp /boot/config-2.6.18-53.e15 .config4.配置内核使.config生效make menuconfig退出5.编译内核make bzImage6.编译内核模块mak
2012-04-06 20:00:04
1694
原创 uboot之---make smdk2410_config命令详细解析
广工10转载请标明来源:http://blog.youkuaiyun.com/shiyi_2012/article/details/7420459随便找个uboot源代码就可以啦。 首先进入顶层Makefile。有很多相对不同板子的配置,如:gec2440_config:unconfig @$(MKCONFIG) $(@:_config=) arm arm920t
2012-04-01 22:08:40
8017
原创 U-boot启动第一阶段详细分析
#include #include .globl _start //定义全局变量_start: b reset ; //跳转到reset标号处,现在到那个地方look//中断时候使用,产生中断时,跳到指定位置ldr pc, _undefined_instruction ldr pc, _softwar
2012-04-01 20:32:45
3378
原创 linux内核编译的实质
广工如果有意转载请标明来源:http://blog.youkuaiyun.com/shiyi_2012/article/details/7396785当你解压一个linux内核源代码的时候,里面没有vmlinux文件的。但你对linux编译为某个平台,无论是ARM还是PC都行,都可以发现,你编译后就根目录比原来多了一个文件vmlinux,这就是内核镜像文件。他是如何产生的呢?大家可能知道内核就是通
2012-03-26 21:41:49
4239
原创 菜鸟
再过一学期就大三啦,不过自己都没学到什么,就只会51,真被吹。。。迷茫一了阵子,受身边的人影响,决定学linux+arm,虽和我专业挂钩不大,不过大学四年总该学一些东西。所以这学期买了块ARM9,决定趁现在好好学学,以后能混口饭吃。到了今天,用了一个月时间,总算把linux应用编程过了一遍了。文件IO、进程、进程几种通信、守护进程、线程编程、网络TCP和UDP编程、QT编程都学了一点皮毛。QT这个
2012-03-24 23:15:37
508
原创 QT+网络编程。。适合出学者
广工10级转载请标明来源:http://blog.youkuaiyun.com/shiyi_2012/article/details/7391099先看一下实现的效果:我的这个qt是客户端,只负责接收数据,所以需要一个服务端来发数据。对于服务端,后面我有提供一个服务端程序,大家也可以随便找一个都可以,只要有发送数据就可以的啦。由图可知,这个qt客户端既可以接受同一台计算机同一个系统
2012-03-24 22:01:10
975
原创 QT汉化
广工10级QT是可以汉化的(原创)转载请标明来源:http://blog.youkuaiyun.com/shiyi_2012/article/details/7390937原来红帽5的QT是可以汉化的,步骤相当简单: QT汉化,其实就是在源代码上做一点手脚就可以啦。步骤: 1.编写QT(也可以利用QT designer)产生一些源代码。如本例就是简简单单在QT des
2012-03-24 20:45:06
3209
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人