狐狸梦见乌鸦

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

随笔分类 -  嵌入式

摘要:存储器可分为易失性存储器和非易失性存储器,易失性存储器一般有:SRAM、DRAM、SDRAM等,而非易失性存储器有:ROM(只读存储器)、PROM(可编程式只读存储器)、EPROM(电可改写只读存储器)、EEPROM(电可擦除编程式只读存储器)、FLASH Memory(闪存)等。若数据需要长期保存,则必须存储在非易失性的存储器里面。易失性存储器在掉点之后数据无法保存,将会丢失,而非易失性存储器在掉电之后仍然可以保存资料。SRAM:中文名为静态随机访问存储器,不需要进行刷新操作,只要不掉电数据就不会丢失。“随机访问”意味着存储器里面的内容可以以任何顺序进行访问。缺点是集成度低。常用作告诉缓.. 阅读全文

posted @ 2013-01-22 09:06 灬啊U 阅读(340) 评论(0) 推荐(0)

摘要:makefile:会不会写makefile,从一个侧面说明一个人是否具备完成大型工程的能力。因为makefile关系到整个工程的编译规则。一个工程中的文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,那些文件需要先编译,那些文件需要后编译,那些文件需要重新编译,甚至一些更复杂的功能操作,因为makefile就像一个shell脚本一样,其中也可以执行操作系统的命令。makefile带来的好处是----自动化编译,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发效率。make是以个命令工具,是一个解释makefile中指令 阅读全文

posted @ 2013-01-22 08:57 灬啊U 阅读(177) 评论(0) 推荐(0)

摘要:一、选择桥接模式,一直提示wirdnetwork链接错误问题,解决方法:①通过修改配置文件:(选择桥接模式)sudovi/etc/network/interfaces打开后里面可以设置DHCP或者手动设置静态ip。前面的autoeth0,是让网卡开机自动挂载。为网卡配置静态IP地址:autoeth0ifaceeth0inetstaticaddress192.168.1.131gateway192.168.1.1netmask255.255.255.0修改好后保存退出。②重启:sudo/etc/init.d/networkingrestart安装ubuntu完,默认使用NAT模式。/etc/ne 阅读全文

posted @ 2013-01-10 13:47 灬啊U 阅读(316) 评论(0) 推荐(0)

摘要:在嵌入式linux的开发过程中,我们需要在linux上搭建一些服务来进行更好的软件开发。在linux下交叉编译后,使用这些服务(FTP、NFS)将可执行文件下载到板子嵌入式系统中运行。通过FTP方式有些麻烦,影响效率,并且无法实现在线调试。因此建立NFS服务,实现linux服务器上的特定分区共享到嵌入式目标系统上,同时可以在线对程序进行调试和修改,提高了开发效率。 那么,如何配置NFS开发环境呢?首先,嵌入式linux的NFS开发环境的实现包括2个方面,一方面是:linux服务器端的NFS服务器端支持;二是嵌入式目标系统的NFS客户端支持。 首先配置linux服务器端的NFS服务器。 ... 阅读全文

posted @ 2013-01-09 13:37 灬啊U 阅读(239) 评论(0) 推荐(0)

摘要:之前在VM8上安装了ubuntu12.10,通过uname -r命令可以知道该linux内核版本是3.5.0-17-generic,网上下了一个LDD3的PDF,自己也想建立和运行一个简单的模块(helloworld)。首先建立相应版本的内核树。找到内核源码的位置其中淡蓝色的压缩包是自己下载的。通过执行 :apt-cache search linux-source 可以看到可以下载的源码包型号,选择适当的版本就可以下载了(80M左右的源码)。执行:spt-get install linux-source-3.5.0开始下载。下载完成后会得到一个linux-source-3.5.0的目录。进入目 阅读全文

posted @ 2013-01-07 18:02 灬啊U 阅读(802) 评论(0) 推荐(0)

摘要:近期使用VM8安装了ubuntu12.10玩玩,途中也遇到了许多问题,安装完成后,系统默认是选择NAT连接方式的,可以直接通过火狐浏览器上网。(不需任何设置,系统自己配置好了)。但是在和PC和板子互ping的时候出现了问题,首先,PC的IP是固定的(公司固定的),因此使用NAT模式的ubuntu系统和PC互ping不能实现。很明显,ifconfig查看ubuntu的ip和PC 的ip是不同网段的。网上找了些资料,要想和PC、板子互ping要选择桥接模式(bridge),然后在ubuntu中修改配置文件,Ubuntu的网络配置文件是:/etc/network/interfaces白色高亮的是NA 阅读全文

posted @ 2013-01-06 15:46 灬啊U 阅读(2982) 评论(1) 推荐(0)

摘要: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 阅读(1352) 评论(1) 推荐(0)

摘要: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 阅读(656) 评论(0) 推荐(0)

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

