- 博客(88)
- 资源 (19)
- 收藏
- 关注
转载 结构体字节对齐
结构体字节对齐 在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉及到内存字节对齐的问题。从理论上讲,对于任何 变量的访问都可以从任何地址开始访问,但是事实上不是如此,实际上访问特定类型的变量只能在特定的地址访问,这就需要各个变量在空间上按一定的规则排列, 而不是简单地顺序排列,这就是内存对齐。 内存对齐的原因:
2016-04-01 17:31:24
457
转载 s5pv210 spi 配置 ---可参考S3C6410篇
原创博文,知识共享!转载请注明出处:http://blog.csdn.net/hustyangju/article/details/21165721S3C6410 SPI全双工读写流程分析一、SPI控制器datasheet1详细请参考:http://blog.csdn.net/hustyangju/article/details/204746592 SPI的所有寄存器都是映
2016-03-29 10:11:50
1624
转载 s5pv210与无线蓝牙模块 HC-06从机通信
无线蓝牙串口透传模块 HC-06从机这个模块不用了解什么传输协议,把它当串口用就行,只有四个引脚,包括VCC,GND,TXD,RXD从机能与各种带蓝牙功能的电脑、蓝牙主机、大部分带蓝牙的手机、PDA、PSP等智能终端配对,从机之间不能配对。 小常识(非常重要):TXD:发送端,一般表示为自己的发送端,正常通信必须接另一个设备的RXD。RXD:接收端,一般表示为自己的接收端,正常通信
2016-03-27 16:57:54
1442
转载 Rt3070无线网卡AP功能移植到s5pv210
Rt3070无线网卡AP功能移植到s5pv210一、平台开发板:GEC210 无线网卡:RT3070主机:VMWare--Ubuntu 10.04 LTS内核版本:linux-2.6.35.7 编译器:arm-linux-gcc-4.5.1 所需源码:2010_0203_RT3070_SoftAP_v2.4.0.1_DPA.bz2 linux-2.6.35.7
2016-03-20 15:29:35
1638
转载 QT UI更改后运行无变化
其实就是工程目录下的文件没及时更新1.找到project构建的目录,复制ui_XX.h2.找到.pro的目录(工程文件存放处),覆盖ui_XX.h3.运行 OK。。
2016-03-19 18:09:44
4140
3
原创 QT中文字幕显示问题
1,在PC机的 C:\Windows\Fonts选择自己想要的字体,注意:有qpf, ttc, ttf三种,可只有后两种可以用!!!2,把下载好的字体库解压后的文件放入lib/fonts中(qtX86和arm版本以及移植的文件系统中都放入此子体) lib/fonts这是你移植QT到arm的目录 我的是 /opt/Qt-5.5.0-gec2015.11/lib/fonts网
2016-03-18 11:00:40
1027
转载 QT线程编程
Qt多线程Qt线程类 Qt 包含下面一些线程相关的类:QThread 提供了开始一个新线程的方法QThreadStorage 提供逐线程数据存储QMutex 提供相互排斥的锁,或互斥量QMutexLocker 是一个便利类,它可以自动对QMutex 加锁与解锁QReadWriterLock 提供了一个可以同时读操作的锁QReadLocker 与QW
2016-03-17 12:54:47
488
转载 CGI程序编写
下载回源码包以后,就3个文件:cgic.c 函数库capture.c 一个很简单的CGI例子,仅仅输出两行提示文字cgictest.c 一个演示读取form表单数据的CGI例子首先在vc6里创建一个空的win32静态库cgic,然后添加cgic.c,编译后得到cgic.lib库创建一个空的console工程cgictest,然后添加cgictest.c,在set
2016-03-09 17:04:56
5890
原创 boa,cgi 应用过程经验总结(404,502错误解决)
一,在var/www中打开了基本信息设置这个html文件,然后表单内容提交给comment.cgi,又是出现了404,not found,The requested URL /var/www/cgi-bin/comment.cgi was not found on this server。本次问题出在不能用汉字。把html文件中的汉字改成英文后404问题消失。二,测试cgi时可能出现问题
2016-03-09 16:49:43
6346
转载 嵌入式web服务器Boa的移植
Boa是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右。作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行。Boa的设计目标是速度和安全。下面给大家介绍一下Boa服务器移植的具体操作步骤,希望能够有帮助。环境 主机:ubuntu8.10
2016-03-08 15:42:36
14453
4
转载 linux libjpeg对图像进行压缩
libjpeg 是一个完全用C语言编写的库,包含了被广泛使用的JPEG解码、JPEG编码和其他的JPEG功能的实现。Libjpeg不仅可以把bmp格式转化成jpg格式,还支持其他格式的转化成jpg格式(例如ppm,gif,targa,rle等)。 转化流程如下:(1) 分配和初始化一个JPEG压缩对象在libjpeg中,JPEG压缩对象被定义为“struct jpeg_compr
2016-03-06 18:31:50
3158
转载 Linux 线程通信与pthread_cond_wait()的使用
pthread_cond_wait()/************pthread_cond_wait()的使用方法**********/ pthread_mutex_lock(&qlock); pthread_cond_wait(&qready, &qlock); pthread_mutex_unlock(&qlock);/***************
2016-03-04 14:58:13
653
转载 linux mp3播放及分析
MAD (libmad)是一个开源的高精度 MPEG 音频解码库,支持 MPEG-1(Layer I, Layer II 和 LayerIII(也就是 MP3)。LIBMAD 提供 24-bit 的 PCM 输出,完全是定点计算,非常适合没有浮点支持的平台上使用。使用 libmad 提供的一系列 API,就可以非常简单地实现 MP3 数据解码工作。在 libmad 的源代码文件目录下的 mad.h
2016-03-02 16:59:56
1721
转载 linux /dev/dsp 声卡
一、数字音频音频信号是一种连续变化的模拟信号,但计算机只能处理和记录二进制的数字信号,由自然音源得到的音频信号必须经过一定的变换,成为数字音频信号之后,才能送到计算机中作进一步的处理。数字音频系统通过将声波的波型转换成一系列二进制数据,来实现对原始声音的重现,实现这一步骤的设备常被称为模/数转换器(A/D)。A/D转换器以每秒钟上万次的速率对声波进行采样,每个采样点都记录下了原始模拟声波在
2016-03-01 22:31:56
6615
转载 linux-framebuffer设备——读取触摸屏信息
如果应用程序需要知道Framebuffer设备的相关参数,必须通过ioctl()系统调用来完成。在头文件中定义了所有的ioctl命令字,不过,最常用的ioctl命令字是下面这两个:FBIOGET_FSCREENINFO和FBIOGET_VSCREENINFO。前者返回与Framebuffer有关的固定的信息,比如图形硬件上实际的帧缓存空间的大小、能否硬件加速等信息。而后者返回的是与Fr
2016-03-01 19:47:44
2346
转载 do while(0)的妙处
大家都知道,do…while(condition)可以表示循环,但你有没有遇到在一些宏定义中可以不用循环的地方,也用到了 do…while.比如:[cpp] view plain copy #define DELETE_POINTER(p) \ do \ {
2016-02-24 14:33:05
298
转载 linux驱动—— ioctl中的cmd和_IO() , _IOR() , IOW() ,_IOWR() 以及_IOC_NR()的关系
在驱动程序里, ioctl() 函数传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。ioctl()的cmd可以通过使用宏_IO()得到,那么cmd到底是怎么组成的呢?cmd的大小为 32位,共分 4 个域:bit31~bit30 2位为 “区别读写” 区,作用是区分是读取命令还是写入命令。bit29~bit
2016-02-23 16:11:29
1641
转载 用NFS挂载时参数解析及uboot设置
NFS参数解析和uboot内核设置 setenv bootargs "root=/dev/nfs nfsroot=192.168.0.231:/forlinx/rootip=192.168.0.232:192.168.0.231:192.168.0.2 0 1:255.255.255.0:witech.com.cn:eth0ff console=ttySAC0,115200"/
2016-02-19 09:40:25
2662
转载 ARM——协处理器
ARM存储系统有非常灵活的体系结构,可以适应不同的嵌入式应用系统的需要。ARM存储器系统可以使用简单的平板式地址映射机制(就像一些简单的单片机一样,地址空间的分配方式是固定的,系统中各部分都使用物理地址),也可以使用其他技术提供功能更为强大的存储系统。比如: · 系统可能提供多种类型的存储器件,如FLASH、ROM、SRAM等;· Caches技术;· 写缓存技术(write
2016-01-06 10:50:22
799
转载 Qt 定时器的使用
在Qt中使用定时器有两种方法,一种是使用QObiect类的定时器;一种是使用QTimer类。定时器的精确性依赖于操作系统和硬件,大多数平台支持20ms的精确度。1.QObject类的定时器 QObject是所有Qt对象的基类,它提供了一个基本的定时器。通过QObject::startTimer(),可以把一个一毫秒为单位的时间间隔作为参数来开始定时器,这个函数返回一个唯一的整
2016-01-01 09:50:57
461
转载 Qt 中各种数据类型转换
int 转 QString ,其他同理int m=1;QString b;b=QString::number(m)QString 转intQString a="1111"int b;b=a.toInt()char 转换为 QStringchar a='b';QString str;str=QString(a);QString
2015-12-31 16:38:49
1057
转载 Qt Tcp传输
Qt TCP协议 传输简单字符串实例是本文要介绍的内容。TCP即Transmission Control Protocol,传输控制协议。与UDP不同,它是面向连接和数据流的可靠传输协议。也就是说,它能使一台计算机上的数据无差错的发往网络上的其他计算机,所以当要传输大量数据时,我们选用TCP协议。 TCP协议的程序使用的是客户端/服务器模式,在Qt中提供了QTcpSocket类来编写客户端程
2015-12-30 19:28:37
508
转载 Qt QStirng 的使用
Qt的QString类提供了很方便的对字符串操作的接口。使某个字符填满字符串,也就是说字符串里的所有字符都有等长度的ch来代替。QString::fill ( QChar ch, int size = -1 )例: QString str = "Berlin"; str.fill('z'); // str == "zzzzzz"
2015-12-27 10:42:44
3203
转载 QT中的show()与exec()区别
QDialog的显示有两个函数show()和exec()。他们的区别在参考文档上的解释如下:show():显示一个非模式对话框。控制权即刻返回给调用函数。弹出窗口是否模式对话框,取决于modal属性的值。(原文:Shows the dialog as a modeless dialog. Control returns immediately to the calling co
2015-12-24 20:04:07
6448
转载 TCP三此握手与四次挥手
建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。那如何断开连接呢?简单的过程如下:SYN : 发送连接请求
2015-12-15 09:57:23
268
转载 C++ vector用法
在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。1 基本操作(1)头文件#include.(2)创建vector对象,vector vec;(3)尾部插入数字:vec.push_back(a);(4)使用下标访问元素,cout(5)使用迭代器访问元素.vectorint>::iterator it;for(it=vec.begin();it
2015-12-13 16:07:23
250
原创 C++虚函数多态
由虚函数实现的动态多态性就是: 同一类族中不同类的对象,对同一函数调用作出不同的响应。虚函数的使用方法是:(1)在基类用virtual声明成员函数为虚函数。这样就可以在派生类中重新定义此函数,为它赋予新的功能,并能方便地被调用。在类外定义虚函数时,不必再加virtual。(2)在派生类中重新定义此函数,要求函数名、函数类型、函数参数个数和类型全部与基类的虚函数相同,并根据派生类的需要重
2015-12-12 09:27:19
280
转载 C --struct union内存分配
嵌入式系统开发者应该对Little-endian和Big-endian模式非常了解。采用Little-endian模式的CPU对操作数的存放方式是从低字节到高字节,而Big-endian模式对操作数的存放方式是从高字节到低字节。也就是说Big-endian模式符合人的习惯,而Little-endian更加方便计算机操作。例如,16bit宽的数0x1234在Little-endian模式CPU内
2015-12-10 18:09:29
880
转载 C++中的类所占内存空间总结
成员函数还是以一般的函数一样的存在。a.fun()是通过fun(a.this)来调用的。所谓成员函数只是在名义上是类里的。其实成员函数的大小不在类的对象里面,同一个类的多个对象共享函数代码。而我们访问类的成员函数是通过类里面的一个指针实现,而这个指针指向的是一个table,table里面记录的各个成员函数的地址(当然不同的编译可能略有不同的实现)。所以我们访问成员函数是间接获得地址的。所以这样也就
2015-12-10 17:58:56
284
转载 srand与rand随机数生成
首先我们要对rand&srand有个总体的看法:srand初始化随机种子,rand产生随机数,下面将详细说明。rand(产生随机数)表头文件: #include 定义函数 :int rand(void) 函数说明 :因为rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,rand()会返回一随机数值,范
2015-12-09 19:49:47
439
转载 Linux进程间通信--共享内存与信号量
进程可以直接读写内存,不需要任何数据的复制。为了在多个进程间交换信息,内核专门留出一块内存区,内存区可以由需要访问的进程将其映射到自己的私有地址空间,进程直接读写这一内存区,而不需要进行数据的复制,提高了效率。由于多个进程共享内存,需要依靠同步机制如互斥锁和信号量。共享内存的实现分为三个步骤:1. 创建共享内存,shmget()shmget(创建或打开共享内存)
2015-11-30 23:14:55
983
转载 C---格式化日期函数
结构tm的定义为struct tm{int tm_sec;int tm_min;int tm_hour;int tm_mday;int tm_mon;int tm_year;int tm_wday;int tm_yday;int tm_isdst;};int tm_sec 代表目前秒数,正常范围为0-59,但允许至61秒int tm_min
2015-11-19 15:59:23
391
原创 内核链表的分析与使用
链表(循环双向链表)是Linux内核中最简单、最常用的一种数据结构。No.主要 函数说明1.list_add在 head 之后追加一个节点2.list_add_tail在 head 之前追加一个节点, 也就是在末尾追加一个节点3.list_del删除一个节点, 并将这个节点的ne
2015-11-18 14:51:47
512
转载 文件结尾判断feof , EOF
查看 stdio.h 可以看到如下定义: #define EOF (-1) #define _IOEOF 0x0010 #define feof(_stream) ((_stream)->_flag & _IOEOF) 由此可以看出,这两种方式的原理是不同的。 在这里先说下EOF和feof()这个两个宏定义,在我们学的课本中有这样的描述。EOF是
2015-11-11 19:00:38
2182
转载 VIM命令及添加快捷键
vim工具是vi的升级版本,功能比后者要强大,但是那么多的命令是不是都要全部记得住呢?答案是否定的,只要记住平时用得最多的几个就足够。编辑代码不外乎不就是删除,复制,定位,查找,恢复,替换等等,因些认为只要记住下面的十来个应该就足够了,如果真要把vim的全部快捷方式都背下来,相信还是相当有难度的,毕竟功能实在是太强大了。下面列几个使用频率最高的:1. 快速复制n行: $ nYY2
2015-11-09 19:59:56
657
转载 CGI——C程序设计
注:文章里的/n 应为 \n文章摘要: CGI规定了Web服务器调用其他可执行程序(CGI程 序)的接口协议标准。Web服务器通过调用CGI程序实现和Web浏览器的交互。CGI程序可以用任何程序设计语言编写,如Shell脚本语言、Perl、Fortran、Pascal、C语言等。但是用C语言编写的CGI程序具有执行速度快、安全性高等特点。本文详细分析了用C语言进行CGI程序设计的方
2015-10-08 21:51:40
788
转载 LCD——画线函数Glib_Line算法
在这里首先先简单把我对函数的功能的理解阐述一下,方便后面的分析:Glib_Line函数实现的功能是通过参数给定(x1,y1,x2,y2,color),来确定起点(x1,y1)和终点(x2,y2)两点之间的一条直线,并通过color参数来确定这条直线的颜色。这里这条语句的算法重点在于如何给像素点填充对应的颜色来画出任意直线,至于颜色具体值的确定会在后续的配色原理中阐述。首先先来看两幅图片:他们是
2015-09-29 22:14:43
5434
原创 QT——GUI软件
一:QT/E QT/E 即Qt Embedded是挪威Trolletch公司的图形化界面开发工具Qt的嵌入式版本,它通过QtAPI与LinuxI/O以及Framebuffer直接交互,拥有较高的运行效率,而且整体采用面向对象编程,拥有良好地体系架构和编程模式。Qt/Embedded在原始Qt的基础上,做了许多出色的调整以适合嵌入式环境。同Qt/X11相比,Qt/Embedded
2015-09-28 20:50:05
892
转载 USB驱动——键盘,U盘
文章转自 http://my.csdn.net/weiqing1981127一 . USB 键盘跟USB鼠标类型,USB键盘也属于HID类型,代码在/dirver/hid/usbhid/usbkbd.c下。USB键盘除了提交中断URB外,还需要提交控制URB。不多话,我们看代码static int __init usb_kbd_init(void){int
2015-09-28 13:27:17
1089
转载 USB驱动——鼠标
一 . 驱动程序描述 struct usb_device_id 结构体如下:可把USB设备设置为一种或一类设备。二 . URB URB定义:usb 请求块(usb request block, urb)是usb设备驱动中用来描述与usb设备通信所用的基本载体和核心数据结构,非常类似于网络设备驱动中的sk_buff结构体,是usb主机与设备
2015-09-27 17:49:40
437
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人