自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Herok

擅长C/C++/linux/python/深度学习

原创 Linux中线程使用详解

Linux下多线程详解pdf文档下载:点击这里! Linux中线程和进程的区别:http://blog.csdn.net/qq_21792169/article/details/50437304 线程退出的条件:下面任意一个都可以。 1.调用pthread_exi...

2015-12-30 21:14:58 18264 0

原创 Linux中线程和进程的区别

1.定义 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位 线程是进程的一个实体,行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程...

2015-12-30 20:55:21 19790 1

原创 C语言结构体中定义函数指针详解

在学习嵌入式我们经常和结构体函数指针打交道,还有链表,环形缓冲区之类的,这里中点讲解结构体中定义函数指针。下面这个程序你看一遍你基本也明白用法了。 下面是我写的一个很简单的程序struct.c #include  /* 标准输入输出头文件 */ #include /* strtoul用到的头文...

2015-12-30 17:24:09 34757 1

原创 lcd驱动程序之显示图片

以前没有写Lcd驱动程序,现在开始做项目了,才发现Lcd驱动程序必须认真学习。还是老规矩先上代码。 内核版本:linux-3.4.2                   lcd:4.3 lcd.c文件如下: #include #include #include #include #inc...

2015-12-29 17:13:56 17425 0

原创 libjpeg编译使用详解

一、交叉编译libjpeg # tar -xzvf libjpeg-turbo-1.2.1.tar.gz  #cd libjpeg-turbo-1.2.1 #mkdir tmp # ./configure --prefix=$PWD/tmp --host=arm-linux #mak...

2015-12-29 16:20:02 27410 0

原创 freetype安装使用详解(矢量字体操作)

freetype下载地址:http://sourceforge.net/projects/freetype/files/ 在PC: tar xjf freetype-2.4.10.tar.bz2  ./configure make sudo make install                ...

2015-12-29 15:48:14 36410 0

原创 交叉编译参数 -I -L -l 详解

这里不管是你用gcc还是用arm-linux-gcc都是实用的。 当你下载一些freetype,libjpeg。你得先.configure,make make install  这里我主要讲一下一些参数怎么配置,具体怎么安装这些库文件,下篇文章将重点讲解。 这三个参数是很重要的。  --build...

2015-12-29 14:52:01 17123 0

原创 智能家居网络系统的设计(一)

