10 2014 档案

摘要:关于这个警告信息,就是说忽略了我定义的结构体对齐信息,那么他就会按照默认的对齐来了。运行结果自然也是有错误的。经过测试对比,发现是gcc版本问题,我的ubuntu中,gcc版本为4.4.1,还算比较新的。而交叉编译工具链中arm-linux-gcc中的gcc版本为3.4.5,比较老了。查找了一些资料... 阅读全文
posted @ 2014-10-26 09:26 Tandava的猫 阅读(770) 评论(0) 推荐(0)
摘要:C语言结构体对齐也是老生常谈的话题了。基本上是面试题的必考题。结构体到底怎样对齐?下面总结了对齐原则,在没有#pragma pack宏的情况下:原则1、普通数据成员对齐规则:第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小的整数倍开始(比如int在32位机为4字... 阅读全文
posted @ 2014-10-24 20:20 Tandava的猫 阅读(315) 评论(0) 推荐(0)
摘要:说到图片,位图(Bitmap)当然是最简单的,它Windows显示图片的基本格式,其文件扩展名为*.BMP。在Windows下,任何各式的图片文件(包括视频播放)都要转化为位图个时候才能显示出来,各种格式的图片文件也都是在位图格式的基础上采用不同的压缩算法生成的(Flash中使用了适量图,是按相同颜... 阅读全文
posted @ 2014-10-23 17:23 Tandava的猫 阅读(5377) 评论(0) 推荐(0)
摘要:在通信程序中,经常使用环形缓冲区作为数据结构来存放通信中发送和接收的数据。环形缓冲区是一个先进先出的循环缓冲区,可以向通信程序提供对缓冲区的互斥访问。1、环形缓冲区的实现原理环形缓冲区通常有一个读指针和一个写指针。读指针指向环形缓冲区中可读的数据,写指针指向环形缓冲区中可写的缓冲区。通过移动读指针和... 阅读全文
posted @ 2014-10-21 17:46 Tandava的猫 阅读(1701) 评论(0) 推荐(0)
摘要:(一)Linux网络编程--网络知识介绍Linux网络编程--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端.客户端 在网络程序中,如果一个程序主动和外面的程序通信,那么我们把这个程序称为客户端程序。 比如我们使用ftp程序从另外一 ... 阅读全文
posted @ 2014-10-20 18:07 Tandava的猫 阅读(197) 评论(0) 推荐(0)
摘要:pthread_cond_wait()用于阻塞当前线程,等待别的线程使用pthread_cond_signal()或pthread_cond_broadcast来唤醒它。pthread_cond_wait()必须与pthread_mutex 配套使用。pthread_cond_wait()函数一进入... 阅读全文
posted @ 2014-10-19 22:10 Tandava的猫 阅读(194) 评论(0) 推荐(0)
摘要:最近在做电子书项目中,采用select方式输入子系统,运行后发现键盘输入没问题,可是触摸屏却没反应,触摸屏驱动没问题,tslib也移植正确。问题在哪呢? 在代码中加入打印语句: 54 static int isOutOf500ms(struct timeval *ptPreTime, struct ... 阅读全文
posted @ 2014-10-19 15:16 Tandava的猫 阅读(187) 评论(0) 推荐(0)
摘要:tslib,很早以前用了,深入了解了它的原理,但是当时忙,就没写成文档了,今天发现对它有点陌生了,觉得如果再不记录下来的话,估计以后就忘了。估计大家都听说过tslib,其实从他的名字就可以看出它的,它是touchscreen的lib,其实这样还不够具体,其实它开始确实是为了touchscreen的鼠... 阅读全文
posted @ 2014-10-17 22:09 Tandava的猫 阅读(277) 评论(0) 推荐(0)
摘要:tslib,即touch screen library,触摸屏函式库,它提供了滤波、去抖、校准等功能,为上层应用提供了一个统一的接口。 1)在安装tslib之前需要安装一些工具,执行以下命令。 sudo apt-get install autoconf sudo apt-get insta... 阅读全文
posted @ 2014-10-17 21:06 Tandava的猫 阅读(590) 评论(0) 推荐(0)
摘要:如何管理多个连接?“我想同时监控一个以上的文件描述符(fd)/连接(connection)/流(stream),应该怎么办?”使用select()或poll()函数。注 意:select()在BSD中被引入,而poll()是SysVSTREAM流控制的产物。因此,这里就有了平台移植上的考虑:纯粹的B... 阅读全文
posted @ 2014-10-17 08:52 Tandava的猫 阅读(209) 评论(0) 推荐(0)
摘要:The title sounds a bit awkward, let my briefly explain what is it all about.In my program, I want to wait for user input, but at the same time, I want... 阅读全文
posted @ 2014-10-16 22:56 Tandava的猫 阅读(1030) 评论(0) 推荐(0)
摘要:svgalib是一套运行于Linux及FreeBSD下的开放源代码低阶绘图函式库,它允许程式设计人员变更视讯模式及全屏幕图像。它提供了函数接口使得linux的图形显示更容易。 svga的移植步骤: 1)下载svgalib 下载地址:https://launchpad.net/ubunt... 阅读全文
posted @ 2014-10-13 20:49 Tandava的猫 阅读(700) 评论(0) 推荐(0)
摘要:getopt被用来解析命令行选项参数。#include extern char *optarg;//选项的参数指针extern int optind, //下一次调用getopt的时,从optind存储的位置处重新开始检查选项。extern int opterr,//当opterr=0时,getop... 阅读全文
posted @ 2014-10-13 08:44 Tandava的猫 阅读(225) 评论(0) 推荐(0)
摘要:对于开发板实现显示矢量字体,同样PC机一样,我需要字体文件,这里选择simsun.ttc(新宋体)。1)初始化库 FT_Init_FreeType( &library ); /* initialize library */2)create face object FT_New_Face( lib... 阅读全文
posted @ 2014-10-10 00:03 Tandava的猫 阅读(605) 评论(0) 推荐(0)
摘要:一:地址空间的分配1:s3c2440是32位的,所以可以寻址4GB空间,内存(SDRAM)和端口(特殊寄存器),还有ROM都映射到同一个4G空间里.2:开发板上一般都用SDRAM做内存flash(nor、nand)来当做ROM。其中nand flash没有地址线,一次至少要读一页(512B).其他两... 阅读全文
posted @ 2014-10-08 18:54 Tandava的猫 阅读(871) 评论(0) 推荐(0)
摘要:FreeType是一个完全开源的、可扩展、可定制且可移植的字体引擎,它提供TrueType字体驱动的实现统一的接口来访问多种字体格式文件,包括点阵字、TrueType、OpenType、Type1等等乱七八糟的 说到freetype的使用方法,自带的文档已经介绍的很清楚了,这里稍微总结下: ... 阅读全文
posted @ 2014-10-08 00:04 Tandava的猫 阅读(6513) 评论(0) 推荐(0)
摘要:在设置lcdcon5时遇到BSWP 和 HWSWP两个使能位,知道是高低位互换,但真是有什么用倒没想到,下面转载的这篇文章略有提及,参考一下========================================== 3.1 背光:对于大部分的彩色LCD一定要接背光,我们才能看到屏上的内... 阅读全文
posted @ 2014-10-06 19:03 Tandava的猫 阅读(769) 评论(0) 推荐(0)
摘要:几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种: (1)I/O映射方式(I/O-mapped) 典型地,如X86处理器为外设专门实现了一个单独的地址空... 阅读全文
posted @ 2014-10-06 16:05 Tandava的猫 阅读(1126) 评论(0) 推荐(0)
摘要:对于一个显示设备,数据的更新率正比于画面的像素数和色彩深度的乘积。在嵌入式Linux系统中,受处理器资源配置和运算能力的制约,当使用大分辨率显示时(如在一些屏幕尺寸较大的终端上,往往需要640×480以上),需要降低显示的色彩深度。否则,由于数据处理负担过重会造成画面的抖动和不连贯。这时,调色... 阅读全文
posted @ 2014-10-05 21:39 Tandava的猫 阅读(615) 评论(0) 推荐(0)
摘要:最近做的项目中需要使用到hzk16。以下转载自网络:HZK16字库是符合GB2312标准的16×16点阵字库,HZK16的GB2312-80支持的汉字有6763个,符号682个. 其中一级汉字有 3755个,按声序排列,二级汉字有3008个,按偏旁部首排列. 我们在一些应用场合根本用不到这么多汉字字... 阅读全文
posted @ 2014-10-05 21:36 Tandava的猫 阅读(1850) 评论(0) 推荐(0)
摘要:如果应用程序需要知道Framebuffer设备的相关参数,必须通过ioctl()系统调用来完成。在头文件中定义了所有的ioctl命令字,不过,最常用的ioctl命令字是下面这两个:FBIOGET_FSCREENINFO和FBIOGET_VSCREENINFO。前者返回与Framebuffer有关的固... 阅读全文
posted @ 2014-10-04 22:19 Tandava的猫 阅读(587) 评论(0) 推荐(0)
摘要:加入以下指令/* 启动ICACHE */ mrc p15,0,r0,c1,c0,0 // read control reg orr r0,r0,#(1<<12) mcr p15,0,r0,c1,c0,0 // write it back1.MRC指令将协处理器的寄存器中数值传送到ARM处... 阅读全文
posted @ 2014-10-04 11:40 Tandava的猫 阅读(273) 评论(0) 推荐(0)
摘要:#!/bin/sh-e#Scripttocreateheaderfilesandlinkstoconfigure#一个生成头文件和连接文件的脚本配置文件,这个配置文件主要做三件事情,下面会一一介绍。#U-Bootforaspecificboard.#目的是为一个特定的板子配置uboot#Parame... 阅读全文
posted @ 2014-10-04 08:35 Tandava的猫 阅读(316) 评论(0) 推荐(0)
摘要:= make会将整个makefile展开后,再决定变量的值。也就是说,变量的值将会是整个makefile中最后被指定的值。:= 表示变量的值决定于它在makefile中的位置,而不是整个makefile展开后的最终值。?= 是如果没有被赋值过就赋予等号后面的值+= 是添加等号后面的... 阅读全文
posted @ 2014-10-03 12:31 Tandava的猫 阅读(215) 评论(0) 推荐(0)
摘要:嵌入式学习应该怎么学,是否应该上培训,如何权衡? 嵌入式应该怎么学? 嵌入式的基础大概可以分三块:操作系统及语言、应用处理器(arm等)、外围电子设备。常用的语言是c、c++功能的编程是c,界面编程用c++。为什么操作系统和语言放在一起呢?语言是一系列的命令,而这些是建立在操作系统基础上的,对操作系... 阅读全文
posted @ 2014-10-03 12:17 Tandava的猫 阅读(629) 评论(0) 推荐(0)