自定义博客皮肤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)
  • 资源 (3)
  • 收藏
  • 关注

原创 minigui 3.2.0:直接访问framebuffer的方法及示例

在做嵌入式应用程序开发时,有的场景下因为要追求图像显示效率,需要直接访问framebuffer,比如更流畅的视频显示。基于minigui框架的应用程序该如何访问framebuffer呢?最近就在为这个事儿头疼, 之前在设计时,视频输出是将一帧图像解码为BITMAP后作为窗口的背景画到屏幕上,这在PC模拟器上跑没啥问题,等到直接上开发板跑的时候,问题就来了----太慢。毕竟通过minigui这个框...

2018-10-30 23:19:09 2676 2

原创 minigui 3.2.0:通过环境变量修改minigui的运行参数

在运行环境中可以通过设置环境变量来改变MiniGUI的一些运行参数。这为应用程序部署提供了很大的便利性。但在使用3.2.0版本时,发现这些参数名全部都无效,查看MiniGUI 3.2.0的源码,才知道升级后为了环境变量命名规范化考虑,这些环境变量名全部都改名了:转为大写,并加了`MG_`前缀。

2018-10-27 00:54:53 1308 13

原创 linux bash shell:最方便的字符串大小写转换(lowercase/uppercase conversion)

关于字符串大小写转换,是写 linux 脚本经常干的事儿,所以总想找个方便的方法让我少打点字儿,搜索国内的中文资源,网上也能找到很多关于这个帖子,介绍的方法都差不多,用typeset是最简单的方法了,但我觉得还是不够简单,因为需要多定义一个变量。google上找到这个stackoverflow上的帖子,才知道Bash 4.0以上版本有更好的办法:《How to convert a strin...

2018-10-25 18:24:08 14795 1

原创 minigui:自定义字体文件的安装位置(install location for custom font)

我们的基于minigui的嵌入式系统项目中使用了True Type字体,原以以为只要把字体文件放在当前路径下的字体文件夹下就可以了res/font,但实际运行时报错了:NEWGAL>PCXVFB: /usr/local/bin/gvfb 12695 miniStudio Emulator 240x320-16bpp.rgb565 FONT>FT2: another error co...

2018-10-25 16:27:25 972

原创 minigui:解决gvfb编译报错undefined reference to symbol 'XkbGetIndicatorState'

minigui在linux PC平台创建开发环境时,需要Virtual Frame Buffer 支持(gvfb,qvfb),minigui官网提供了这两个程序的源码,需要自己下载编译并安装到自己的PC上。我用的是gvfb,minigui下载地址:http://www.minigui.org/downloads/gvfb-1.0.0.tar.gz编译安装过程不复杂:编译需要cmake支持,如果没有请安装:sud...

2018-10-25 15:16:45 1641 2

原创 minigui 3.2.0:对mgncs剪裁遇到的问题error: The pkg-config script could not be found or is too old.