今天开始学习制作智能家居网络系统,这个项目相对简单的多,但对于新手还是有难度的,所以今天我写出来,尽我最大努力写详细一点。 讲解过程中所涉及全部代码下载地址:智能家居网络系统.rar 写制作过程之前我先讲解一下基本的框架和思路。(主要是框架,自己掌握知识了自己就可以添加其他的功能,比如显示温度...

2015-12-28 19:27:11 17443 0

原创 智能家居网络系统设计(五)

led配置文件: config.ini: led1=0,led2=1,led3=0,led4=1                      /* 这个可以自己设置led初始状态,但是一定要按照这个格式写,因为我们main.cgi中读取配置文件就是按照的这种格式 */ main_html文件编写...

2015-12-28 15:59:22 14516 1

原创 智能家居网络系统设计(四)

上一篇文章我们刚好可以登录用户了,如果登录成功就是调用main.cgi这个java脚本在这一小节中我们就来学习main.c这个文件。 在这里我得强调一下,在网页中控制开发板上的开设,这个项目在所有开发板上基本通用,只是你的外设驱动程序不一样吧了,这里我写出我开发板上led驱动程序,如果你在网页...

2015-12-28 14:48:15 15274 0

原创 智能家居网络系统设计(三)

我还是按照这个程序的顺序来讲解,方便大家理解 一点,在这里得说明下boa服务器只是一个平台,只要搭建好了就可以不用去管它,我们只需要写cgi-bin和html文件,我们在上一篇文章中网页已经做好了,当我们点击提交按钮的时候,程序会去执行/etc/boa/cgi-bin目录下的login.cgi脚本...

2015-12-28 14:25:39 16605 0

原创 智能家居网络系统设计(二)

这一篇文章我将讲解html网页编程的基本规范,其实在我的html网页基础里面也讲解的很明白,这里我大概讲一下基本用法。下面写把代码写上来然后在一步一步讲解,后面的注释一定不要添加进去!!!                            /* 网页固定格式 */   /* 网页头部 */...

2015-12-28 14:02:05 15513 0

原创 Linux网络编程之UDP协议(完整版)

server.c: #include          /* See NOTES */ #include #include #include #include #include #include #include #include /* socket  ...

2015-12-27 16:42:36 15510 2

原创 Linux网络编程之TCP协议(基础班)

学习TCP协议和UDP协议真的简单,这里的简单的指的是入门,如果需要升入研究那就不是那么简单了。 直接看代码是学习程序的最好方法。

2015-12-27 16:39:42 16261 0

原创 Linux man 命令后面的数字含义及作用

Linux的man很强大,该手册分成很多section,使用man时可以指定不同的section来浏览,各个section意义如下:  1 - commands 2 - system calls 3 - library calls 4 - special files 5 - file f...

2015-12-27 15:00:01 21222 1

原创 Linux中select poll和epoll的区别

select的本质是采用32个整数的32位,即32*32= 1024来标识,fd值为1-1024。当fd的值超过1024限制时,就必须修改FD_SETSIZE的大小。这个时候就可以标识32*max值范围的fd。 对于单进程多线程,每个线程处理多个fd的情况,select是不适合的。 1...

2015-12-26 22:17:36 21103 0

原创 tslib编译使用方法(selected device is not a touchscreen I understand)

出现这个问题话了我两个小时的时间才去解决掉,原因编译内核不够测底。 下面是我一直tslib 的详细步骤: # tar -xzvf tslib-1.4.tar.gz  # cd tslib # ./autogen.sh # mkdir tmp # echo "ac_cv_fu...

2015-12-26 14:59:48 19160 0

原创 链表的实战讲解(综合以前的基础)

这是前面我讲得算法与数据结构中链表的综合,如果这里不明白请看前面的基础知识:链接地址。 #include #include #include /* 定义一个结构体 */ typedef struct NAME{ char *name; struct NAME *pre; struct ...

2015-12-25 15:08:44 16389 0

原创 linux 之 echo命令用法

# echo $PATH                /**显示系统总一些变量,必须加上$/    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.3.2/bin  ...

2015-12-24 14:57:59 14348 0

原创 linux之getopt 函数

命令行参数解析函数 —— getopt() getopt()函数声明如下: #include int getopt(int argc, char * const argv[], const char *optstring); extern char *optarg; exter...

2015-12-24 14:31:53 15105 0

转载 字符编码笔记:ASCII,Unicode和UTF-8

转载连接:http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html 今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。 结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算...

2015-12-22 14:33:16 22102 0

原创 用C语言实现中文到unicode码的转换

由于本人喜欢用Notepad++编辑器,该编辑器的好处是小巧灵活,但是有几个地方做的不足,但是我都能够很好的采取相应的措施,下面让我们看看Notepad++有哪些地方的不做,进而采取怎样的措施。 一:Notepad++不能编译16进制文件,UE可以实现; 常用解决:我们常用的Beyond C...

2015-12-22 13:33:37 32285 0

原创 SecureCRT连接ubuntu时,中文显示乱码的解决方法

在用SecureCRT连接ubuntu时,中文显示乱码,如下设置即可: 在linux终端设置如下: (1)/var/lib/locales/supported.d/local文件中添加一行:zh_CN.UTF-8 UTF-8,执行sudo locale-gen下载文件 (2)在/etc/envi...

2015-12-22 10:50:39 18038 0

原创 lcd调色板工作原理详解

举例如下: /*  * 改变调色板为一种颜色  * 输入参数:  *     color: 颜色值,格式为0xAARRGGBB  /*AA为透明度*/  */   red   = (color >> 19) & 0x1f; green = (color >> 10...

2015-12-20 11:30:12 16215 0

原创 Linux下文本文件中^M 符号问题的解决

关于回车与换行,有些人就认定没必要用两个字符来表示行尾。UNIX 开发者决定他们可以用一个字符来表示行尾,Linux沿袭Unix,也是。Apple 开发者规定了用.开发 MS-DOS以及Windows 的那些家伙则决定沿用老式的. 三种行尾格式如下: unix : n dos : rn ...

2015-12-20 09:56:25 22278 0

原创 linux编译驱动之 make modules SUBDIRS

今天在编译linux kernel的时候发现make menuconfig中配置成模式的驱动模块没有加入编译之,下面命令编译内核的: make uImage 通过查看kernel的makefile发些了一些蛛丝马迹,现在将工作笔记记录如下:在linux kernel下运行终端,输入如下命令...

2015-12-19 22:24:34 19148 0

原创 arm-linux-ld: ERROR: Source object init.o has EABI version 0, but target lcd_elf has EABI version 5

编译的时候,遇到了一些问题,我一开始用的交叉编译器版本是arm-linux-gcc3.4.1,出现了网络频现的软浮点问题,如下: arm-linux-ld: ERROR: /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/libgcc.a(_udivs...

2015-12-19 20:32:32 16854 0

原创 C 库函数和HTML标识符讲解大全

参考这个网址:http://www.cplusplus.com/reference/cstdio/sscanf/ 这个网址里面写得非常经典,只是是用外文写得,在这里鼓励大家不要畏惧,你要相信IT这一块老外的文章还是比较牛逼,地道!!!!!!

2015-12-18 22:25:39 17060 1

原创 sscanf函数用法详解

SYNOPSIS        #include        int scanf(const char *format, ...);        int fscanf(FILE *stream, const char *format, ...);        int sscanf(...

2015-12-18 22:21:02 14278 0

原创 sscanf command

这个网站里面包含了所以得C库,方便查找笔记,http://www.cplusplus.com/reference/cstdio/sscanf/kw=sscanf function sscanf int sscanf ( const char * s, const char...

2015-12-18 22:06:20 14089 0

原创 Strtoul command

function > strtoul                                                                           #include   unsigned long int strtoul (const ...

2015-12-18 21:59:56 17516 0

原创 HTML5编写格式命令详解

下面是一些在网上找的有关HTML的东西: Html网页的代码 很全哦 1)贴图:<img src="图片地址"> 2)加入连接:<a href="所要连接的相关地址">写上你想写的字</a> 1)贴图: 2)加入...

