自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C语言段错误

当我在linux下写c语言的时候经常会遇到段错误.所以就来细究一下. 段错误或段违规(segmentation violation)查看Expert C Programming(Peter Van Der Linden) Pg.156解释到段错误是由于内存管理单元(MMU)的异常所致,而该异常则通常是由于解除引用一个未初始化或非法的指针引起. 就是指针正在引用一个并

2012-03-02 11:13:15 1385

原创 android基础学习笔记1

数据存储l  创建数据库的步骤Ø  通过Helper建立数据库表结构 à onCreate,onuØ  调用helper实例,通过get***Database()得到DB对象Ø  通过DB对象实例调用增删改查方法进行操作l  SQLiteOpenHelper使用方法 Ø  getReadableDatabase()        得到一个可读的dbØ  getWri

2012-02-25 08:43:51 978

转载 copy_from_user 详解

copy_from_user函数的目的是从用户空间拷贝数据到内核空间,失败返回没有被拷贝的字节数,成功返回0.这么简单的一个函数却含盖了许多关于内核方面的知识,比如内核关于异常出错的处理.从用户空间拷贝数据到内核中时必须很小心,假如用户空间的数据地址是个非法的地址,或是超出用户空间的范围,或是那些地址还没有被映射到,都可能对内核产生很大的影响,如oops,或被造成系统安全的影响.所以

2011-11-11 14:34:05 50872

原创 ARM11 Peripheral port setup

今天在UBOOT代码前面加了个点灯程序但是却点不起来,很诧异.后来发现原来要在这部分代码之后才能点灯     ldr r0, =CONFIG_PERIPORT_BASE orr r0, r0, #CONFIG_PERIPORT_SIZE mcr p15,0,r0,c15,c2,4 在网上查了查,就是下面这个博客http://blog.csdn.net/a

2011-10-26 21:33:05 1445

转载 uboot 的nand驱动

