嵌入式开发
文章平均质量分 92
天行华瑞
CTO
展开
-
CAN 总线协议(2)
1.CAN协议1.1 帧类型通讯时使用下面5个类型的帧: 数据帧 遥控帧 错误帧 过载帧 帧间空隙 在所有这些帧中,数据帧和遥控帧由用户设置,而其它帧则由CAN硬件设置。 数据和遥控帧有两种格式:标准和扩展格式。标准格式有11bit的ID,而扩展格式则是29bit的ID。 每个帧的用处见表6,每个帧的结原创 2017-04-17 15:57:42 · 556 阅读 · 0 评论 -
安装 qwt6
安装Qwt6.0(Ubuntu)分类: Qt linux 2013-07-08 15:32 444人阅读 评论(2)收藏 举报1、使用Ubuntu的Software Center安装Qt creator;2、下载Qwt6.0,http://sourceforge.net/projects/qwt/;并将其存放到/opt/下面;3、按照User G转载 2014-05-14 10:58:47 · 601 阅读 · 0 评论 -
关于TCP打洞技术(P2P)
建立穿越NAT设备的p2p的TCP连接只比UDP复杂一点点,TCP协议的"打洞"从协议层来看是与UDP的"打洞"过程非常相似的。尽管如此,基于TCP协议的打洞至今为止还没有被很好的理解,这也造成了对其提供支持的NAT设备不是很多。在NAT设备支持的前提下,基于TCP的"打洞"技术实际上与基于UDP的"打洞"技术一样快捷、可靠。实际上,只要NAT设备支持的话,基于TCP的p2p技术的健壮性将比基于U转载 2014-04-25 15:32:08 · 572 阅读 · 0 评论 -
Arm-linux-gcc-4.3.2安装步骤
安装交叉编译工具链:1、首先以root用户登入2、复制arm-linux-gcc-4.3.2.tgz到根目录下tmp文件夹里3、解压命令tar xvzf arm-linux-gcc-4.3.2 -C /注意以上命令必须要有-C而且是大写,后边有个空格也要注意。4、配置下编译环境路径 在控制台下输入 gedit /root/.bashrc 等一会出来文本编辑器后在文件最后原创 2014-04-17 14:49:10 · 430 阅读 · 0 评论 -
2012-02-26 16:22 TCP/IP详解12: 广播和多播
三种I P地址:单播地址、广播地址和多播地址。广播和多播仅应用于 U D P,它们对需将报文同时传往多个接收者的应用来说十分重要。单播(unicast): 帧仅发往单个目的主机,目的地址指明单个接收接口.广播(broadcast): 一个主机要向网上的所有其他主机发送帧.多播(multicast): 帧仅传送给属于多播组的多个主机.首先了解一下主机对由信道传送过来帧的过滤过程:转载 2014-03-17 13:55:20 · 740 阅读 · 0 评论 -
Linux UDP 单播 组播 广播实现
linux udp单播 组播 广播实现 1、组播和广播需要在局域网内才能实现,另外得查看linux系统是否支持多播和广播:ifconfigUP BROADCAST MULTICAST MTU:1500 跃点数:1说明该网卡支持2、发送多播包的主机需要设置网关,否则运行sendto()会出现"networkis unreachable",网卡可以随便设置,但是一定要设。还要添加路转载 2014-03-17 14:27:03 · 1197 阅读 · 0 评论 -
http协议学习系列
1. 基础概念篇1.1 介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本。其中转载 2014-03-10 11:09:19 · 627 阅读 · 0 评论 -
Linux下http协议实现 C
#includestdio.h>#includestdlib.h>#includestring.h>#includesys/types.h>#includesys/socket.h>#includeerrno.h>#includeunistd.h>#includenetinet/in.h>#includelimits.h>#i转载 2014-03-10 13:28:19 · 758 阅读 · 0 评论 -
C++ 解析XML
XMLC++下载地址 http://sourceforge.net/projects/tinyxml/ 官网有详细的文档以及API介绍 感觉像javaXML解析文件一样好用读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似,面向对象性很好。TinyXML是一个开源的解析原创 2014-03-14 14:52:09 · 668 阅读 · 0 评论 -
QT中定时器使用办法
在Qt中使用定时器有两种方法,一种是使用QObiect类的定时器;一种是使用QTimer类。定时器的精确性依赖于操作系统和硬件,大多数平台支持20ms的精确度。■、QObject类的定时器QObject是所有Qt对象的基类,它提供了一个基本的定时器。通过QObject::startTimer(),可以把一个一毫秒为单位的时间间隔作为参数来开始定时器,这个函数返回一个唯一的整数定时器的标转载 2014-03-14 13:58:21 · 1342 阅读 · 0 评论 -
libghttp 示例代码
前些时间,由于找不到一个比较好使用的http库,自己封装了一个,不过时间紧迫,也没有完整分析HTTP协议,因此心里总不塌实地使用它,一次偶然的机会,让我在网上找到一个好用的http库 --libghttp,目前的版本因该是libghttp-1.0.9. 这个库十分的方便使用,它能够轻松地实现同步和异步的Http请求。简单使用实例:#include int main(int转载 2014-03-11 16:37:48 · 673 阅读 · 0 评论 -
ubuntu下svn使用指南
ubuntu下安装subversion客户端:sudo apt-get install subversion subversion-tools详细请看 http://www.subversion.org.cn/svnbook/1.1/index.html svn子命令1、检出svn co http://路径(目录或文件的全路径) [本地目录全路径] --usern转载 2014-06-13 08:47:01 · 480 阅读 · 0 评论 -
QML元素介绍
Quick3D 学习文档 qt中让应用程序透明, 关闭QML程序QML学习文档 2011-01-12 15:06:36| 分类:QT | 标签:|举报|字号大中小 订阅1. 介绍QML是一种描述语言,主要是对界面效果等的一种描述,它可以结合javaScript来进行更复杂的效果及逻辑实现。比如做个游戏,实转载 2014-06-20 14:11:45 · 794 阅读 · 0 评论 -
CAN 总线协议(1)
1.CAN总线是什么? CAN(Controller Area Network)是ISO国际标准化的串行通信协议。广泛应用于汽车、船舶等。具有已经被大家认可的高性能和可靠性。 CAN控制器通过组成总线的2根线(CAN-H和CAN-L)的电位差来确定总线的电平,在任一时刻,总线上有2种电平:显性电平和隐性电平。 “显性”具有“优先”的意味,只要有一个单元输出显性原创 2017-04-17 15:37:42 · 524 阅读 · 0 评论 -
多线程锁类型使用
根据完成任务所需要的结构不同,一个应用程序可能会使用多种不同类型的锁原语,因此,开发人员必须避免在一个给定任务中混淆这些锁原语,尤其在使用第三方提供的库时需要格外小心。假设在一个应用程序中,资源R依赖于第三方提供的库,并且在该库中资源R使用L型锁作为同步原语。此时,若开发者需要在应用程序中对资源R使用锁原语,则必须也使用L而不是其他类型的锁原语。接下来的部分将介绍不同类型的锁,并详细说明它们的用途原创 2016-02-19 15:14:42 · 1314 阅读 · 0 评论 -
关于僵尸进程
在每个进程退出的时候,内核释放该进程所有的资源,包括打开的文件,占用的内存等.但是仍然为其保留一定的信息(包括进程号the process ID,退出状态the termination status of the process,运行时间the amount of CPU time taken by the process等),直到父进程通过wait / waitpid来取时才释放,此时该进程便成原创 2016-02-19 13:20:37 · 298 阅读 · 0 评论 -
shell 脚本编程
1. Linux 脚本编写基础1.1 语法基本介绍1.1.1 开头程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。 当编辑好脚本时,如果要执行该脚本,还必须使其可执行。 要使脚本可执行:编译 chmod +x filename 这样转载 2014-11-25 13:10:29 · 621 阅读 · 0 评论 -
UDP 广播
linux 广播广播是一台主机向局域网内的所有主机发送数据。这时,同一网段的所有主机都能接收到数据。发送广播包的步骤大致如下:(1)确定一个发送广播的接口,如eth0(2)确定广播的地址,通过ioctl函数,请求码设置为SIOCGIFBRDADDR得到广播的地址(3)使用这个广播地址进行广播在局域网内,广播通常用来探测服务器。 广播发送端: 1 主机:转载 2014-11-05 11:01:18 · 399 阅读 · 0 评论 -
SELECT FD_ZERO FD_ISSET
FD_ZERO,FD_ISSET这些都是套节字结合操作宏看看MSDN上的select函数, 这是在select io 模型中的核心,用来管理套节字IO的,避免出现无辜锁定. int select( int nfds,fd_set FAR *readfds, fd_set FAR *writefds,转载 2014-11-05 09:15:47 · 671 阅读 · 0 评论 -
TCP-UDP Socket
一、概述TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议。TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流,TCP套接口是字节流套接口(stream socket)的一种。UDP:用户数据报协议。UDP是一种无连接协议。UDP套接口是数据报套接口(datagram socket)的一种。二、T转载 2014-11-04 15:43:02 · 428 阅读 · 0 评论 -
c语言字符串函数详解
void *memset(void *dest, int c, size_t count); 将dest前面count个字符置为字符c.返回dest的值.void *memmove(void *dest, const void *src, size_t count);从src复制count字节的字符到dest. 如果src和dest出现重叠, 函数会自动处理.原创 2014-09-24 09:47:08 · 366 阅读 · 0 评论 -
QML学习文档_通宵测试完的 .
import QtQuick1.0/*3.基本元素的介绍基本可视化项Item 基本的项元素 在QML中所有可视化的向都继承他Rectangle 基本的可视化矩形元素Gradient 定义一个两种颜色的渐变过程GradientStop 定义个颜色,被Gradient使用Image 在场景中使用位图BorderImag转载 2014-06-20 15:57:40 · 613 阅读 · 0 评论 -
QML各个属性详解
QML的结构有点类似于javascript的json表达式的写法。第一部分:共有属性由于QML里的各个可视化对象均继承于Item类,因此共有属性也就是Item的属性(Item本身确是不可视化的) 1、id这个是用来唯一标识各个资源的,以小写字母开头,注意这只是一个标识,不是QString类型的一个值,同时这个属性可以省略。例如:Te转载 2014-06-20 14:09:16 · 7149 阅读 · 0 评论 -
linux下的http服务器
1.以下是我上一篇文字《linux下的http服务器代码》整理出来修改本地编译通过的代码:代码来源:本次转帖来源:http://www.cnblogs.com/xiaouisme/archive/2012/05/26/2519314.html[html] view plaincopyprint?/* code c, change the DEFAULTIP to y转载 2014-03-03 10:16:52 · 525 阅读 · 0 评论 -
用socket实现服务器的编程总结(转载)
作一个tcp的服务程序,同时可能有大量的客户端连上来,希望分别记住各个socket谁有数据过来,就读出来,放到一个请求队列--这些事情用一个线程完成 另外有一个结果队列,如果结果里包含了socket的编号,用一个线程专门:取出来按编号找回原来发送者socket,发回给原来的客户端 还有一个就是处理线程(池),它取出请求队列里的一个请求,进行处理,把处理结果放入结果队列原创 2013-12-23 09:39:51 · 578 阅读 · 0 评论 -
linux驱动开发流程
嵌入式linux驱动开发流程嵌入式系统中,操作系统是通过各种驱动程序来驾驭硬件设备的。设备驱动程序是操作系统内核和硬件设备之间的接口,它为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,可以像操作普通文件一样对硬件设备进行操作。设备驱动程序是内核的一部分,完成以下功能:◇ 驱动程序的注册和注销。◇ 设备的打开和释放。◇ 设备的读写操作。◇ 设备的控制操作转载 2012-11-22 10:56:28 · 696 阅读 · 0 评论 -
ioctl
我这里说的ioctl函数是在驱动程序里的,因为我不知道还有没有别的场合用到了ioctl, 所以就规定了我们讨论的范围。为什么要写篇文章呢,是因为我前一阵子被ioctl给搞混 了,这几天才弄明白它,于是在这里清理一下头脑。 一、 什么是ioctl。 ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道转载 2012-11-22 10:52:00 · 327 阅读 · 0 评论 -
Linux下的socket编程-基于Qt的客户端
Linux下的socket编程-基于Qt的客户端2011年3月20日 由 edsionte 留言 »上文中对面向连接的C/S模型中的服务器进行了简单描述,本文将说明如何编写一个客户端应用程序。与服务器程序不同,客户端程序要求有友好的交互界面,因此本文所示的客户端程序采用Qt和linux C共同完成。客户端的界面部分采用Qt完成,而与服务器间具体的通信部分则通过linux C语言完成。转载 2012-11-20 13:29:11 · 2484 阅读 · 0 评论 -
Linux下的socket编程-服务器
我们都知道,同一台计算机上的进程可以通过IPC(进程间通信)机制进行通信;而不同机算计上运行的进程则通过网络IPC,即套接字(socket)进行通信。Linux下的socket API是基于BSD套接口而是实现的,通过这些统一的API就可以轻松实现进程间的网络通信。此外,socket API即可用于面向连接(TCP)的数据传输,又可用于无连接(UDP)的数据传输。一般使用Client/Server转载 2012-11-20 13:30:58 · 539 阅读 · 0 评论 -
基于Qt的多窗口编程-界面的设计
对于应用程序中的多窗体切换,我们已经习以为常。通常一个应用程序中,不同的窗口代表不同功能的工作区。本文将详细描述基于Qt的多窗体程序的设计方法。在阅读本文之前,你最好了解面向对象的基本思想以及Qt的基本使用方法。接下来我们以编写一个客户端为例来具体说明多窗体程序的编程方法。该客户端包括多个子系统,每个子系统对应一个窗口;在客户端的主界面,通过点击相应的按钮实现多个窗体之间的切换。主界面图如下:转载 2012-11-20 13:18:10 · 940 阅读 · 0 评论 -
基于Qt的多窗口设计-窗体切换的实现
窗体类的关系在布局管理部分,我们已经说过将主界面和两个子系统分别封装成三个不同的类。首先我们讨论每个类中应该封装什么,其次再讨论这三个类之间的具体关系。通过Qt Dsigner设计好界面后会在工程文件中对应一个.ui的文件;编译器会将该文件转换成能被C++所识别的.h文件。比如configUI.ui文件就对应一个ui_configUI.h文件,该头文件中包含了类Ui::configUI的定转载 2012-11-20 13:16:17 · 598 阅读 · 0 评论 -
ubuntu10.10建立QT开发环境
<!--@page {margin:2cm}h3 {margin-top:0.49cm; margin-bottom:0.49cm; text-align:left; widows:2; orphans:2; page-break-after:auto}h3.western {font-family:"Times New Roman",serif;原创 2012-11-30 14:29:25 · 1179 阅读 · 0 评论 -
Qt-embedded-linux-opensource-src-4.5.1移植到mini2440
Qt-embedded-linux-opensource-src-4.5.1移植到mini2440开发板技术说明 用过友善之臂的朋友都知道,友善之臂mini2440内置的是qt2的界面设计,但是现在q4逐渐成为主流。如何把qt4成功移植到mini2440非常不容易,本人也费了很到的功夫才完成了这样的工程。现在我把自己的经验拿出来与大家分享,希望有兴趣的朋友少走弯路。转载 2012-11-30 14:24:23 · 493 阅读 · 0 评论 -
Linux设备驱动之I2C总线适配器驱动分析
Linux设备驱动之I2C总线适配器驱动分析 (2008-11-10 16:23) 分类: linux设备驱动 ------------------------------------------本文系本站原创,欢迎转载!转载请注明出处:http://ericxiao.cublog.cn/-------------------------------转载 2012-11-26 14:28:24 · 515 阅读 · 0 评论 -
Linux设备驱动之I2C架构分析
Linux设备驱动之I2C架构分析 (2008-11-10 10:25) 分类: linux设备驱动 ------------------------------------------本文系本站原创,欢迎转载!转载请注明出处:http://ericxiao.cublog.cn/------------------------------------转载 2012-11-26 14:27:16 · 236 阅读 · 0 评论 -
Linux查看硬件信息及驱动设备
<!--@page {margin:2cm}p {margin-bottom:0.21cm}-->Linux查看硬件信息及驱动设备 用硬件检测程序kudzu探测新硬件:servicekudzustart(orrestart)查看CPU信息:cat/proc/cpuinfo查看板卡信息:cat/proc/pci查看PCI信息:lsp原创 2012-11-22 10:58:56 · 714 阅读 · 0 评论 -
完美解读Linux中文件系统的目录结构
<!--@page {margin:2cm}p {margin-bottom:0.21cm}-->一、前言接触Linux也有一段时间了,不过这几天在编译开源程序时,才发现自己对linux文件系统的目录结构了解的不够透彻,很多重要目录都说不清楚是用来干嘛的,于是在网上百度了一下这方面的介绍,根据自己的使用习惯,整理出来一篇关于Linux文件系统的目录结转载 2012-11-22 11:00:17 · 379 阅读 · 0 评论 -
Uboot与Linux之间的参数传递
U-boot会给Linux Kernel传递很多参数,如:串口,RAM,videofb等。而Linux kernel也会读取和处理这些参数。两者之间通过struct tag来传递参数。U-boot把要传递给kernel的东西保存在struct tag数据结构中,启动kernel时,把这个结构体的物理地址传给kernel;Linux kernel通过这个地址,用parse_tags分析出传递过来的参转载 2013-11-14 10:32:49 · 602 阅读 · 0 评论 -
u-boot 初始化时钟频率
关于在u-boot汇编中设置与初始化时钟频率的解析 S3C2440的主时钟源来自外部晶振(XTIPLL)或外部时钟(EXTCLK)。S3C2440有两个PLL(phase locked loop)一个是MPLL,一个是UPLL。MPLL用于CPU及其他外围器件,UPLL用于USB。 1,MPLL, 用于产生FCLK, HCLK, PCLK三种频率, 这三种频率分别有不同转载 2013-11-13 10:07:51 · 649 阅读 · 0 评论 -
深入研究S3C2440 bootloader
bootloader的实现方法: 首先:在汇编中初始化堆栈,中断向量表,MMU,时钟,串口等,然后跳到C语言的Main函数。这部分代码小于4K,放在block0。这个Main函数用来将第二段代码拷备到DRAM中并执行。 其次:进入第二段代码。第二段代码也是先在汇编中初始化堆栈,中断向量表等,然后跳到C语言的Main函数。这部分代码就不用有4K限制了,具体大小由第一段代码决定,因为它本身原创 2013-11-15 14:34:16 · 1222 阅读 · 0 评论