考虑到嵌入式平台的存储和运行空间都有限,在向目标平台移植时肯定要对minigui及其组件进行剪裁,删除掉不需要的功能和特性,以缩小程序体积,对mgncs做剪裁时遇到了一个非常奇怪的问题,虽然解决了,但现在也没找到根本原因:根据configure --help的提示使用--enable-fashionrdr=no禁用fashion 渲染器(fashion render) 时报错了.错误信息(片段...

2018-10-25 13:59:26 6958

原创 cmake-gui:创建可选列表ComboBoxes

就像一般的程序设计一样,在设计cmake脚本时有时我们希望一个变量的值限定在一个范围内。如下图,cmake-gui中用户可以选择输出日志的级别,肯定我们不希望用户乱输一气。这时就要用到CACHE 的属性STRINGS# 日志输出级别set(LOG_LEVEL FL_LOG_DEBUG CACHE STRING "application log level")# 设置CACHE 的属性ST...

2018-10-22 11:19:10 689 1

原创 static link:关于gcc连接静态库的几种方式

开发一个应用程序不可避免要使用多个第三方库(library).默认情况下,gcc采用动态连接的方式连接第三方库,比如指定`-lpng`,连接程序就会去找`libpng.so`。gcc提供了一个`-static`参数,可以改变gcc默认的连接方式,GNU官网上关于gcc连接选项的手册[《3.14 Options for Linking》][1]中有说明:如下

2018-10-21 15:29:41 15768 2

原创 解决git错误: error object file is empty , The remote end hung up unexpectedly

今天执行git pull时遇到麻烦,应该是昨天电脑异常关机造成的git数据损坏:$git pullerror: object file .git/objects/88/526655aa4eca14ead2d443e80082276a79e0c2 is emptyerror: object file .git/objects/88/526655aa4eca14ead2d443e80082276...

2018-10-21 11:31:44 6462 3

原创 cmake/gcc:strip缩减程序体积

方法1cmake生成的Makefile中有一个target名为intall/strip可以将install的可执行程序执行strip,执行make help,就可以看到$ make helpThe following are some of the valid targets for this Makefile:... all (the default if no target is pr...

2018-10-20 14:14:48 12491 1

原创 linux shell: 命令运行符号(control operator) terminated ‘&‘的意义塈了解control operator指南

好久以前就看到一些脚本中执行一个命令用’&'结尾,类似如下:#!/bin/bashlcd_test &当时搞明白了意思,但现在又忘记了,赶紧补习一下在此做个记录:根据stackoverflow上这个帖子《What does “&” at the end of a linux command mean?》的回答(如下图红框标),命令以’&'结尾就是让命令以后...

2018-10-19 10:13:16 866 1

原创 cmake:CMAKE_SYSTEM_PROCESSOR为空是怎么回事儿?

今天执行cmake创建Makefile的时候出了个怪事:CMAKE_SYSTEM_PROCESSOR的值为空反复测试到到了原因:我在执行cmake时加了参数-DCMAKE_SYSTEM_NAME=Linuxcmake . -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_SYSTEM_NAME=Linux根据cmake官方关于交叉编译的介绍: 《Cr...

2018-10-17 11:15:29 6598

原创 minigui:mgplus交叉编译警告 include location "/usr/include/freetype2" is unsafe for cross-compilation

今天在交叉编译mingui的mgplus组件库时输出了一个警告:mips-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I../.. -D__MGPLUS_LIB__ -I.. -I../agg -I../../include -I../agg/font_freetype -ffunction-sections -fdata-sections -I/home/gyd/...

2018-10-16 15:08:02 2989

原创 minigui:mips平台交叉编译报错error: include location "/usr/include/" is unsafe for cross-compilation

今天在对minigui做交叉编译,下面是编译的部分脚本./configure \ --host=$host \ --with-runmode=ths \ --prefix=$_prefix \ || exit -1make -j8 || exit -1如果不做交叉编译,host指定为当前机器的架构(x86_64-linux-gnu)则编译正常如果设置为mips-linux-gn...

2018-10-15 15:17:32 5021 2

原创 cmake:FindLIBCONFIG.cmake查找libconfig的脚本find_package脚本

libconfig 是一个用于读取,操作和编写结构化配置文件的库。cmake并没有为libconfig提供find_package脚本。所以自己撸一个,实现跨平台的查找libconfig库FindLIBCONFIG.cmake# - Find libconfig# - This module determines the libconfig library of the system# T...

2018-10-14 15:55:18 1025 3

原创 minigui:静态编译连接mgncs库时遇到的xml2的问题

最近做一个基于minigui/mgncs的项目,在开发阶段因为是在ubuntu下基于minigui的模拟器开发,所以编译时都是标准的动态库连接。没啥问题,很顺序。现在项目功能开发告一段落,要向嵌入式平台移植了,就要把编译改为全静态连接(--static)。问题就来了。编译正常,连接时报了如下一大堆错误:/usr/lib/x86_64-linux-gnu/libxml2.a(nanohttp....

2018-10-14 15:33:09 1526

原创 cmake:pkg_check_modules(FindPkgConfig)的新特性IMPORTED_TARGET

pkg-config提供了一个统一的接口查询安装库的编译相关信息。它允许程序员和安装脚本工作没有明确详细的库路径信息。和cmake相比,pkg-config是另一个独立的历史更悠久的library信息描述体系,cmake的FindPkgConfig Module的作用是调用pkg-config查找pkg-config格式的库信息.cmake 3.6版本以后用于查找pkg-config格式安装包...

2018-10-12 15:56:02 8830 1

原创 cmake:macro,function中ARGV,ARGN参数的区别

cmake中的宏(macro)和函数(function)都支持动态参数变量ARGC记录传入的参数个数变量ARGV0,ARGV1,...顺序代表传入的参数变量ARGV则是一个包含所有传入参数的list变量ARGN也是一个包含传入参数的list,但不是所有参数,而是指macro/function声明的参数之后的所有传入参数写一个小程序就可以验证:# 定义一个宏,显式声明了两个参数hello...

2018-10-12 15:25:38 6555 1

原创 cmake:解决error LNK2005: void * __cdecl operator new(unsigned __int64) already defined in LIBCMTD.lib

当以/MT选项编译MFC项目时,会报下面的错误1>nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned __int64)" (??2@YAPEAX_K@Z) 已经在 LIBCMTD.lib(new_scalar.obj) 中定义1>nafxcwd.lib(

2018-10-10 16:34:04 12292

原创 win32 pthread:获取线程 id

mingw-w64提供的gcc编译器(posix版本)提供的pthread实现(简称WIN_PTHREADS)与pthread for win32提供的pthread(简称PTW32)实现是有差别的。PTW32中pthread_t定义是一个结构,而WIN_PTHREADS则与linux版本的pthread定义一样,是个整数类型.PTW32 pthread_t定义/* * Generic h...

2018-10-09 16:14:17 3109

原创 在Visual Studio 2015下使用pthread win32编译报错

pthread for win32的发行版本中只提供了动态库,今天在Visual Studio 2015下编译pthread for win32(2.9.1),想编译一个静态库,就报一个struct timespec重定义的错误,如下:cl /I. /DHAVE_PTW32_CONFIG_H /O2 /Ob2 /W3 /MD /nologo /DPTW32_BUILD_INLINED /DPT...

2018-10-09 14:57:51 1487 1

原创 cmake:find_package查找pthread for win32的实现脚本

pthread for win32本身没有提供find_package脚本,cmake官方也没有提供,所以如果在cmake中要查找pthread for win32的库,就得自己实现,我参照FindJPEG.cmake自己写了个查找脚本FindPTHREADW32。cmake官方提供的FindJPEG.cmake非常简单,只输出了include文件夹位置和JPEG库文件(JPEG_INCLUDE...

2018-10-09 00:05:41 1452 1

原创 封装pthread_rwlock读写锁,实现嵌套调用

pthread_rwlock简介pthread_rwlock 读写锁与pthread_mutex类似,但rwlock允许更高的并行性。mutex只有两种状态:加锁状态,不加锁状态,而且一次只有一个线程对其加锁。rwlock可以有三种状态:读取模式加锁状态,写入模式加锁状态,不加锁状态。在写入模式加锁时与mutex一样,是独占的,一次只有一个线程可以占有写模式的读写锁。在读取模式加锁状态,允...

2018-10-08 17:21:01 1280

原创 cmake:使用find_package查找libjpeg的静态库

我们知道简单的使用命令find_package可以查找指定的package.对于经常会用到的 jpeg库turbojpeg,可以用find_package(JPEG REQUIRED)来查找。find_package(JPEG REQUIRED)if(JPEG_FOUND) message(STATUS "JPEG_INCLUDE_DIR=${JPEG_INCLUDE_DIR}") me...

2018-10-03 15:35:28 5286 1

原创 CImg:一行代码实现RGB转YUV

如果想从YUV图像中分别获取,Y,U,V分量的数据该怎么办呢?设计的目标是一个方便简单的图像处理工具,性能并不是追求的目标,上面的色彩空间转换虽然简单,但在代码运行效率上并不可取,提供了丰富的色彩空间转换功能,允许在不同的颜色空间()之间的转换,使用非常简单以下是将一个。如果你想实现其他色彩空间的转稍稍看一下。上面的代码如果简写,只要一行就完成.所以需要考虑代码性能的应用场景,使用。对象返回Y分量(灰度图像)数据。

2018-10-02 15:28:40 976

原创 CImg:插件(plugin)使用说明塈实现JPEG图像内存编码/解码

如果你想对图像进行简单处理,你一般会想到用什么?可能多数人想到的是OpenCV。对,OpenCV是个非常强大的图像视觉工具库,用途非常广泛。简单的图像处理用它肯定是可以的。但OpenCV实在太庞大了,用起来有时反而不方便,就好比你现在肚子饿了只想简单吃个午饭,你是选择街边的饭馆买一份快餐15分钟解决问题,还是打电话给高级西餐厅订个位子要排队等到下周一才能吃上?

2018-10-02 14:45:53 1746 1

CMake脚本在ultraedit中的语法高亮支持

资源来自CMake官网: http://www.cmake.org/Wiki/images/5/56/UltraEditWordfile.tar.gz, 但这个链接已经无法访问,从历史快照中找加,上传备份 参见使用方法参见:https://blog.csdn.net/10km/article/details/52368486

2023-06-08

erpcgen-windows-x86_64.zip

用cygwin编译的erpcgen,可以windows下直接通过IDL编译生成client/server端(C++)代码,有cygwin的童鞋也可以自行编译,很方便的。 erpc git仓位置: https://github.com/EmbeddedRPC/erpc

2020-09-17

windows下MSVC兼容的dirent.h

<dirent.h>是一个应用程序接口,主要用于文件系统的目录读取操作,主要提供了几个目录数据读取函数,<dirent.h>是unix系统下常见的接口,但windows平台的MSVC编译器并没有提供这个接口( Cygwin5 and MingW现在已经提供了dirent接口),对于跨平台的项目开发就会带来一些麻烦,如果在MSVC下编译时可能因为windows平台缺少这个接口就要为windows平台另外写一些代码。本资源是从网上找的,提供了windows下为MSVC实现的dirent.h接口实现,方便跨平台开发和移植。

2016-03-31

libb64--base64编码解码库

libb64是实现base64编码解码的开源库,还提供了C++封装,用起来挺方便

2016-03-31

空空如也

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

TA关注的人

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