自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 资源 (2)
  • 收藏
  • 关注

原创 一个灵活的打印控制

#include typedef enum {    GT_TraceState_Disable = 0x00000000,    GT_TraceState_Enable   = 0x00000001,    GT_TraceState_EndValue = 0x00000002} GT_TraceState;typedef enum {    GT_ERR = 0x

2015-04-30 10:52:41 493

转载 get_ds, set_fs, get_fs函数的使用

在linux内核编程时,进行系统调用(如文件操作)时如果要访问用户空间的参数,可以用set_fs,get_ds等函数实现访问。get_ds获得kernel的内存访问地址范围(IA32是4GB),set_fs是设置当前的地址访问限制值,get_fs是取得当前的地址访问限制值。进程由用户态进入核态,linux进程的task_struct结构中的成员addr_limit也应该由0xBFFFFFFF变为0

2014-07-31 14:00:59 720

转载 git命令

Git配置git config --global user.name "robbin" git config --global user.email "[email protected]"git config --global color.ui truegit config --global alias.co checkoutgit config --global alias.ci

2014-02-27 19:46:51 710

转载 linux本地建立git仓库管理代码

关于在本地建立一个git中心仓库,用来管理代码例子:1、在需要管理的文件夹下执行下面命令: git init  和  git add .   git commis -s ;2、在需要存放git仓库的目录执行:git clone --bare (上面对应的目录)3、在任意目录即可通过 git clone 下载这个仓库了...

2014-02-27 19:26:56 4701 1

转载 一个可编辑下拉框的例子

A类    B类    C类    D类

2013-11-06 16:50:12 807

原创 在windows下使用git

安装Git-1.8.4-preview20130916.exe文件打开Git  Bash控制台在http://git.oschina.net中利用git管理项目git中颜色配置1.git config --global color.diff auto2.git config --global color.status auto3.git config --globa

2013-10-14 20:58:21 926 2

转载 ARM中断返回PC值分析

ARM中断返回PC值分析在ARM程序的开发过程中,对中断的处理是很普遍的、也是相当重要的。Realview MDK使用的RVCT编译器提供了__irq关键字,用此关键字修饰的函数被作为中断来函数编译,即在编译的过程中,编译器会自动添加中断处理过程中现场保护和恢复的代码,减小程序的开发难度,加快软件的开发过程。在理解__irq关键字的作用之前,先看一下ARM核对异常的处理过程。当产生异常

2013-04-16 18:29:33 2196 1

转载 去掉linux系统vi中出现^M字符的方法

去掉linux系统vi中出现^M字符的方法: ^M符号是windows系统下的換行符,在windows下的文本通过bin模式ftp上传到了unxi空间出现的,要去掉这些结束符,我们可以用dos2unix命令去掉,也可以直接在vi中操作去掉,实现方法如下:在test.txt文件中有如下内容: eeesdgtdfg dfgdfgfdgfd ^M ineesert into pusf

2013-03-19 15:06:05 1327

原创 线程优先级获取的例子

1. 通过进程名找到进程号my_pid=`ps gaux |grep "kdvmt.linux"| grep -v grep |awk '{print $2}'`2.如何获得每个进程中所有线程的信息所有的信息都在/proc/$my_pid/task中,其中stat尤为重要,可以通过man proc查看具体的信息。 还有查看进程的几个重要命令ps -eLfps -aux

2012-11-14 18:36:53 1397

原创 中断注册函数整理

中断注册函数整理ArchIpcInt_interruptRegister (obj->remoteProcId,                         obj->params.localIntId,                         _NotifyDriverShm_ISR,                         (Ptr) obj);In

2012-09-26 18:12:45 1202

原创 中断响应后函数调用

中断响应后函数调用:ArchIpcInt_interruptRegister (obj->remoteProcId,                        obj->params.localIntId,                        _NotifyDriverShm_ISR,                        (Ptr) obj);这个函数在

2012-09-26 18:11:59 3195

原创 Notify_registerEvent的实现过程

