自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 国嵌驱动专题四网卡

一、网卡子系统:系统调用接口层、协议无关层、协议栈的实现、设备无关层、设备驱动层序。二、DM9000的驱动设计1、注册平台设备驱动2、匹配设备后,注册网卡net_device,设置net_device_ops2、在open函数中注册接收中断待续。。。

2015-07-12 00:16:31 543

原创 国嵌专题三串口驱动

一、1、tty_fops:tty_open 2、uart_ops:uart_open---------->uart_start3、s3c24xx_serial_ops:s3c24xx_serial_startup

2015-07-11 23:31:41 618

原创 国嵌驱动-专题5-触摸屏驱动程序设计

一、我的学习理解:1、输入子系统就是外部触发一次事件,最后由用户空间读取到事件的信息。2、先注册一个输入型设备,设备会匹配到handler(处理者),handler会创建设备文件,还需要注册字符设备。3、触发事件时,会上报给注册好的输入型设备,对应的handler会调用event函数,这个函数会把事件的信息打包后保存于buffer4、用户层会访问到该字符设备的fops,从而就得到了

2015-07-11 19:21:01 160

原创 国嵌驱动专题一二

一、使用字符设备驱动1、编译驱动、安装;创建设备文件;访问设备2、设备描述结构cdev:结构定义;设备号dev_t;设备操作集3、驱动初始化:分配设备描述结构;初始化设备描述结构;注册设备描述结构4、设备号为unsigned int;MKDEV;MAJOR;MINOR5、动态分配主设备号:alloc_chrdev_region;驱动退出时:unregister_chrdev_r

2015-07-08 22:32:16 430

原创 国嵌C++专题3-八剑齐飞

十五、 1、默认为private继承,父类的所有成员在子类中变为private成员2、public继承,父类成员在子类中保持原有访问级别3、protected成员可以在子类中被访问,但不能在外界被访问十六、 1、赋值兼容性原则:子类对象可以当作父类对象使用2、在子类对象构造的时候需要调用父类构造函数对其继承得来的成员进行初始化;3、当父类的构造函数有参数时,需要在子类的

2015-07-05 21:27:56 926

原创 国嵌C++专题2-乾坤合一

八、1、class定义类时,所有成员默认属性为private;struct则默认为public2、类的精华在于封装九、构造与析构1、初始状态是对象普遍存在的一个状态2、与类名相同的成员函数叫构造函数,可以有参数,但没有任何返回类型的声明3、 无参构造函数:当类中没有定义构造函数时,编译器默认提供一个无参构造函数,并且其函数体为空拷贝构造函数:简单的进行成员变量的值复

2015-07-04 18:59:24 936

原创 国嵌C++专题1-蜕变成蝶

一、C:Objective-C、C++C++:Java、C#、DJava:JavaScript、ActionScript二、1、普通引用在声明时必须用其他的变量进行初始化2、const引用,让变量拥有只读属性3、Type& name>Type* const name4、当函数返回值为引用时:若返回栈变量,不能成为其他引用的初始值,也不能作为左值使用,若返回静

2015-07-04 18:09:19 758

原创 c语言栈的理解

1、为什么需要堆?变量和数组都是内存的别名,如何分配这些内存由编译器在编译期间就决定,(程序运行期间可能会需要额外的内存空间)如果用堆动态分配内存,则程序只会在运行的时候才会分配内存空间,用完就释放,这样会更好的利用内存。2、静态存储区程序在编译期,静态存储区的大小就已经确定;随着程序的运行给变量分配存储空间

2015-06-06 22:34:00 377

原创 国嵌裸机开发下学习

一、MMU1、建立页表2、写入TTB  (cp15-c2)3、打开MMU二、按键中断编程1、初始化按键2、初始化中断控制器3、中断处理:①、判断产生的中断源②、执行不同的中断处理4、中断清除(EINTPEND、SRCPND、INTPND)注意:中断模式下要设置不同的栈!三、初始化nandflash初始化NFCONF(时序)初始化NFCONT复位

2015-04-26 19:19:44 681

原创 c语言链表

