自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (2)
  • 收藏
  • 关注

原创 《c印记》

这是我的第一本书籍,算是书籍吧,因为没有出版,只是整理收集了我自己关于c语言的理解,以及平常工作中使用到的c语言开发小技巧等等。 本着分享精神,在这里提供下载。这本书的内容包括了:一些数据结构,算法等的介绍,关于跨平台的一些技巧一些实用的小功能的实现面向对象思想插件化等等下载地址:1. 我自己尝试弄的一个个人博客(名为: 同好斋, 希望是有相同爱好的人的交流平台(当然现在还只是想法...

2019-02-18 15:42:24 361

原创 xmake经验总结1:解决c++ future/promise抛出std::system_error的问题

在xmake中解决c++ future/promise抛出std::system_error的问题

2022-09-14 10:38:16 1306 1

原创 如何优雅的退出qemu虚拟环境

在console环境下,先 按 ctrl + a, 释放之后再按 x 键 既可terminate qemu。注:1. a 和 x 均为小写。2. 必须先释放ctrl + a 之后 再按x键

2022-05-17 17:08:16 933 1

原创 架构师成长之路工具篇(1):markdown撰写文档

今天笔者想说的工具就是markdown, 正所谓工欲善其事必先利其器,选择高效的工具自然能提升工作效率。笔者使用的markdown工具是: typoraword太重,太复杂, 在写文档的时候,常常为了调整一些格式和排版问题而花费大量时间在互联网上到处搜索,这里显示不出来,那里空白太多等等。鉴于此,笔者越来越习惯于使用markdown来撰写文档。 不管是API文档,还是模块的设计文档,又或者一些指南性的说明文档等等。当然,markdown也有缺点, 比如因为markdown是文本文件,所以其内就无法包

2020-12-17 18:33:43 806

原创 架构师成长之路(1): 架构师初体验

​ 说起架构师,给人的印象就是高高在上,在象牙塔的顶端,一点都不接地气。 作为一个工程师,笔者之前对架构师也有类似的看法,感觉他们又不干实事,就是画画框图,写写PPT就完事儿了。​ 万万没想到有这么一天,笔者自己也即将踏入架构师们的世界。对笔者来说,架构师的世界一切都充满了新鲜感,同样的作为一个工程师对一切新鲜的事物都充满了好奇,都想去把它弄的明明白白,清清楚楚的。​ 在这之前,笔者虽然读了一些软件架构方面的书籍,但是并没有从事过架构师这个职业或者说角色。笔者认为

2020-11-26 21:55:38 378

原创 ISO26262-6 2018第七章: Software architectural design

因为工作原因,需要写功能安全相关的架构设计指南,因此为了方便,就把ISO26262-6中关于架构设计的这一张翻译出来,以备随时查阅。 本人英语水平有限,基本都是用翻译工具配合翻译的,也不管准确与否了, 大致意思差不多就行。7 Software architectural design7.1 目标该分阶段的目标是:a) 开发满足软件安全需求和其他软件需求的软件架构设计;b) 验证软件架构设计是否适合满足所需ASIL等级的软件安全需求;以及c) 支持软件的实现和验证7.2 总则软件架构设计

2020-11-24 18:22:52 875 2

原创 《程序员必读之软件架构》学习(1): 软件架构文档内容

《程序员必读之软件架构》学习1: 软件架构文档内容 笔者最近刚换工作不久,这次换工作,其工作内容与职责也发生了一些变化, 最早就是专注于做多媒体相关的软件开发, 比如播放器,行车录影等等,到后来逐渐从多媒体中间件服务向更多的车载系统中间件功能扩散, 到现在开始负责架构相关的工作。因此笔者认为自己有必要总结出一套适合自己的车载系统软件架构设计的方法和规范,也就是找几件趁手的兵器。 以下是笔者整理的《程序员必读之软件架构》这本书中关于软件架构文档应该怎么写的内容,其脑图如下所示。注意: 红色子主题表示

2020-11-04 11:46:38 505 2

原创 WSL2 Ubuntu安装Qt(包括QtCreator)

最近因为需要在Linux下使用qtcreator做一些界面开发的预研和学习,主要是因为要交叉编译Qt。但又不想再使用虚拟机了, 真的太消耗内存了。于是就想着直接使用Windows10 下面的WSL2。 怎么安装WSL2这里就不展开了,有兴趣的朋友,问问度娘就什么都知道了。在网上查了不少资料,但感觉都不全面,有一些细节和基本点没有说到,这样实际安装起来就会遇到不少坑, 所以笔者就想着自己整理一篇。 如果以后需要在其他电脑上再次安装的话,也好有个参考。笔者的环境:宿主系统: Windows10虚拟环