posted @ 2012-02-09 17:42 灬啊U 阅读(676) 评论(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 阅读(994) 评论(0) 推荐(0)

摘要: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 阅读(421) 评论(0) 推荐(0)

摘要: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 阅读(181) 评论(0) 推荐(0)

摘要:linux网络编程:重点TCP—UDP协议1.OSI模型与TCP/IP协议体系结构2.TCP/IP协议---传输控制协议TCP(transport control protocol)和互联网协议IP3.TCP和UDP协议体系结构:(理解)网络的层次结构和每一层所使用协议的集合。。。1.将网络的功能划分为不同的模块,以分层的形式有机组合在一起。2.两类重要的体系结构:OSI和TCP/IP 两者的区别:??前者理想化后者事实上得工业标准采用的 即分层不同。。。OSI开放系统互联模型:1.OSI的七层结构最下层:物理层----比特流,无格式的01二进制的串。。。。。 链路层---数据组成可发送、接收 阅读全文

posted @ 2012-01-10 19:46 灬啊U 阅读(423) 评论(0) 推荐(0)

摘要:2012-1-9信号灯:也称信号量。1.它是不同进程间或一个给定进程内部不同线程间同步的机制。。。。。2.信号灯得种类: posix 有名信号灯; posix基于内存的信号灯(无名信号灯)3.二值信号灯:值为0或者1,只有一个资源 (使用比较多)4.计数信号灯:值0-n之间,用来统计资源,其值代表可用资源数。。。。5.等待操作:等待(信号灯)资源个数大于0,将其值(信号灯的值sem_op)减1,而释放进程操作相反,用来唤醒等待资源的进程或者线程。6.信号灯结构体:semid_ds()成员: ipc_perm()信号集可以给进程提供一个什么样的访问方式 sem_base()指向semval[0] 阅读全文

posted @ 2012-01-09 17:35 灬啊U 阅读(386) 评论(0) 推荐(0)

摘要:2012-1-6IPC对象:共享内存、消息队列、信号量(信号灯集)key :IPC_PRIVATE和ftok的返回值。。。。。 常用: key = IPC_PRIVATE 只能自己或者具有血缘关系的使用1.ftok()函数:key_t ftork(“路径”, id)路径使用自己的工作目录,避免了key冲突。 id 任意指定一个字母,即key由路径+id组成。。。。2.共享内存特点一:效率最高的一种进程间通信。。。。(数据吞吐量大时才能体现出优势)共享内存必须依靠同步机制使用共享内存的使用步骤:创建共享内存 必须判断 EEXIST IPC_CREAT|0666 ----权限shmget(key, 阅读全文

posted @ 2012-01-06 19:09 灬啊U 阅读(1063) 评论(0) 推荐(0)

摘要:复习:线程的3大重点部分线程创建:pthread_create线程退出:pthread_exit线程回收:pthread_detach线程取消:pthread_cancel优点:资源共享互斥量:(mutex)pthread_mutex_initpthread_mutex_lockpthread_mutex_unlockpthread_mutex_destory信号量:semsem_initsem_waitsem_postsem_trywait 获得资源继续往下执行无名管道:pipe64KB有名管道:fifo 7种设备文件中的P即为fifo服务可以通过一个特殊文件p去 open read wri 阅读全文

posted @ 2012-01-05 18:13 灬啊U 阅读(347) 评论(0) 推荐(0)

摘要:2012.1.4进程复习:1. 创建 fork2. 退出 exit _exit3. 回收子进程状态 wait/waitpid4. exec函数族5. 守护进程 (1) 创建子进程,父进程退出(2) 创建一个会话,并且以当前进程为会话组组长(3) 与(1)步骤一样(4) 更改进程的工作目录 chdir(”/”);(5) 设置权限掩码 umask(0);为了守护进程创建的文件对所有用户权限相同(6) 关闭所有的打开文件 练习:文件拷贝的例子源文件 ------------------------- 目标文件创建2进程。。。。。。。。进程A 拷贝前半部分进程B 拷贝后半部分首先:①... 阅读全文

posted @ 2012-01-04 19:13 灬啊U 阅读(194) 评论(0) 推荐(0)

摘要:进程:什么是进程?为什么要学进程?阻塞的概念…………………….标准IO流中等待获取信息,,,,等待就是阻塞!嵌入式设备---------数据的采集如何创建进程??程序:是静态的,程序的运行-à进程。进程----它是一个程序的实例; 进程--à①---à②<-----线程--à调度①资源的分配 进程是程序执行和资源分配的最小单位②进程描述符(tast_struct) 结构体----用来描述一个进程sizeof(tast_struct) -----1.7k③线程 (内核调度的最小单位) 内核怎么执行它? current 指向当前需要执行的进程。。。。。 阅读全文

posted @ 2012-01-02 11:12 灬啊U 阅读(227) 评论(0) 推荐(0)

摘要:12月30号库 一种可执行的二进制文件。。。。。1.编译的步骤:――――>预处理(-E .i)―――――>编译(.s)―――――>汇编(.o)――――――>链接(a.out)2.如何创建一个静态库(static library)。。。。。。????①gcc -c hello.c 生成hello.o文件②ar crs libhello.a hello.o 生成libhello.o 静态库③gcc -o a.out main.c -L. –lhello注意:第3步中。main.c 中必须包含hello.h的头文件-L 是搜索路径,. 代表当前路径。。。。。可以任意放库文件的路径库名和文件名:例:. 阅读全文

posted @ 2011-12-31 07:34 灬啊U 阅读(243) 评论(0) 推荐(0)

摘要:12月29号缓冲:全缓冲-----标准I/0 是高级磁盘I/0(基于文件I/0的一个封装)写数据:按字符读写: getc putc Getchar putchar按行读写: fgets fputs 遇\0 返回 注意缓冲区定义为 char buff[N];按指定大小: fread (返回值为读到的多少个元素) fwrite (buf ,对象块(指定元素的大小),指定元素的个数,stream)文件I/0低级磁盘I/0,会引起系统调用,无缓冲,文件描述符来访问{0,1,2}文件描述符 是一个非负整数系统调用函数:1.打开 int open(path ,flags) 功能:打开一个文件。。。。。。. 阅读全文

posted @ 2011-12-30 07:16 灬啊U 阅读(212) 评论(0) 推荐(0)