Notify_registerEvent的实现过程同样我们从用户态下的Notify_registerEvent函数开始:Int  Notify_registerEvent (UInt16                procId,                      UInt16                lineId,                      UIn

2012-09-26 18:10:51 8674

原创 Notify_module和ArchIpcInt_object

现在我们来看看关于Notify_module->notifyHandles [procId][lineId]这个结构是如何赋值的:主要就是通过下面三个函数:Int  NotifySetupDm8168_attach (UInt16 procId, Ptr sharedAddr){    NotifySetup_driverHandle [procId] = NotifyDriver

2012-09-26 18:09:33 711

原创 Notify_sendEvent的实现过程

一.  Notify_sendEvent的实现过程首先是从用户态的Notify_sendEvent函数开始Int Notify_sendEvent (UInt16              procId,                  UInt16              lineId,                  UInt32              eventId

2012-09-26 18:08:09 3210

转载 Linux system函数返回值

例:[cpp] view plaincopyprint?status = system("./test.sh");  1、先统一两个说法:(1)system返回值:指调用system函数后的返回值,比如上例中status为system返回值(2)shell返回值:指system所调用的shell命令的返回值,比如上例中,test.sh中返回的值为

2012-07-04 16:53:11 1373

转载 uboot简要分析

本次移植使用的是U-boot-2009.11。    先来看看源码目录结构,再按照代码的执行顺序简单地分析源码1.U-boot源码整体框架源码解压以后,我们可以看到以下的文件和文件夹: cpu与处理器相关的文件。每个子目录中都包括cpu.c和interrupt.c、start.S、u-boot.lds。cpu.c初始化

2012-06-27 13:13:36 1121

转载 uboot代码简要分析

本次移植使用的是U-boot-2009.11。    先来看看源码目录结构,再按照代码的执行顺序简单地分析源码1.U-boot源码整体框架源码解压以后,我们可以看到以下的文件和文件夹: cpu与处理器相关的文件。每个子目录中都包括cpu.c和interrupt.c、start.S、u-boot.lds。cpu.c初始化

2012-06-27 13:07:56 4390

转载 uboot使用

我一贯认为:对于一个技术类的东西,你连用都不会用,那根本就不可能会开发。就好像一个人连Linux不会用,那还谈何开发Linux程序呢?    同样的要开发和移植U-boot,首先要对U-boot有一定的了解,起码要会使用。    所以这里我们首先熟悉一下U-boot的使用以及如何将U-boot烧入mini2440。    当然在这之前首先必须保证你的板子上已经有了U-boot。如果没有

2012-06-27 11:50:02 8675

转载 uboot简介

1、嵌入式Linux软件结构与分布在一般情况下嵌入式Linux系统中的软件主要分为以下及部分:(1)引导加载程序:其中包括内部ROM中的固化启动代码和Boot Loader两部分。而这个内部固化ROM是厂家在芯片生产时候固化的,作用基本上是引导Boot Loader。有的芯片比较复杂,比如Omap3,他在flash中没有代码的时候有许多启动方式:USB、UART或以太网等等。而S3C2

2012-06-27 11:44:39 2490

转载 LDR与ADR区别(转)

LDR与ADR区别(转)在资料中,ADR的定义为:小范围的地址读取伪指令,ADR指令将基于PC相对偏移的地址值读取到寄存器中,在编译源程序时ADR伪指令被编译器替换成一 条合适的指令。通常,编译器用一条ADD指令或SUB指令来实现该ADR伪指令的功能,若不能用一条指令实现,刚产生错误。在如上的定义中,有两个关键信息:⑴将基于PC相对偏移的地址值读取到寄存器中;⑵被编译器替换

2012-06-25 16:33:51 5741

转载 U-boot的环境变量: bootcmd 和bootargs

u-bootcmd    前面有说过bootcmd是自动启动时默认执行的一些命令,因此你可以在当前环境中定义各种不同配置,不同环境的参数设置,然后设置bootcmd为你经常使用的那种参数。u-bootargs    bootargs是环境变量中的重中之重,甚至可以说整个环境变量都是围绕着bootargs来设置的。bootargs的种类非常非常的多,我们平常只是使用了几种而已,感兴趣的可

2012-06-15 10:48:23 543

转载 bmp文件的读写

#include "stdio.h"#include "stdlib.h"#define PIXPLINE  320typedef struct tagRGBQUAD{     //定义每个像素的数据类型        unsigned char  rgbBlue;        unsigned char  rgbGreen;        unsigned ch

2012-06-14 10:29:07 1213 1

转载 linux下pppoe服务器搭建

查看是否安装所需要的包。[root@MASTER ~]# rpm -qa |grep rp-pppoerp-pppoe-3.5-32.1配置文件目录在/etc/ppp下[root@MASTER ppp]# lschap-secrets         ioptions         ip-up          ipv6-up      peersfirewall-mas

2012-06-12 11:29:31 15566 1

转载 linux下telnet服务端配置

服务器:CentOS-5.1(192.168.1.87)客户机:FC6(192.168.1.86) Windows XP(192.168.1.88)虽然telnet的明文传输有很大的安全隐患,而且现在基本上也被SSH来取代了,但是为了学习还是有必要了解一下,好了,进入正题实验名:telnet服务器配置一、安装telnet软件包(通常要两个)。    1、 tel

2012-06-12 11:13:01 9532

转载 malloc申请大内存报错分析

每个进程会有4G的虚拟地址空间, malloc得到的的地址都是虚拟地址, 并且当malloc的时候, 操作系统并不会将实际的内存分配给进程的, 所以malloc只会占用进程自身的虚拟地址空间。我以前也做过申请内存的测试,并且写了一个短文:操作系统: Redhat Linux AS5 32bit服务器内存: 4G服务器类型: I32最近写搜索引擎, 因为创建索引需要大量的

2012-06-08 11:33:32 5521 2

转载 tlb刷新的懒惰模式

tlb是一种缓存,缓存的内容是虚拟地址和物理页面的对应关系,每当一个新进程投入运行的时候,tlb就要被刷新,否则就会出现混乱,但是因为linux 的所有进程的内核部分的页面映射是一样的,而且内核线程又不访问用户空间,所以当内核线程运行的时候,tlb是不必马上刷新的,呵呵,这又给内核线程的淫 乱创造了机会。为啥这么说呢?因为tlb没有被刷新,那么比如说内核线程运行前一个用户线程t在运行,其tlb中的

2012-06-06 15:19:43 1200

转载 实模式与保护模式

1.虚拟8086模式是运行在保护模式中的实模式,为了在32位保护模式下执行纯16位程序。它不是一个真正的CPU模式,还属于保护模式。 2.保护模式同实模式的根本区别是进程内存受保护与否。可寻址空间的区别只是这一原因的果。 实模式将整个物理内存看成分段的区域,程序代码和数据位于不同区域,系统程序和用户程序没有区别对待,而且每一个指针都是指向 "实在 "的物理地址。这样一来,用户程序的一个

2012-06-06 13:56:09 617

转载 Linux系统调用的实现机制分析

Linux系统调用的实现机制分析 Sailor_forever [email protected]转载请注明http://blog.csdn.net/sailor_8318/archive/2008/09/10/2906968.aspx 【摘要】本文介绍了系统调用的一些实现细节。首先分析了系统调用的意义,它们与库函数和应用程序接口(API)有怎样的关系

2012-06-06 13:39:43 1823

转载 S3C2440中断介绍

1.1   S3C2440系统中断CPU和外设构成了计算机系统,CPU和外设之间通过总线进行连接,用于数据通信和控制,CPU管理监视计算机系统中所有硬件,通常以两种方式来对硬件进行管理监视:l  查询方式:CPU不停的去查询每一个硬件的当前状态,根据硬件的状态决定处理与否。好比是工厂里的检查员,不停的检查各个岗位工作状态,发现情况及时处理。这种方式实现起来简单,通常用在只有少量外设硬件的系

2012-05-31 14:11:51 4325

转载 S3C2440 SDRAM

http://blog.csdn.net/mr_raptor/article/details/6555786++++++++++++++++++++++++++++++++++++++++++ SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存储器)也就是通常所说的内存。内存的工作原理、控制时序、及相关控制器的配置方法一直是

2012-05-30 16:17:58 3698

转载 完成量实现线程同步

#includelinux/init.h>#includelinux/module.h>#includelinux/sched.h>#includelinux/sem.h>MODULE_LICENSE("Dual BSD/GPL");struct completion my_completion1;struct completion my_completion2;//定

2012-05-28 14:03:53 520

转载 uboot启动参数设置分类及方法

uboot启动参数设置分类及方法2010-11-17 14:46:54|  分类:默认分类 |  标签:|字号大中小 订阅一、nfs启动内核与根文件系统,内核与根文件系统都在nfs上bootargs=noinitrd root=/dev/nfs rw nfsroot=192.168.0.1:/home/tekkaman/working/nfs/rootfs

2012-05-26 10:25:11 983

转载 uImage与Image的区别

内核编译(make)之后会生成两个文件,一个Image,一个zImage,其中Image为内核映像文件,而zImage为内核的一种映像压缩文件,Image大约为4M,而zImage不到2M。        那么uImage又是什么的?它是uboot专用的映像文件,它是在zImage之前加上一个长度为64字节的“头”,说明这个内核的版本、加载位置、生成时间、大小等信息;其0x40之后与zIm

2012-05-24 14:07:52 3349

转载 中断例子

usage: Compiling this file by make and using the following command to insert the mode which the make generated just nowcommand: sudo insmod filename.ko irq=1 devname=myirqThis interrupt shared t

2012-05-23 17:25:24 833

转载 从虚拟地址转为物理地址

/* mtest_dump_vma_list():打印出当前进程的各个VMA,这个功能我们简称”listvma” mtest_find_vma(): 找出某个虚地址所在的VMA,这个功能我们简称“findvma” my_follow_page( ):根据页表,求出某个虚地址所在的物理页面,这个功能我们简称”findpage” mtest_write_val(), 在某个地址写上具体

2012-05-23 17:24:28 885

转载 简单字符设备应用

#include #include #include #include #include #include #include #include #include #include #include #include MODULE_LICENSE("Dual BSD?GPL");int memory_open(struct inode *ino

2012-05-23 17:21:53 418

转载 信号量实现内核线程同步例子

#include #include #include #include MODULE_LICENSE("GPL");int num[2][5] = {{0, 2, 4, 6, 8},{1, 3, 5, 7, 9}};struct semaphore sem_first;struct semaphore sem_second;int thr

2012-05-23 17:20:23 544

转载 定时器简单应用(挂起进程)

#include #include #include #include #include struct timer_list stimer; //定义定时器int timeout = 10 * HZ;static void time_handler(unsigned long data){ //定时器处理函数,执行该函数获取挂起进程的pid,唤醒该进程struct

2012-05-23 17:19:31 1155

转载 内核定时器的例子

#include #include #include #include #include struct timer_list stimer; //定义定时器static void time_handler(unsigned long data){ //定时器处理函数mod_timer(&stimer, jiffies + HZ);printk("cu

2012-05-23 17:17:48 471

转载 嵌入式文件系统

Linux 支持多种文件系统,包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等,为了对各类文件系统 进行统一管理,Linux引入了虚拟文件系统VFS(Virtual File System),为各类文件系统提供一个统一的操作界面和应用编程接口。Linux启动时,第一 个必须挂载的是根文件系统;若系统不能从指定设备上挂载根文件系统,则系统会出错而

2012-05-23 11:21:06 738

linux的配置详细资料

linux安装后配置详解 包括安装mysql appache 等

2010-03-11

QT OPENGL学习

QT4下OPENGL运用实例 有助于新学习OPENGL和QT的同志

2010-03-11

空空如也

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

TA关注的人

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