s3c2410移植nand支持到uboot, 使用nand.c ,linux mtd 架构 【2】u-boot-1.1.6与1.1.4相比,两者有较大的不同,1.1.6 更像是复制了 kernel 的方法来实现。下面对nand flash的初始化代码nand_init()进行分析:1.如果定义(CONFIG_COMMANDS & CFG_CMD_NAND)没定义(C

2011-10-19 20:51:35 5371

转载 Arm 系统中常用的段分类说明

.text段是代码段。它用来放程序代码(code)。它通常是只读的。 .data段是数据段。它用来存放初始化了的(initailized)全局变量(global)和初始化了的静态变量(static)。它是可读可写的。.bss段是全局变量数据段。它用来存放未初始化的(u

2011-10-14 13:28:57 562

转载 S3C6410启动模式介绍

目前的ARM处理器都支持多种启动模式,S3C6410和以前的Samsung的ARM处理器一样,通过外部管脚OM[4:0]的拉高拉低来决定是从哪个存储设备上启动。我认为S3C6410的User Manual并没有说的很清楚,所以我在最开始使用的时候,也对其启动模式有一些误解,下面就

2011-10-13 18:26:00 506

转载 S3C6410系统控制

S3C6410系统控制器包括两部分:系统时钟控制和电源管理。 一、系统时钟将产生系统所需的时钟信号。共有三个PLL(锁相环)。其中第一个(ARM PLL)为ARMCLK专用,第二个(MAIN PLL)用于HCLK和PCLK,第三个(EXTRA PLL)用于外围设备,特别是

2011-10-13 18:24:08 1553

转载 ARM926EJ-S/ARM920T 协处理器 CP14, CP15详解

ARM 微处理器可支持多达 16 个协处理器,用于各种协处理操作,在程序执行的过程中,每个协处理器只执行针对自身的协处理指令,忽略 ARM 处理器和其他协处理器的指令。ARM 的协处理器指令主要用于 ARM 处理器初始化 ARM 协处理器的数据处理操作,以及在ARM 处理器的寄存

2011-10-06 09:51:12 956

转载 cdev_alloc和cdev_add

转自:http://blog.chinaunix.net/u3/101356/showart_2050054.html内核中每个字符设备都对应一个 cdev 结构的变量,下面是它的定义:linux-2.6.22/include/linux/cdev.hstruct

2011-09-29 10:16:14 3033 1

转载 TASK_KILLABLE:Linux 中的新进程状态

来源:ibm  作者:Avinesh Kumar     Linux® kernel 2.6.25 引入了一种新的进程状态,名为 TASK_KILLABLE,用于将进程置为睡眠状态,它可以替代有效但可能无法终止的 TASK_UNINTERRUPTIBLE 进程状态,以及易

2011-09-24 09:01:26 1383

原创 nfs服务器的搭建

宿主机:ubuntu9.04目标:fl2440在安装之前 先打开DNW或者超级终端,PC机和FL2440连好网线.确保 ubuntu下的 IP地址与开发板的 IP地址在同一网段。二者皆可以通过 ifconfig查询,以及通过它设置 IP地址。如果不在同一网段,请手动设置为同一网段。先ping一下如果成功则OK如果不行,则有可能是很多问题,特别是虚拟机.

2011-06-29 01:43:00 1389

转载 linux-2.6.26内核中ARM中断实现详解(3)

<br />四、中断处理模型 <br />要想弄清楚desc->handle_irq(irq, desc)和我们注册的中断有什么关联,就要了解中断处理模型了。 <br />4.1 中断处理模型结构 <br />中断处理模型如下图所示,<br /> <br />其中NR_IRQS表示最大的中断号,在include/asm/arch/irq.h中定义。 <br />irq_desc[]是一个指向irq_desc_t结构的数组, irq_desc_t结构是各个设备中断服务例程的描述符。Irq_desc_t结构体中

2011-05-14 11:12:00 433

转载 linux-2.6.26内核中ARM中断实现详解(2)

<br />三、中断处理过程 <br />这一节将以S3C2410为例,描述linux-2.6.26内核中,从中断开始,中断是如何一步一步执行到我们注册函数的。 <br />3.1 中断向量表 arch/arm/kernel/entry-armv.S<br />__vectors_start:<br />             swi SYS_ERROR0<br />             b    vector_und + stubs_offset<br />             ldr pc,

2011-05-14 11:11:00 494

转载 linux-2.6.26内核中ARM中断实现详解(1)

<br />看了一些网络上关于linux中断实现的文章,感觉有一些写的非常好,在这里首先感谢他们的无私付出,然后也想再补充自己对一些问题的理解。先从函数注册引出问题吧。<br />一、中断注册方法<br />在linux内核中用于申请中断的函数是request_irq(),函数原型在Kernel/irq/manage.c中定义:<br />int request_irq(unsigned int irq, irq_handler_t handler,<br />                       

2011-05-14 11:10:00 572

转载 linux2.6.28和linux2.6.3xx内核 的struct device 中,bus_id的改变

按照国嵌的代码(LDD那本书上的代码也一样):struct device my_bus = {    .bus_id = "my_bus0",    .release = my_bus_release,};<br />static int my_match(struct device *dev, struct device_driver *driver){return !strncmp(dev->bus_id, driver->name, strlen(driver->name));}<br />编译时

2011-05-12 13:49:00 1041

转载 kobject&kset

简介:关于kobject和kset的介绍 kobjectTable of Contents1 Kobject 1.1 简介 1.2 定义 1.3 相关函数 2 Kobj type 3 kset 3.1 简介 3.2 定义 3.3 相关函数 1 Kobject1.1 简介Kobject 是Linux 2.6 引入的新的设备管理机制,在内核中由struct kobject数据结构 进行描述通过这个数据结构使所有设备在底层都具有统一的接口,kobject提供基本的对象管 理,是构成Linux2.6设备模型的核心结

2011-05-12 09:57:00 582

转载 往寄存器的相应位写值的函数

<br />/*s3c2410_gpio_cfgpin()函数*/<br />/*在寄存器的相应位添加功能值的函数*/<br />/*这个函数非常重要*/<br />/*比如,在寄存器GPH的[13:12]位添加10,就要用到此函数*/<br />/*[13:12]两位共有4种状态,10是S3C2410_GPH6_TXD2,00是S3C2410_GPH6_INP,<br />01是S3C2410_GPH6_OUTP,11是S3C2410_GPH6_nRTS1*/<br />/*<br />#define S

2011-05-11 19:15:00 2040

转载 关于LINUX某些驱动程序如GPIO编译的时候提示未定义的问题

<br />从网上下载了DS18B20的驱动,在编译的时候总是提示 S3C2410_GPF0,S3C2410_GPF0_INP,S3C2410_GPF0_OUTP未定义问题,在网上找了一些,原来是内核版本问题,  在2.6.29和2.6.32中定义不同,如下:  <br />在移植mini2440的驱动到2.6.31的时候,编译提示S3C2410_GPB5、S3C2410_GPB5_OUTPUT等类似的定义缺失。遂在内核中相关的部分arch/arm/mach-2410/include/mach中的头文件寻觅

2011-05-10 09:46:00 1660

转载 s3c2410_gpio_setpin()

<br />s3c2410_gpio_setpin()在gpio.c中<br />作用:设置相应GPIO口的值,<br />如pin=S3C2410_GPB5    to=0   则:设置S3C2410_GPB5的输出值为0<br />如pin=S3C2410_GPB5    to=1 则:设置S3C2410_GPB5的输出值为1<br />void s3c2410_gpio_setpin(unsigned int pin, unsigned int to)<br />{<br />    void __i

2011-05-10 09:10:00 2824

转载 container_of 理解

<br />问题:如何通过结构中的某个变量获取结构本身的指针???<br />关于container_of见kernel.h中:<br />/**<br />* container_of - cast a member of a structure out to the containing structure<br />* @ptr:     the pointer to the member.<br />* @type:     the type of the container struct this

2011-04-06 00:32:00 447

原创 2.4基于虚拟机的Linux内核编译

<br />今天把linux的内核重新编译了一下,周折颇多.<br />我是用vmware虚拟机,linux是redhat9.0.<br />编译的是自带内核2.4.28-8.主要是想把模块加载的选中.<br />再就是体验下linux内核编译.<br /> <br />1、  在/usr/src/linux-2.4.28-8清楚下配置文件make distclean<br />2、  把arch/x86_64/defconfig 拷贝到linux-2.4.28-8的目录下配置内核make menuconf

2011-03-31 00:35:00 708 1

原创 编程珠玑读书笔记——出现次数为多次位图法的实现

是书上的一道问题,文件中保护至多10000000个记录,每条记录都是一个7位整数.你只有1mb的主存(我的编码完成所需内存会略大于1mb,可以用多通道解决,这里暂不实现)每个整数至多只能出现10次.只是把位图法的存储空间变为4bit即用4bit来表示该数的出现次数为0则文件中无此数以下是我自己用c实现的  编译器是vc6.0#define BITSPERWORD 32#define SHIFT 3#define MASK 0x07#define N 10000000int a[4*N/BITSPERWORD

2011-03-28 18:45:00 584

原创 编程珠玑读书笔记——串的转置算法

将一个具有n个元素的一维向量向左旋转i个位置.假若n = 8, i = 3, 那么向量abcdefgh 旋转后为defghabc.1、将待旋转的向量看作是ab两段,假设a比b短,将b分割为b1和b2使b2长度与a相等.交换a、b2,这样ab1b2变为b2b1a这样a已经在自己最终的位置上了.下面的工作就变成了旋转b2b1./**********************************       Fction:将字符串按条件转置       char * p:字符串首地址       int t:所

2011-03-28 01:47:00 570

转载 S3c2440ALCD控制器配置实例

<br /> <br /> <br />发布: 2009-8-15 12:20 |  作者: master |   查看: 0次<br /> <br />本文转自:http://blog.ednchina.com/lihailin560/252722/message.aspx<br /><br />本文所用的是东华TFT液晶屏(WXCAT35),配置为常用的16BPP(5:6:5)模式。<br />先看一下TFT屏的操作时序图:<br /><br />图一 一般TFT型LCD时序图<br />外部引脚信号:

2011-03-25 09:00:00 696

原创 位图排序

这种表示法一般符合3个属性:1、输入范围相对要小2、不包含重复数据3、没有数据与单个整数(主键)以外的每一记录相关联Jon Bentley给出的实现#define BITSPERWORD 32#define SHIFT 5#define MASK 0x1f#defien N 10000000//如果要连续的静态内存空间 还是数组比较好 我用的时候用的是malloc//感觉没有数组好  而且 malloc还容易忘free int a[1+N/BITSPERWORD];//我自己写的时候 用的是  i/32 和

2011-03-24 22:57:00 366

原创 今天开通博客~

<br />今天正式开通我的技术博客~ <br />本博客仅用于记录学习过程、学习资料、学习感想.<br />备忘~<br />希望以后可以以此为平台和大家沟通交流学习方面的经验.<br />文笔不是太好.<br />也希望借此可以锻炼自己~<br /> 

2011-03-21 20:04:00 359

USB2.0官方协议

USB2.0官方协议 完整版 官方原版 适合写USB驱动 和USB硬件开发人员

2012-02-21

MD5加密算法(java)

MD5加密算法(java) 可以拿来直接用

2012-02-21

空空如也

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

TA关注的人

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