今天去面试,被要求编写双向链表的创建、插入、删除等;还有就是随机生成一组数,然后排序;真是丢,回来花了几个小时重新好好的编了一个单链表。#include #include #include typedef struct list{ int data; struct lsit *next;}List;void init_list(List **plist) //初

2015-04-14 07:48:15 315

原创 乌班图 LINUX 使用

一、原版的VI使用很不方便,下载vim后顺利使用二、ifconfig   eth0没有显示ip地址    解决方法:你的IPv4没有配置,所以你的inet addr没有咯.可以使用ifconfig eth0 inet up 192.168.0.1 这样来配置不过重启后就会自动消除的固定的话就在/etc/network/inteface文件里面配置allow-hotplug

2015-04-09 18:57:14 1192

原创 《c陷阱与缺陷》学习总结

花了一天时间看完了传说中的c语言三杰中的最后一本书,毕竟这书才一百多页,讲的东西有些让我失望。看完之后还是把我觉得学到的东西记录一下一、词法陷阱1、编译器将程序分解成符号的方法是:从左到右一个字符一个字符地读入,如果该字符可能组成一个符号,那么再读入下一个字符,重复判断,直到字符组成的字符串已不再可能组成一个有意义的符号。这个处理策略叫“贪心法”或“大嘴法”2、整型常量的第一个

2015-04-06 23:42:00 515

原创 C语言编程练习(二)

/* *规反向输出字符串 *author:jxb *date:2015\4\4 * */#include void reverse(char *str){ if (*str == '\0') { return 0; } else { reverse(str+1); //递归;不能使用(str++) printf("%c",*str);

2015-04-05 12:03:36 366

原创 c语言编程练习(一)

/* *文件中有一组整数,要求排序后输出到另一个文件中 *author:jxb *date:2015\4\3 */#include #include #include int num ; char c;FILE *fd;void get_data(int *scr,int *len){ *len = 0; num = 0; fd = fopen("1.txt"

2015-04-03 23:11:57 415

原创 嵌入式面试题学习

