狐狸梦见乌鸦

当坚持成为一种习惯,目标将不在遥远```
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2012年3月4日

摘要: 写驱动流程:1.原理图-à输出高电平 led亮2.对应核心板的GPIO口3.查看寄存器地址4.了解管脚的功能5.开始写驱动①许可证②加载函数申请设备号MKDEVRegister_chrdev_regionAlloc_chrdev_region注册设备CdevFile_oparetions---àopen/releaseCdev_initCdev_add寄存器映射Ioremap(PA,size)配置寄存器(读改写的方式)Readll()Write()③卸载函数取消映射注销设备释放传参时: 将字符串转换成整数;按键 驱动:1.原理图2.外部中断,下降沿触发Request_irq 阅读全文

posted @ 2012-03-04 11:14 灬啊U 阅读(946) 评论(0) 推荐(0) 编辑

2012年2月13日

摘要: 2012-2-13ARM_异常和中断问题1.中断向量表为于存储器的什么位置? ARM7系列,除ARM720T可以放高端地址,ARM9或更高都放高端地址上。 2.FIQ或IRQ异常返回指令是什么? 答案见下面。。。。 3.什么类型的异常优先级最高? 复位(Reset) 4.什么指令可以放在中断向量表? ①B 指令(优点:操作方便;缺点:范围PC正负32MB) 为什么BL不可以? ②MOV (优点4G范围内不受地址范围,但是受合法立即数的限制) ③LDR 不受空间限制,不受立即数限制,但它是伪指令,编译器自动转换为 LDR PC,[PC,#offset] 缺点offset的范围是 正负4095 . 阅读全文

posted @ 2012-02-13 20:27 灬啊U 阅读(1315) 评论(1) 推荐(0) 编辑

2012年2月12日

摘要: ARM指令:1.几种简单的和重要的伪指令 1.AREA:定义一个段,代码段 code、数据段data、自己定义的段 2.CODE32/CODE16:指令类型32位arm,16位thumb。(不指定,默认为32位arm) 3.ENTRY:程序入口 4.EXPORT/IMPORT:export声明一个符号可以被其他文件引用,import在当前文件引用一个其他文件声明的符号(类似于C语言中的exstern)。 5.EQU:常量定义,相当于C语言中的#define 6.label:所有顶格写的为标号(只有label可以顶格写),标号就是地址,相当于C语言中的函数名 7.DCD:连续分配一个字的内存单元 阅读全文

posted @ 2012-02-12 09:37 灬啊U 阅读(608) 评论(0) 推荐(0) 编辑

2012年2月9日

摘要: 2012-2-9一、嵌入式系统1.定义:以应用为中心,计算机技术为基础,软硬件可裁剪,适合应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。2.特点i专用,软硬件可裁剪可配置ii低功耗、高可靠性、高稳定性。iii软件代码短小精悍④代码可固化(为提高执行速度和系统可靠性,嵌入式中的软件一般固化在存储器芯片中或单片机本身中,而不是存储于磁盘中)⑤实时性(嵌入式系统不等于实时系统)3.组成i应用软件-----嵌入式操作系统------硬件设备ii嵌入式硬件设备包括:嵌入式处理器和外围器件。iii核心是嵌入式处理器(CPU)它与通用处理器的区别:① 嵌入式处理器大多工作在为特定用户群 阅读全文

posted @ 2012-02-09 17:42 灬啊U 阅读(648) 评论(0) 推荐(0) 编辑

2012年2月8日

摘要: 数据结构组成: 顺序表\链表 顺序栈\链栈 邻接矩阵\邻接表1 逻辑结构(前驱和后继来判断)线性结构:线性表 栈 队列非线性结构:树(节点), 图(顶点)2 存储结构① 顺序存储:将数据结构中的各个元素按照其逻辑的顺序存放于一片连续的存储空间中。。。。。如:数组② 链式存储:将数据结构中的各元素分布到储存器的不同点,用地址或者链指针方式建立他们的联系。(链式存储结构是重点,因为数据结构中的元素的关系在计算机内部很大程度上是通过地址或者指针来建立的)③ 索引存储:数据文件 + 索引表。。。。例如:判断2个字符串中相同元素的个数,利用了ASCII表。④ 散列(Hash) :根据数据元素的字符特殊字 阅读全文

posted @ 2012-02-08 15:35 灬啊U 阅读(265) 评论(0) 推荐(0) 编辑

摘要: 网络编程IO模型:1.主要的4种IO模型:①阻塞IO:最常用,简单,效率最低②非阻塞IO:可防止进程阻塞在IO操作上,需要轮询。。。③IO多路复用:允许同时对多个IO进行控制。④信号驱动IO:2.阻塞IO:--read函数:----阻塞,需要内核去唤醒该进程。。。。--write阻塞:主要发生的情况??用户缓冲区:???数组。。UDP无发送缓存区,写操作sendto永远都不会阻塞。()3.非阻塞IO------使用比较少,了解有这种模式--缓冲区满,不阻塞,它返回一个错误编号--例如 waitpid(-1,&a, WHOHANG )--例如 fifo open()参数中加入非阻塞参数f 阅读全文

posted @ 2012-02-08 15:29 灬啊U 阅读(978) 评论(0) 推荐(0) 编辑

2012年2月1日

摘要: QT开发,需要的一些知识点1.构造函数 拷贝构造函数 赋值函数 析构函数2.继承----派生类得构造函数3.命名空间 引用命名空间:using namespace std;class A{ namespace n1{ void f(){}}。。。。。cout << "hello"<<endl;}或者 无命名空间则 std::cout<< “hello”<<std::endl;g++ file.cpp –Wall 编译C++程序5.C++中类内的成员函数默认为私有。。。私有只能类内函数使用6.申明一个类的对象(实例)来调用函数。。。或者将函数加一个 static申明为静态 阅读全文

posted @ 2012-02-01 07:48 灬啊U 阅读(409) 评论(0) 推荐(0) 编辑

2012年1月19日

摘要: c语言中需要内存来存放数据。而内存主要分为两类:静态存储区和动态存储区;1.静态存储区分为:只读数据(READONLY DATA)区、以读写数据(RW DATA)区、未初始化区(BSS)。它们都是在程序编译连接阶段确定的,在程序执行的阶段不会改变。2.动态存储区分为堆和栈。都是程序执行的过程中动态分配的,大小也随之动态变化。从内存管理的实现的角度看来,堆使用的链表实现的,而栈使用的是线性存储的方法。栈:栈是先进后出,实际的操作中,栈内存可以有满栈和空栈的情况,满栈的情况下,栈指针当前的位子是已经使用的的栈区域;空栈的情况是,栈指针当前的位子是没有使用的栈区域,所以两种情况的出入栈,指针和数据的 阅读全文

posted @ 2012-01-19 00:03 灬啊U 阅读(1772) 评论(0) 推荐(1) 编辑

2012年1月11日

摘要: 1.UDP 实时性比较好----例如:看视频2.数据报套接字服务器流程: (先接收在发送)1.创建套接字----数据报式套接字 SOCK_DGRAM2.绑定3.recvfrom接受信息并获得对方地址----------------TCP是通过accept获得对方地址参数前4个与TCP的recv参数一样src_addr (对方的地址)如果为非空,底层协议提供源地址。addlen 必须初始化,先申明一个socke_t len = sizeof(struct sockaddr);4.sendto 回复消息参数前4个与TCP的send参数一样dest_addrdest_len5.关闭客户端流程:1.创 阅读全文

posted @ 2012-01-11 17:39 灬啊U 阅读(171) 评论(0) 推荐(0) 编辑

2012年1月10日

摘要: 一、拥有自信和风度男人到了二十几岁后,就要开始学着用心去经营自己了,它体现在自己的思想与涵养上。自信是一个男人最重要的品质,自信的男人就你像一只在暴风雨中战斗的海鸥。海鸥所要说的只有一句话“让暴风雨来的再猛烈些吧”,只因为它无所畏惧。一个自信的男人,总是能够感染别人,无论这些人是朋友还是敌人。要使别人对你有信心,就必须要先对自己充满信心。自信的男人可以战胜一切困难。一个有风度的男人就像一片大海,不拒点滴,又包容江河。有风度使男人得到更多的青睐,不争眼前才能够放眼世界,给予别人才能够受益无穷。正所谓“宰相肚里能撑船”,一个心如大海的男人,肚中不知能撑多少船呀!风度偏偏让男人看上去潇洒万千。二、养 阅读全文

posted @ 2012-01-10 19:47 灬啊U 阅读(213) 评论(0) 推荐(0) 编辑