自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (4)
  • 收藏
  • 关注

原创 Unix网络编程源码解析_进程间通信IPC之(Posix)基于内存的信号量

#inlcude <semaphore.h>int sem_init(sem_t *sem, int pshared, unsigned int value);int sem_destroy(sem_t *sem);信号量是随内存区的持续性而存在的。当参数pshared 为0时,表示一个进程中各个线程共享的内存区,进程终止,信号量随进程的内存消失而消亡;...

2019-06-02 22:19:28 248

原创 Unix网络编程源码解析_进程间通信IPC之(Posix)有名信号量

本章介绍有名信号相关函数的使用,在参考书的第10章。本文主要分为两部分,第一部分为有名信号量相关函数的介绍,第二部分为在生产-消费(生产、消费各一个线程)的案例中使用有名信号量进行同步操作;演示的程序源代码都是从G-F所提供免费源码工程中提取出来的,这样每个函数的执行操作就会更加清楚;第一部分:1、有名信号量的相关函数#include <semaphore.h>sem...

2019-05-24 21:55:27 399

原创 Unix网络编程源码解析_进程间通信IPC之生产-消费者问题

一、生产者-消费者问题(非涉及同步),主要介绍线程函数的作用;全局变量定义int nitems; /* read-only by producer and consumer */struct { pthread_mutex_t mutex; int buff[MAXNITEMS]; int nput; int nval;}shared = {PTHREAD_MUTEX...

2019-05-22 19:52:45 320

原创 通过编写程序工具提取.pal调色板文件为Rgb/Yuv分量数据的文本保存(同时适用于Win7-24位深度的位图和Win10-32位深度的位图)

一、前言 到做工作记录的时候,本节主要的工作有先保存pal调色板数据位位图,再对位图的数据结构进行分析,再通过源码对数据进行提取,最后通过程序运行进行演示结果。因为Win7和Win10系统保存后的位图存在差异,在编写程序时通过修改宏定义可以解决,同时宽、高也是宏定义配置的。 开发需求:需要添加一种256等级的伪彩条,而且底层FPGA的接口为YVU数据接口,而市场...

2019-03-26 21:54:53 1177 1

原创 有名管道

规范化风格 if(argc == 3) { if(strncmp(argv[1], "rot", 3) == 0) { //ret = atoi(argv[2]); if(pthread_create(&th, NULL, rotation, argv...

2019-03-21 18:48:15 288

原创 设计模式之单例模式(一)

一、前言 在编写应用程序的时候,用到一些编程技巧是难免的。在学习编程的时候,个人体会是思维更重要,编程语言只是一个表达思维的工具,所以对于面向对象的Java/C++都适用,其他语言一样,可能就是在语言规则有小小的差异。 在面向对象程序的设计中,开发需求是需要一个可给其他任何类提供资源的类。当然,可以选择使用全局变量来实现,类里面N多个static关键字,但类中的...

2019-03-13 09:03:35 145

原创 Linux i2c子系统应用之Linux ARM嵌入式i2c通信(设备驱动完成i2c从设备寄存器的配置)

一、前言 本文主要分为三个部分,第一部分,介绍i2c字符设备驱动应用的背景以及本文测试需要的开发环境;第二部分,介绍主要的字符驱动源码及测试程序;第三部分,测试方法以及测试结果,i2c从设备的器件地址可以在该器件的datasheet查找。文章的最后会给大家分享本文的所有源码。二、开发背景和环境 我已经讲解过利用i2c总线的去配置i2c从设备的方法,本文采用...

2019-03-11 16:50:24 1170

原创 Linux i2c子系统应用之Linux ARM嵌入式i2c通信(用i2c设备总线完成i2c从设备寄存器的配置)

一、前言 本文主要分为三个部分,第一部分,介绍i2c总线应用的背景以及本文编译测试需要的开发环境;第二部分,介绍主要的源码及相关函数接口;第三部分,测试方法以及详细测试结果,i2c从设备的7bit器件地址可以在设备的datasheet查找。文章的最后会给大家分享本文的所有源码。二、开发背景和环境 在做嵌入式相关工作时,需要配置i2c从设备的寄存器是常有的事...

2019-03-11 14:42:48 2823 4

原创 spi

SPI简介        SPI(Serial Peripheral Interface)即串行外围接口,通常可以用它来配置一些硬件模块的寄存器,但SPI没有应答响应信号,所以在数据传输过程中的可靠性不如I2C;SPI以主从方式进行工作,能够实现数据的双向传输(全双工方式),一般由四根Pin脚组成,片选使能(CS)、时钟(SLCK)、数据输出(SDO)、数据输入(SDI),如下SPI的...

2018-10-31 17:16:33 441

原创 嵌入式平台ZYNQ7000蓝牙BlueZ4.95库的交叉编译

一、前言     最近听同事说蓝牙BlueZ库很难编译成功,有几次直接把Linux系统编崩溃了(真的有这么夸张吗?反正我目前没有遇到过)。开始他们编译BlueZ5.5+的,依赖库太多,只要一个库没编译成功,之前所有的准备工作都前功尽弃了;同事无奈下转战4.95,基本都是按照网上的流程走一遍,但到了编译dbus库的时候编译不过,而且还出现了在Linux关机后无法启动了(系统崩溃了),他后来没办法,直...

2018-07-06 22:22:03 1259

原创 Linux(Ubuntu)搭建局域网git服务器

首先更新源sudo apt-get updatesudo apt-get upgrade在更新源的时候提示E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)E: Unable to lock the administration directory (/var/lib/dpk...

2018-06-27 20:57:40 3870

原创 Qt5.8与触摸Tslib-1.4库ARM-ZYNQ平台的移植(一)

本小节主要介绍Tslib-1.4库的移植,下节主要Qt5.8的移植,以及Qt5.8与Tslib-1.4的对接,实现在Qt上的人触摸功能;PC系统:Linux version 4.10.0-38-generic (buildd@lgw01-amd64-059) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #42~16.0...

2018-06-21 22:52:23 3963 6

原创 Unix网络编程学习笔记_进程间通信IPC之管道通信

环境: 1、以下是函数调用需要的头文件2、以下是管道通信的源代码#include #include #include #include #include #include #include #include #include #define MAXLINE (4096)#define RUN_STEP_DEBUGvoid

2018-06-02 11:34:49 388

原创 Linux下Vim工具常用的指令笔记

为了精通vim编辑工具命令,总结自己平时用的vim工具命令(紫色),还扩展自己没用到,读者可根据自身习惯进行取舍。一、Vim打开、搜索、保存、退出指令1、打开文件跳到指定行(行号超过文本的行数,默认跳到文本的最后) --> vim +文件的行号 file 或者vim file +文件的行号(在搜索文件中的关键字的位置后使用,搜索命令:grep -w 关键字 * -...

2018-03-27 23:29:01 243

原创 在jpg图片添加Exif信息的C程序实现

测试环境:Linux Fedora16 +Windows 打开图片的工具:UltraEdit 截图工具:FSCaptrue写Exif信息前,图片的相关数据,以下是图片开始的数据排布; 图片以0xFF 0xD8开始,0xFF 0xE0就是图片下一个数据块开始的标示,0x00 0x10表示该数据块的长度,长度包括标示(0xFF 0xE0)2个字节; 以下是图片结束的数据排布,注意,从0...

2018-03-22 18:45:04 5202 2

原创 Linux静态库.a与动态库.so的生成与区别、以及.so库文件的封装与使用

一、前言如果有公司需要使用你们产品的一部分功能(通过代码调用这些功能),如果不想提供源代码,那么就可以通过封装成库文件的形式提供给对方使用。本文主要介绍了生成动态库与静态库文件的过程、以及封装和使用库文件的方法。二、静态库.a与动态库.so的生成与区别.o文件 :二进制目标文件,可用于打包成库文件也可以链接生成可执行文件; c文件编译后链接,生成可执行文件gcc t...

2017-11-14 11:51:36 9785 2

原创 实现Linux与Windows共享以及PC版开源Qt5.8的环境搭建

本文记录了从下载资源、安装虚拟机与Linux系统,着重介绍了Linux与Windows字幕复制共享以及文件共享的问题,以及PC版Qt5.8环境的配置。

2017-08-21 15:29:24 750

原创 嵌入式软件经典字符串面试、笔试题(基础)

平时自己用来温习的一些试题,如果有错误的地方,还望网友包涵和指正。1.统计字符串中子字符串的个数。#include <stdio.h>#include <string.h>int countCharNum(const char* FuString, const char* ZiString){ int countString = 0; char* subString = ZiStr

2017-08-21 10:00:41 1036

原创 制作Linux内核开机Logo

一、前言有关Linux开机Logo的制作,网上已经有很多例子了,方法都差不多。因为以前用的LCD屏幕分辨率为320*240,现在自己配置了一个480*640的竖屏当横屏用,为测试驱动是否配置成功,我选择用开机Logo来测试,回顾下下开机Logo的制作;当然在应用层,直接向frameBuffer中写一个0~255范围指定颜色的值也做测试也是OK的(前提LCD的接口是RGB的);最初测试我用的...

2017-05-16 19:51:36 912

原创 Linux下用C语言fopen、fread和fwrite函数对二进制文件的操作

一、前言在做一个镜头的初始化操作,需要加载一个648*522像素大小的文件,厂商提供的是一个excel表,如果要加载数据,可用加载txt文本的方式,我选用二进制方式加载文件;大家都知道电脑真正执行的不是高级语言,而是0和1的二进制文件,而且不管你是几维的数据,存放计算机内存上的数据是一维,而且按一定顺序执行下来(虽然操作系统原理介绍到在宏观上有并行处理,但微观上还是串行执行的)。所以直接加载二...

2017-03-14 09:50:30 9179 1

原创 虚拟机Linux访问usb设备,通过Libusb库方法实现读写usb设备所获取的实时图像数据

一、前言基于Linux 平台USB驱动开发,主要有内核驱动的开发和libusb的无驱设计;首先为什么要选第三方库Libusb,可能是基于Libusb的程序只涉及到应用层,使用起来更加方便;如果是在内核驱动,就要考虑到内核大小、内核版本的兼容,如果客户需要把你的USB模块加入他们的平台,那岂不是还要重新根据客户要求裁剪、编写内核?又假如有许多客气,而且每个客气的平台不一样,那是不是需要为每个客户定制一

2017-02-23 19:07:55 17882 14

原创 Linux环境用C语言实现读取配置文件来区分产品的多个版本以及多个功能

一、前言在公司从事嵌入式软件工作,应用层程序有QT平台的也有Android平台的,我主要负责QT方面的内容,系统为Linux。但公司的产品具有多个国家的版本,导致开机的动态画面、应用程序的菜单Logo、产品出厂厂商、公司网址也不一样,有的版本会带蓝牙,有的不带蓝牙,有的版本图像融合需要勾边,而有的不需要,在维护时极其不方便,如果应用程序修改了一个功能,所有版本都需要升级,那么升级小包的个数应该...

2017-01-13 15:26:00 849

原创 Linux环境C语言把整数转换成字符串再保存该字符串数据为文本

一、前言刚步入社会工作,只是想把自己做的事情做一个记录,同时也可以分享给网友,虽然都是些基础,但领导说得很对,细节非常重要;本测试程序非常简单,对本人来说,意义在于读取电池放电的采样数据,然后把得到的离散数据用excel绘制成一条放电曲线,找到电池满电以及空点的临界点,最后应用到应用层的电池充放电的图标绘制;二、代码说明1. 打开要保存文件的方式linux环境支持...

2017-01-03 12:00:29 14671

原创 基于Linux的S3C6410模拟SPI的外围设备驱动程序、Makefile及测试程序的实现

一、前言驱动一般分为字符设备驱动、块设备驱动与网络驱动三种类型。本文主要是一个简单字符驱动程序的实现,主要涉及三个部分,即外围驱动、Makefile以及测试程序的编写;在《LDD3》一书中有提到,用户空间的驱动程序有以下优缺点:优势:①可以和整个C库链接;②可使用普通的调试器调试驱动程序代码,不用调试正在运行的内核;③程序的崩溃不会影响系统的正常运行,简单地kill掉就OK;④和内...

2016-08-22 10:03:26 1527

原创 linux环境下C语言实现非阻塞方式读取字符串数据的串口测试程序,即串口工具的编写

本文提供了设置串口通讯的接口,方便大家对程序的复用,感觉还是面向对象的语言更方便呀;在给模块发送指令后需要读取模块返回的数据时,保险起见采用阻塞式读取,且串口一次只能读取8位byte数据,注意读取数据的调用函数;注意在读写命令中存在零的16进制的数据时的方式;通信成功,但恰遇到模块总返回操作失败的代码的问题。

2016-08-01 12:54:51 9831

原创 C语言实现一、二维数组动态内存分配与释放以及图像的线性插值放大与优化

1.1前言1.本文是博主本着虚心学习的态度与大家交流,博文难免会有错误之处,希望大家指正; 2.本文是针对对C语言以及图像放大的基础讨论,如是大牛们可以直接忽略本文; 3.运行环境:由于在不同电脑配置和系统上的运行时间有差异,本程序的测试平台:电脑CPU为Intel奔腾双核E6500,主频2.93GHZ内存4GB.虚拟机为10.0版的VMware,linux系统为Fedora16要讲程...

2016-07-28 14:11:55 4511 2

pal调色板转成RGB分量数据和YVU分量数据的程序源码(并有相关的微博详细笔记)

如有不清楚的,可看博客https://blog.csdn.net/psy6653/article/details/88830304有具体的演示过程。主要提取pal文件的数据,转换成RBG/YVU分量数据并以文本形式保存起来,同时适用于Win7系统和Win10系统保存的位图。

2019-03-27

Linux Arm嵌入式利用I2C总线方式和I2C设备驱动方式配置从设备寄存器(并有相关的微博详细笔记)

利用I2C总线方式和I2C设备驱动方式配置从设备寄存器,其中设备驱动包括应用程序。有什么疑问,可以看我的微博工作笔记,有相关的测试结果。

2019-03-12

tslib库及其安装工具

包含autoconf、mp4、libtool、automake工具及其tslib库,使用方法可以看我博客的工作笔记[Qt5.8与触摸Tslib-1.4库的相关移植(一)]

2018-06-22

JPEG的Exif信息读写的C语言实现(以文件或者缓存形式向JPG图片读和写操作,并有案例)

make_extract_data.h make_extract_data.c 文件其中包含 -------------1.将缓冲区数据添加到JPEG图片中 -------------2.将JPEG图片X数据提取到缓冲区中 -------------3.将文件里的数据添加到JPEG图片中 -------------4.将JPEG图片X数据提取出来,生成新的数据文件 -------------5.将缓冲区里的数据添加到JPEG图片中,生成新的JPEGX图片 -------------6.将文件里的数据添加到JPEG图片中,生成新的JPEGX图片 makeExif_案例5 -------------实现缓冲区里的数据添加到JPEG图片中,生成新的JPEGX图片

2018-03-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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