2015-12-17 21:56:52 18948 0

原创 Linux中printk和strace命令调试的一些技巧

打印方法一: #define DBG_PRINTK printk      //打印 #define DBG_PRINTK(x...)       //不打印 DBG_PRINTK("%s %s %d\n", __FILE__, __FUNCTION__, __LINE__);...

2015-12-14 17:29:14 43296 0

原创 linux中的mdev机制

mdev是busybox自带的一个简化版的udev。     作用是在系统启动和热插拔 或动态加载驱动程序时,自动产生驱动程序所需的节点文件,在文件系统中的/dev目录下的设备节点都是由mdev创建的     mdev扫描/sys/class和/sys/block中所有的类设备目录,如果在目录中含...

2015-12-12 11:18:19 17376 0

原创 linux中mount命令参数详解(nfs 参数)

1,命令格式 mount命令的格式如下: mount [-t vfstype] [-o  options] device dir mount命令参数非常多,如下为与NFS相关的参数。 (1)-a:把/etc/fstab中列出的路径全部挂载。 (2)-t:需要mount的类型,如nfs等。 (...

2015-12-12 11:14:08 28722 0

原创 rmmod: chdir(/lib/modules): No such file or directory 解决方法

使用rmmod会出现 rmmod : chdir(/lib/modules): No such file or directory ?   现在的内核模块在插入卸载时都会要转到 “/lib/modules/内核版本号/ ” 这个目录里。所以只要建立这个目录就行了。 在目标板执行 #mkdir -p...

2015-12-10 16:39:24 14561 0

原创 矩阵键盘的改进(第一个专利)

目前已经申请专利成功了,就拿出来分享分享。 本发明公开了一种占用4条IO接口的键盘电路,包括成4×5矩阵排列的电路单元,分别设置在4×5矩阵行和列的IO接口引线、导线,设置在 4×5矩阵右侧的接地线;设置在第一列第一行、第二列第二行、第三列第三行、第四列第四行的电路单元...

2015-12-09 21:20:25 31987 14

原创 NAND: U-Boot BUG at mtdcore.c:20

我用的U-boot版本是2010.09,不支持yaffs2下载,只要自己制作命令来支持下载,怎么制作在前一篇文章中有详细的讲解。 遇到一个BUG不知道怎么解决,后来找到原因是,mtdparts和支持yaffs2文件系统冲突了, #define  CONFIG_MTD_NAND_YAFFS2  1 ...

2015-12-07 22:02:55 14892 0

原创 实现u-boot对yaffs/yaffs2文件系统下载的支持

affs2文件系统的移植主要涉及到u-boot对yaffs2文件系统的烧写支持、linux内核对yaffs2文件系统的支持,以及yaffs2文件系统的制作,现在我们按照从下到上的顺序来实现各部分的功能。本文重点参考黄刚的博文。 1、实现u-boot对yaffs/yaffs2文件系统下载的支持。 注...

2015-12-06 21:31:27 15573 0

原创 堆和栈详解

堆(heap)和栈(stack)是非常重要的概念,当我们进行程序开发时理解它们非常重要,尤其是对于嵌入式系统开发。比如在嵌入式系统中,任务的栈通常都很小,可能也就几K字节。在这种情况下,我们就应当尽可能不要将占用内存大的变量分配在栈上,而是应当分配在堆上;此外,也尽量不要采用递归的方式来设计程序,...

2015-12-04 13:23:16 15923 0

提示
确定要删除当前文章?
取消 删除