一、数组声明int a;  一个指向整型数的指针int **a; 一个指向指针的指针,指向的指针指向一个整型数int a[10]; 有10个整型数的数组int *a[10];有10个指针,指向整型数的int (*a)[10];10个整型数数组的指针int (*a)(int);指向一个函数的指针,函数参数为整型数,返回值为整型数int (*a[10

2015-04-02 23:55:33 454

原创 驱动程序的高级机制使用初步

一、异步通知1、目的:为了使驱动控制通知应用程序执行操作,同进程之间发信号signal2、方法: 应用程序: fcntl(fd , F_SETOWN , pid)  指定一个进程作为文件的“属主(filp->owner)”,这样内核才知道信号要发给哪个进程oflags = fcntl(fd , F_GETFL)fcntl(fd, F_SETFL, Oflags | FA

2015-04-01 20:55:30 396

原创 内核驱动之poll机制

app: pollkernel: sys_polldo_sys_poll(.....,timeout_jiffies)poll_initwait(&table);init_poll_funcptr(&pwd->pt,_pollwait);  > table -> qproc = _pollwaitdo_poll(nfds, head, &table, timeout)for

2015-04-01 16:41:42 456

原创 字符设备驱动之中断按键驱动

1、注册设备描述结构:major = register_chrdev(0,"", file_operation);\2、自动创建设备节点: class_create();class_device_create();注: mdev是busybox自带的一个简化版的udev,作用是在系统启动和热插拔或动态加载驱动程序时,自动产生驱动程序所需的节点文件,在文件系统中的/dev目录下的设备节点

2015-04-01 09:43:13 364

转载 内核驱动学习(三)

一、驱动设备1、驱动设备分类:字符设备;块设备;网络接口;注:块设备是以块(通常是512字节)为最小传输单位的设备,块设备不能按字节处理数据。而linux则允许块设备传送任意数目的字节其他分类:USB设备;PCI设备;平台总线设备(platform虚拟总线)二、使用字符设备驱动1、编译,安装驱动文件2、创建设备文件3、编写应用程序注:设备文件与设备驱动程序是靠什么来

2015-03-30 21:52:28 422

转载 内核驱动学习(二)

一、内核模块设计1、必须包含的头文件   2、函数入口module_init()  //函数出口 module_exit()3、编译内核模块的Makefileobj-m = hello.o/多个点c文件/hello-objs := hello.o simple.o(KDIR) := "/lib/modules/2.6.18-53.e15/build" all:m

2015-03-30 08:25:20 305

转载 内核驱动学习(一)

一、内核简介1、linux系统分为用户空间与内核空间,用户空间包括应用程序和C库,内核空间包括系统调用接口(sci)、狭义内核、体系结构相关内核代码( Architecture-Dependent Kernel Code)2、划分为用户空间和内核空间的原因是:CPU有不同的工作模式,linux利用这个特性,使操作系统本身得到保护;;应用程序运行在用户模式。3、通过系统调用和硬件中断可以

2015-03-29 22:18:47 516

原创 线程与CPU核的关系

感谢这篇文章及评论解决了我最近的疑惑《http://bbs.csdn.net/topics/320003381》1、单核CPU同一时刻只能运行一个线程2、多线程的作用在于:做某个耗时的操作时,需要等待返回结果,这时用多线程可以提高程序并发程度。如果一个不需要任何等待并且顺序执行能够完成的任务,用多线程简直是浪费。3、线程是系统最小的调度单位

2015-03-27 21:08:21 664

原创 守护进程的学习

《http://blog.csdn.net/wanxiao009/article/details/5532929》《http://wenku.baidu.com/view/d6d6c3370b4c2e3f572763cf.html》看完以上两篇文章后的疑问:关闭不需要的文件描述符。for(i=0;iclose(i);疑惑 文件描述符与进程的关系,当守护进程关闭

2015-03-27 20:27:49 342

转载 文件锁

一、排他锁:事务T对文件A加上该锁后,则其他事务不能再对A加任何类型的锁,直到在事务的末尾将资源上的锁释放为止,获取排他锁的事务既能读数据,也能修改数据共享锁:事务T对文件A加上该锁后,其他事务只能对A加共享锁,不能加排他锁,直到已释放所有共享锁,获共享锁的事务只能读数据,不能修改数据。。二、Linux有两种方法可以实现文件锁:使用fcntl系统调用与使用lockf调用

2015-03-27 17:06:17 401

转载 文件映射mmap

学习文献《http://c.biancheng.net/cpp/html/138.html》头文件:#include    #include 定义函数:void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offsize);函数说明:mmap()用来将某个文件内容映射

2015-03-27 16:58:31 340

转载 IO多路复用之select总结

http://www.cnblogs.com/Anker/archive/2013/08/14/3258674.htmlhttp://konglingchun.is-programmer.com/posts/12146.htmlhttp://blog.163.com/smileface100@126/blog/static/27720874200951024

2015-03-27 16:20:15 338

转载 Sundy视频学习------TCPIP编程基础

一、 字节序:多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序 主机序 //网络序 常见的字节序:Little endian (小端)将低序字节存储在起始地址 大端:将高位字节存储在起始地址 htonl(host to net long)/htons/ntohs/ntohl大小端模式的转换 二、IP地址及端口号 struct

2015-03-26 23:28:25 460

转载 多线程程序设计学习

http://www.cnblogs.com/cs-jin-note/archive/2012/10/30/2746468.htmlhttp://wenku.baidu.com/view/0643867e8e9951e79b89273d.html1、什么是多线程: 《百度百科》:每个正在系统上运行的程序都是一个进程。每个进程包含一个到多个线程。进程也可能是整个程序或者部分程序的动态执行。

2015-03-26 11:31:48 274

原创 小智慧大应用二

一、无名管道pipe pipe、write、read 只能用于父子进程间通信, 二、有名管道fifo mkfifo、unlink、open、close、write、read 当写管道完成后会处于阻塞状态,直到有读进程访问管道 三、信号 signal kill、signal、pause 四、信号量 Semaphore ftok、s

2015-03-25 18:56:53 297

原创 小应用大智慧学习笔记

一、gdb的使用 1、使用gcc -g 编译 2、gdb + 文件名 启动gdb 3、设置断点:break(b) + 函数名 break(b) + 行号 break(b) + 文件名:行号 4、run运行程序 5、next(n)单步执行

2015-03-24 17:06:09 585

空空如也

空空如也

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

TA关注的人

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