2020-09-17 10:51:45 10052 12

原创 bb_player开发笔记(一):libupnp在visual studio2019下的配置和编译

最近因为小米电视4升级一次之后,用优酷投屏就非常的卡顿,网络是OK的,网速也是快的,笔者通过在电脑上开启dlna的‘MDP’功能,使用手机或ipad (优酷)投屏,均能正常流产的播放,但坑爹的时候,小米电视的系统不能回滚降级。 于是乎笔者就准备自己写一个Android TV版的dlna 接收播放器,来接收优酷的投屏。于是乎就想到了,使用libupnp 加 FFmpeg(需要使用播放器功能)的方案来实现这个功能。暂时起名,bb_player, 也就是 宝宝 player(因为需求主要是想解决笔者家老婆大人优

2020-08-03 13:29:43 705 2

原创 (ver: 19-11)AUTOSAR_TPS_ManifestSpecification(第3章:3 Application Design(1~3节))

AUTOSAR AP的版本为: 19-11因为pdf文档一共八百多页,只有13章的样子,因此基本平均每章都有一百多页,都很长,所以在这里将其拆分开来记录。3 Application Design3.1 Overview本章描述了适用于在AUTOSAR自适应平台上创建应用程序软件的所有与设计相关的建模。这也扩展到AUTOSAR经典平台上使用的现有建模的扩展,例如引入属性类别的新值。特别是,本节将重点介绍以下几个方面:AUTOSAR自适应平台SwComponentType专用子类的定义(sec.

2020-06-05 16:51:05 1765 5

原创 (ver: 19-11)AUTOSAR_TPS_ManifestSpecification(第2章:Big Picture of Manifest Definition)

前言进来在学习Adaptive AUTOSAR,由于 本人英语水平很一般,所以在阅读AUTOSAR官方文档的时候尤为吃力,而且我发现一个问题,这个官方文档可能需要经常翻阅的, 但是因为英语水平有限的缘故,可能每次都得重新使用翻译工具翻译一下,显得有些麻烦, 于是,本人就想着,看一点就翻译一点,下载再要来翻阅的时候,就可以直接阅读中文版,方便不少,顺便也在博客里面做一个记录,一作备忘。AUTOSAR_TPS_ManifestSpecification的pdf文档有800多页,没法短时间弄完,所以可能也不会

2020-06-04 17:50:41 1241

原创 使用qemu运行X86版本的QNX7.0系统

原本想使用VMWare来运行X86版本的QNX7.0系统,但是运行起来之后,没法输入。 虽然QNX官方有提供现成的QNX VMware镜像,但那不是我需要的东西,所以参照官方的QNX VMware镜像,根据它的启动脚本, 我将标准的QNX X86 BSP包中编译和启动脚本x86_64-denverton.build文件进行了修改,针对VMware的特殊情况,使用了devh-ps2ser-vm.s...

2020-04-29 10:36:40 2402 2

原创 通过qemu-img命令将raw image转换成VMware虚拟硬盘vmdk

为了在VMware中跑QNX系统, 我需要想办法将编译BSP生成的img文件固化到VMware的虚拟硬盘中去, 之前一直找不到方法,到渐渐的只能用很笨的方法几次中专。将生成的img文件通过win32DiskImager工具写入到一个U盘里面, 这之后有两种方法:直接使用U盘作为VMware的启动盘,需要创建一个虚拟硬盘,然后将这个虚拟硬盘绑定到U盘上,这种方法就需要时刻插着一个U盘,而且对U...

2020-04-29 10:20:54 10746 4

原创 通过延迟启动进入VMware workstation player的BIOS设置

最近在做一个事情,在虚拟机平台上运行X86版本的QNX系统, 更准确点的说是通过下载QNX的X86平台的BSP包来编译并在X86平台上运行。所以 为了方便,首选了VMware来模拟,但是QNX的BSP我也不太熟悉,不知道怎么弄成ISO光盘,所以就按照文档,做了一个USB启动盘,但是需要进入BIOS调整启动顺序。而VMware默认情况下BIOS启动部分却是一闪而过,基本上没法进入BIOS设置界面。...

2020-04-29 09:42:34 1870

原创 repo安装与简单使用

一、概述​ 当一个大的项目需要拆分成很多的子项目,或者说一个软件系统拆分成多个子系统。 每一个子项目或者子系统都对应一个git repository。这种需求在实际项目当中是很常见的,有的可能就直接写一个shell脚本来实现同时拉各个代码仓库的动作,但这样做难免笨拙。 特别是要做系统级别的整体分支或版本发布时,就不太方便,因此这里就可以使用repo来进行管理,像Android这么大的项...

2020-03-05 16:43:58 21806 17

原创 gstreamer移植qnx(五):编写gstreamer插件audio sink和video sink

一、概述​ 因为gstreamer没有提供qnx系统的支持, 因此这里要实现音频和视频的播放,就必须自己实现最终的音视频输出的元件,即sink元件,一开始,我的想法是,可否移植开源的音视频输出库,比如sdl,alsa等等, 但是发现有些麻烦, 反而把事情弄的更复杂了。 最终还是踏踏实实的两个gstreamer的sink元件,用来输出音频和视频。​ 要编写gstreame...

2020-01-17 15:00:13 2318

原创 gstreamer移植qnx(四):交叉编译qnx版本的gstreamer插件库

一、简介​ 要移植gstreamer到qnx系统,除了本身的libgstreamer之外,还需要编译相关的插件库,比如编解码库,比如各种音视频容器库。二、 编译plugin base 库​ 这里笔者一开始使用的和libgstreamer库一样,使用configure的方式,写一个myconfig.sh来编译,但是发现编译出来的plugin library会带有rpa...

2019-11-27 11:38:19 2336

原创 gstreamer移植qnx(三):交叉编译gstreamer之 libgstreamer

一、简介​ 这里使用的gstreamer是1.16.1版本,移植使用的qnx版本为6.6.二、使用configure方式编译2.1 编写配置用的脚本这里为了方便,将./configure xx之类的东西写入一个shell脚本当中, 其文件名为:myconfig.sh,其内容如下:./configure --prefix=/media/guwen/workspace/pr...

2019-11-21 17:34:13 1677

原创 gstreamer移植qnx(二):交叉编译glib

一、简介​ 这里以glib的2.63.0版本,QNX系统的版本是:6.6 。这里是为了编译gstreamer的依赖库,也就是说最终目标,是将gstreamer移植到QNX6.6系统上。 我选择的是gstreamer 1.16,他需要的glib版本是2.40以上,因此就索性使用最新的glib版本。 编译用的host系统是Ubuntu18.04。二、准备cross-file​ ...

2019-11-20 17:02:24 2883 9

原创 gstreamer移植qnx(一):概览篇

​ 接触qnx系统也有两三年了,一直都是基于其上的mmr进行多媒体播放器的开发。 但是这个mmr资料少,且很多参数,资料上没有,必须给钱向qnx公司咨询才行。 于是就有这么一个念头,移植一个开源的播放器到qnx平台上。之前也有尝试过移植VLC和gstreamer,但是因为工作时间比较忙,草草的尝试了一下,有因为需要自己动手编写最终的音视频输出插件,觉得有些麻烦,然后就这样放弃了。​...

2019-11-19 17:39:51 1760

原创 gdb调试coredump 文件

工作中时长会需要用到gdb工具,因此在这里陆续记录相关的使用点以作备忘。一、查看crash所在的线程这里可以使用 thread apply all bt 查看所用线程堆栈信息。...

2019-10-25 15:06:24 241

原创 查看gcc默认宏

有时候,会想知道当前的toolchain中,gcc的一些默认宏是怎么样的,特别是一些基于gcc的嵌入式编译工具链,更是如此, 因此做一个记录,以便后续使用。gcc -posix -E -dM - </dev/null同理,如果要查看g++的话,如下所示:g++ -posix -E -dM - </dev/null当然一般嵌入式编译工具链,都是需要交叉编译的,可能最终的形式如...

2019-10-22 08:21:56 716

原创 使用rename命令批量修改后缀名

我使用的操作系统是Ubuntu,也可以在Windows10下的Ubuntu子系统使用该命令,可能默认没有,可以使用 sudo apt-get install rename 的方式去安装这个包。比如经常要把 libxxx.so.1.0.0 之类的lib名修改为 libxxx.so 或 libxxx.so.1 这样的形式, linux系统里面的 链接,在Windows就失效了,所以有时候需要进行...

2019-09-05 14:20:14 1424

原创 Windows10 Ubuntu子系统运行 linux原生程序

工作当中会用当Ubuntu系统,但是主要的工作又是在Windows平台, 这样就需要用到虚拟机,而因为公司装了加密软件,系统本来就比较卡顿,再开虚拟机就巨卡无比了。于是就开始尝试使用Windows10的linux子系统, 然后就操作了一番,发现运行我们的交叉编译工具链时会出现,“Exec format error” , 一开始以为是 32位和64位的区别,然后就安装了32位兼容的各种包, 结果仍...

2019-08-05 16:56:57 434

转载 64位ubuntu编译32位程序

原文地址: https://www.cnblogs.com/mliudong/p/4086797.html公司用的有些东西比较老旧,还只支持32位,这里转载一篇以备后续查看。如上使用C4这个小工具时遇到来需要仿真32位系统的需求,发现使用-m32参数后,编译提示错误,如下:/usr/bin/ld: 未知的仿真模式: 32支持的仿真: elf_x86_64 elf32_x86_64 elf_...

2019-05-21 15:31:51 378

原创 linux c/c++ 创建多级目录

有时候应用程序中,需要创建目录,但如果是多级目录,直接使用mkdir函数是没法实现的,需要循环调用mkdir函数, 这里就做一个记录,以便以后需要的时候,可以直接使用。#include <unistd.h>#include <sys/types.h> #include <sys/stat.h> #include <string>boo...

2019-04-28 15:15:53 5786

原创 gitbook生成pdf时缺少ebook.css解决方案

在使用gitbook将自己写的电子书生成pdf文档时,遇到了缺少ebook.css的错误,网上找了很久,很多办法都是无效的,花了不少时间才发现找到一个解决方案,这里就做一个记录,以后再遇到就不需要到处寻找了。其错误如下所示:Error: ENOENT: no such file or directory, stat ‘C:\Users\45472\AppData\Local\Temp\tmp...

2018-10-12 16:46:01 2245

原创 My Machine Learn(四):mnist数字识别神经网络的优化(c++版本)

一、背景去年写过一篇关于用c++实现mnist手写数字识别的神经网络的文章,当然,这里是最基本的bp神经网络。不知不觉一年多的时间就悄悄溜过去了。《神经网络实现手写数字识别(MNIST)》:https://blog.csdn.net/xuanwolanxue/article/details/71565934《再谈神经网络反向传播原理》:https://blog.csdn.net/xua...

2018-08-07 13:30:04 5190 2

原创 c++使用function和bind绑定类成员函数时有重载函数怎么办?

一、背景最近在编写一个项目的代码时,不小心犯了一个错误, 导致项目代码编译不过,项目使用的语言是c++,一直报’bind(,xxxx)这类似的错误,开始以为是基础基类的方法有问题,但查看代码之后发现,我们要bind的成员函数,不是虚函数,也没有继承基类的函数,搞了好半天才发现问题所在。二、问题解决最终的问题,是因为此类中,内部使用(protected或private)的函数重载了我们需...

2018-07-23 09:15:38 5617 2

原创 My Machine Learn(三):c++实现矩阵运算

一、背景机器学习中的神经网络,有人说是模仿人类大脑的神经元,但说白了,其实就是算数运算,单个人工神经元或者神经元层,其权重与输出,均可以使用矩阵来表示。当然不管是c++还是Python均有矩阵运算的库(这其中Python的会更多一些),还有GPU加速等版本。这里我想实现一个c++版本,用以实现简单的全连接神经网络,起重点是简单,高效,不在乎要实现多复杂的功能。二、矩阵类定义这里...

2018-06-25 11:22:41 846

原创 引用模板类中定义的类型(用typedef或using)以及auto、decltype、typename的使用

一、背景使用typedef或者using定义类型别名是非常常见的手段,在c++里面,有时为了封装性,模块性等原因还会在某一个namespace或者class内部定义类型别名。最近在写c++代码的时候,有实现一个模板类,说实话,虽然用c++用了好多年了,但还真没花多少时间去研究模板,因为我始终觉得,做项目,开发软件,不是为了炫技,我也不认为会玩儿模板就是牛人大神了,最主要的是把握好三个“用”...

2018-06-15 13:46:40 3258 3

原创 git submodule使用以及注意事项

一、背景在平时的软件开发过程中常常会有这样的场景,自己负责的某个模块会依赖其他模块或者第三方的library。这时你自己的模块是一个独立的代码仓库,你想要实现这样一种功能,当你从你的模块的代码仓库里把代码拉到本地来的时候,能自动的将你依赖的模块或第三方库都拉到指定的目录当中去。当然要实现这个功能的方法有很多,比如使用repo之类的工具,又比如如果你使用的是svn作为版本管理工具,那么你可以...

2018-06-07 15:25:28 27350

原创 以c++的方式实现error类型的定义

一、背景以前大量使用c语言进行嵌入式软件开发的时候,对于错误类型比较常见的方式大概有:使用define的宏定义使用enum的枚举比如这里需要定义四个错误类型,成功,失败,严重错误,未定义错误。如果使用宏定义的方式来定义,形如:#define ERR_OK 0#define ERR_FAIL 1#define ERR_FATAL 2...

2018-06-05 17:02:38 5794

原创 My Machine Learn(二): 逻辑回归(Logistic Regression)

一、简介老规矩,先来看看度娘她老人家是如何描述逻辑回归的: logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域 。也就是说,你也可以把逻辑回归看做是线性回归的一个分支或特例, 就好像“正方形”是“矩形”的特例一样。我在网上也瞧了不少与逻辑回归相关的文章,基本上一上来就是一堆让人头大的词语: 模型啊,参数...

2018-06-05 14:56:53 476 1

原创 解决visio对象在word中显示不全的问题

    作为一个软件工程师,编写技术文档是常有的事情,使用visio绘制各种图形(如,流程图,结构图,框架图,状态图等等)也是再正常不过的事情。    如果我们在word中撰写文档时,需要引用visio绘制的图形时,就可能有麻烦的事情发生了。    当然,我们可以直接使用截图的方式,将visio对象的截图粘贴到word中,但是这会带来一个问题,如果需要更新文档,或者临时做些修改时,如果是截图的话,...

2018-05-28 16:40:54 53365 18

原创 My Machine Learn(一): 线性回归

一、前言从上一次发的关于机器学习的文章到现在已经快一年了。 期间懈怠了很长一段时间,最近重新开启学习机器学习之路,准备一边学习,一边记录下这个过程, 所以就有了写 《My Machine Learn》系列文章的想法。当然所思缩写均是我自己的理解,不能保证完全正确,如果疏漏的地方,还请看官不灵赐教。 闲话少叙,言归正传。二、简介说道机器学习,深度学习之类的东西,大家首先想到的可能就是神经网路(或者说人

2018-04-27 13:35:22 507

原创 使用FFmpeg命令实现音视频转码的备忘录

FFmpeg是比较经典,也是比较流行的多媒体工具库(demux,mux, decode,encode等等),支持格式也比较丰富,也比较实用。做多媒体开发的经常都需要使用到各种格式的音视频对自己的开发成果进行测试。 要收集齐这些音视频测试文件可不容易,尤其是要精确到profile,比如h264的BP/MP/HP, mpeg4的SP/ASP等等。这里就到了转码工具出场的时间了, 网上也可以找到不少免费...

2018-04-19 16:56:23 1528

原创 奇妙的enum class,enum struct组合

1. 传说中的enum关键字不管是c语言,还是c++语言, 其中都有enum关键字。这是这两种语言的基础知识中都会涉及到的点。其具体定义方法如下:enum my_enum{ my_enum1 = 0, my_enum2,};当然也可以省略 enum的名字,使用匿名的方式定义枚举,如下所示:enum{ my_enum1 = 0, my_enum2,};或者与 ‘

2018-04-03 11:40:25 7532

原创 avformat的简单应用

注意:本文是基因FFMPEG的3.3.1 版本,如有出入请先核对版本是否相同一、简介avformat是包含复用(mux),解复用(demux)的多媒体容器库,它是ffmpeg框架中比较重要的两个library之一,另一个是avcodec(编解码库)。avformat当中包含了非常之多的容器格式,有很老的偏门格式,也有当今主流的多媒体容器格式。如果要实现一个多媒体播放器的话,基本上只需要ffmpeg

2017-06-20 15:32:31 6559

原创 从高考到吃“软”饭

上大学之前,我是一个连本科和专科都分不清的农村小娃。那时的我天真的以为,专科就是教授比较专业的知识,而本科就是学得比较广而不深。上大学之后,我算是开眼界了,各种社团真是百花齐放。对于从小就喜欢各种电子类东西的我,几乎拆遍了家里电器的我,没有任何悬念的选择了电子DIY类的社团。虽然加入社团之前有一个简单的测试,就是辨认三极管,二极管,集成电路(芯片)的引脚顺序以及名称,但对于我来说这些都是耳熟能详的东

2017-06-17 14:06:21 2042 9

《c印记》(c语言高级应用技巧)

我自己整理编写的一本关于c语言高级(或者说有意思)的应用开发技巧与方式

2019-02-18

ps2键盘鼠标协议中文版

这是一份介绍ps2键盘协议的中文版的pdf格式的资料

2009-03-05

空空如也

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

TA关注的人

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