自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 公众号开发(4) —— 使用Senparc.Weixin SDK进行模板消息推送

微信公众号支持推送模板消息给特定用户,只要获取到公众号用户的openid向微信提供的接口发送post请求即可向特定用户推送模板消息,以下记录简单记录使用Senparc.Weixin SDK进行模板消息推送的过程。

2022-12-25 21:35:06 726

原创 公众号开发(3) —— vant移动端框架使用

常见的vue移动端组件库有vux、cube-ui、Mint-UI、Vant等,其中Vant 是一个比较轻量、可靠的移动端组件库,同时支持vue2 和vue3,对于移动端的适配性更好,所以公众号开发的过程中选择vant作为前端框架,以下记录vue2中vant的使用过程.

2022-12-25 12:03:30 83

原创 公众号开发(2) —— 盛派.net SDK + vue搭建微信公众号网页开发框架

需求:通过微信公众号菜单跳转到手机端网页,跳转后通过微信授权登录获取微信公众号用户的OpenId(用户关注公众号后,用户在公众号的唯一凭证),通过OpenId和后台数据库用户信息绑定起来并实现一些业务逻辑。技术框架:网页端使用vue来作为前端框架,.net web api作为后端框架,本文主要记录前后端框架的搭建过程。

2022-12-25 00:21:26 602 4

原创 公众号开发(1) —— natapp 内网穿透

当我们需要公众中需要跳转页面或者调用自定义的接口时就需要配置一个通讯服务器了,最终部署的时候一般选择一台云服务器+备案过的域名,而开发过程中可以使用我们本地机器进行内网穿透即可作为通讯服务器。内网穿透的工具比较多,比如花生壳、natapp等,因natapp提供免费的内网穿透,所以本文记录natapp内网穿透的过程。

2022-12-11 16:35:24 256

原创 RIoTBoard开发板系列笔记(十三)—— yocto SDK安装与使用

yocto是一个很强大的嵌入式image 构建工具,借助yocto可以轻松的构建出一个开发板镜像。如果我们想借助yocto开发一些应用层的程序,有以下两种方法可供选择:(1)按照yocto的构建规则添加自己的程序和编译脚步,通常稍微繁琐一些。(2)使用yocto提供的SDK来交叉编译自己的程序。yocto提供的SDK是一个独立的开发环境,不再依赖yocto,SDK包含的内容:(1)Cross-Development Toolchain:工具链包含编译器、调试器等各种工具。(2)Libraries,

2022-12-04 10:40:49 255

原创 RIoTBoard开发板系列笔记(十二)—— gstreamer + vpu实现视频硬件解码播放

i.mx6 solo芯片中包含一个VPU (video processing unit),可以进行视频硬件编解码加速,之前文章简单的记录了使用VPU解码的过程,没有render也没有播放控制。一般音视频开发需要一个框架来实现demux 、decoder、render以及基本的播放控制,linux平台首选的多媒体框架就是GStreamer。

2022-10-29 14:42:47 1080

原创 RIoTBoard开发板系列笔记(十一)—— 使用Yocto构建开发板镜像

前面的几篇文章里简单的记录了一下使用buildroot构建RIoTBoard系统镜像的过程,因想使用imx6 solo的VPU,但是buildroot默认使用的kernal版本是liunx-fslc,需要使用linux-imx的kernal才能使用GPU, VPU 以及 IPU,Yocto构建系统的时候可以灵活的选择kernal版本,而且FSL Community 每个版本BSP Release Notes 中的教程也是使用Yocto来构建,所以决定来踩下Yocto的坑。

2022-10-07 13:54:33 445

原创 RIoTBoard开发板系列笔记(十)—— nfs服务搭建

嵌入式开发一般是交叉编译环境,开发中经常需要将编译好的linux 镜像或ko放在开发板中测试,可以选择用sd将执行文件拷贝到开板中,更便捷的方法是通过nfs(Network File System)网络文件系统,使用挂在nfs服务的方式进行传输。

2022-09-04 19:24:04 145

原创 RIoTBoard开发板系列笔记(九)—— buildroot 移植MatchBox

上一篇博客记录了使用buildroot移植Xserver的过程,XServer提供了基本的图形显示能力,想要使用桌面系统还需要一个WindowManager。Matchbox是XWindowSystem的免费和开源WindowManager,它主要用于嵌入式系统,本博客主要记录MatchBox的移植过程。......

2022-07-23 17:31:19 267

原创 RIoTBoard开发板系列笔记(八)—— buildroot 移植Window System - Xorg

前两篇博客记录了如何使用buildroot构建riotboard的系统镜像,但是构建的系统都是没有GUI,嵌入式liunx系统在很多应用场景下都需要GUI的,因此打算使用buildroot再移植一个GUI过来,GUI移植选择了XWindowSystem-Xorg,想了解XWindowSystem的可以自行百度,网上有很多介绍的资料,本博客只简要记录移植过程。.........

2022-07-17 18:17:01 284

原创 RIoTBoard开发板系列笔记(七)—— Framebuffer的使用

Linux系统中通过Framebuffer驱动程序来控制图形显示,Framebuffer被设计为一个独立于硬件的API,让用户空间软件仅使用Linux内核自己的基本设施及其设备文件系统接口即可访问Framebuffer。本博客记录riotboard使用buildroot构建framebuffer以及test程序的过程。...

2022-07-16 21:14:40 182

原创 RIoTBoard开发板系列笔记(六)—— buildroot构建系统镜像

针对RIoTBoard,官网提供的release 版本的镜像,是基于kernal header 3.6版本的,kernal版本比较旧,最新的kernal 应该是5.10版本的了,于是打算自己构建一个kernal新一点的系统。目前构建嵌入式系统比较强大的两个工具是Yocto和Buildroot,Yocto將嵌入系Linux建制成Binary套件,功能强大,但是上手较慢,学习起来也比较难,对硬件的要求较高;相比之下Buildroot比较简单,上手较快,因此选择了使用Buildroot来构建系统。......

2022-07-03 17:23:57 530

原创 RIoTBoard开发板系列笔记(五)—— 移植u-boot

移植U-boot

2022-06-19 16:17:42 65

原创 ubuntu GStreamer + QT多媒体播放器开发(四)

本篇博客在上一篇ubuntu GStreamer + QT多媒体播放器开发(三)的基础上主要修改新增以下几点:(1)播放过程中实时更新进度条以及播放时间。(2)拖动进度条实现seek功能。(3)QT UI替换为正点原子的videopalyer 样式布局。播放过程中实时更新进度条以及播放时间需要新增获取档案duration 和position 的接口,在mmplayer lib中新增两个接口。...

2022-06-11 18:40:36 389

原创 ubuntu GStreamer + QT多媒体播放器开发(三)

本篇博客在上一篇ubuntu GStreamer + QT多媒体播放器开发(二)的基础上主要修改新增以下几点:(1)log 分为trace、info、debug、warn、error五个级别打印;(2)mmplayer lib新增MMPlayerPause 接口。(3)QT(UI)层更改为通过control thread 控制播放、暂停、停止等功能,通过command queue实现异步响应UI 点击事件;(4)QT 窗口退出时增加资源释放的流程。(5)优化QT project cmake....

2022-06-04 17:23:20 281

原创 ubuntu GStreamer + QT多媒体播放器开发(二)

本篇博客在上一篇ubuntu GStreamer + QT多媒体播放器开发(一)的基础上主要修改新增以下几点:(1)使用gstreamer播放控制的部分封装成mmpalyer lib,对外的接口以及一些结构体和枚举定义单独抽离到mediaplayer.h头文件中;(2)使用QT调用mmpalyer lib提供的接口实现播放,视频在QT窗口中进行渲染;(3)增加playbin3 的element-added signal 监听,方便查看playbin3在自动创建pipeline时增加了那些element

2022-05-31 22:26:57 692

原创 ubuntu GStreamer + QT多媒体播放器开发(一)

之前用gstreamer和QT开发了一个粗糙的MP4播放器(GStreamer开发简单MP4播放器(二)),只能实现mp4格式的文件播放,而且bug比较多,代码结构比较乱,没有继续开发下去。最近事不是很多,因此打算抽空重新用gstreamer写一个player,记录一下折腾过程。1 实现思路本次主要实现两个功能:(1)封装player start 和stop接口,main函数中调用这两个接口实现播放和停止。(2)播放任务放在一个单独的线程中执行。首先定义一个结构体,存放hanle(也称player

2022-05-29 22:32:11 882 4

原创 c++中调用c编写的动态链接库出现undefined reference to `xxx‘的解决方法

1 问题现象用c语言写了个lib ,编译成了动态链接库,然后建了一个QT项目,想调用自己编写的lib里面的函数,编译的时候发现build OK,但是link的时候error,找不到lib 里面的函数。[ 20%] Automatic MOC and UIC for target gst_player[ 20%] Built target gst_player_autogen[ 40%] Linking CXX executable gst_playerCMakeFiles/gst_player.d

2022-05-29 09:36:15 1126

原创 makefile中进行宏定义并传递给源代码

makefile是liunx 平台下c、c++开发必不可的工具,掌握一些makefile的技巧对于项目编译构建有很大的帮助,本篇文章主要记录一下makefile中进行宏定义并传递给源代码的使用技巧,主要传递了一个code_version变量,变量是通过git命令获取commit id,通过宏定义传递给源码,在源码中可以获取commit id,可以作为code的版本信息,这对于频繁release的项目很重要,可以确认一些so的版本是否匹配。1 工程目录结构建立的demo工程目录结构如下所示:├── in

2022-05-22 21:51:52 1484

原创 ubuntu串口调试工具 picocom

做嵌入式liunx开发,串口终端是必不可少的工具。对于windows,一般可以使用 Xsell或者 SecureCRT,linux 平台目前只使用过picocom,感觉使用起来还是很方便。安装方法:sudo apt-get install picocom 打开终端:sudo picocom -b 115200 /dev/ttyUSB0使用效果:...

2022-05-15 19:45:06 496

原创 RIoTBoard开发板系列笔记(四)—— 使用VPU硬件解码

git clone https://github.com/Freescale/gstreamer-imx.gitgit clone https://github.com/Freescale/libimxvpuapi.gitgit clone https://github.com/Freescale/libimxdmabuffer.git

2022-05-15 14:35:27 986

原创 linux mkdir: cannot create directory ‘xxx’: Read-only file system解决方案

最近在ubuntu系统下往U盘里复制东西的时候出现了Read-only file system的error:cp: cannot create directory '/media/zhy/ZHY/example': Read-only file system尝试在U盘里创建文件夹时也error:mkdir: cannot create directory ‘/media/zhy/ZHY/imx-vpu’: Read-only file system解决方案也很简单,重新挂载一下sudo mou

2022-05-14 20:37:03 3310

原创 linux ldd命令的使用

1 问题背景最近有个项目需要将libwebp这个库的source code移植到linux 平台下,因为只需要部分功能,所以对代码进行了精简。精简过后可以编译通过,so加载到开发板上却无法实现对应的功能,也没有报出明显的错误。因为之前有遇到过引用了没有声明或者没有实现的函数导致so不能使用的情况,所以怀疑精简的时候出了问题,导致误删除了一些函数。百度了一下linux 平台上如何查看so依赖的函数或者lib 是否有缺失方法,出现了ldd 这个命令,执行以下shell命令即可查看目标so依赖了哪些lib或函

2022-04-06 21:41:27 1957

原创 香蕉派BPI-M5折腾记录(3)—— 编译BSP

BPI官方提供的bsp还是比较完善,包括了u-boot、kernel、root file system以及一个完整的tool chain,本文章主要记录编译并替换BSP的过程。1 BSP代码下载下载官方提供的BSP代码git clone https://github.com/BPI-SINOVOIP/BPI-M5-bspgit submodule update --init --recursive软件包中自带了toolchain,所以不需要再额外的下载安装了,toolchain位于toolcha

2022-04-05 21:48:24 625

原创 使用libwebp解码webp静态图片

WebP是一种同时提供了有损压缩与无损压缩(可逆压缩)的图片文件格式,派生自影像编码格式VP8,目标是减少文件大小,但达到和JPEG格式相同的图片质量,希望能够减少图片档在网络上的发送时间。1 webp containerWebP container 基本内容分为以下几个方面:1.1 RIFF File FormatWebP文件格式基于RIFF(Resource Interchange File Format)文档格式,RIFF文件的基本元素是Chunk,主要包括以下内容: 0

2022-03-13 15:26:01 866

原创 ffmpeg 4.3添加自定义demuxer

1 编译ffmpeg4.31.1 ffmpeg 4.3下载从国外git仓库下载ffmeg4.3源码速度比较慢,推荐使用国内gitee镜像下载。git clone https://gitee.com/mirrors/ffmpeg.git -b release/4.3 1.2 编译代码./configure --enable-shared --prefix=/home/zhy/code/mypc/ffmpeg4.3/ffmpeg/install_libmakemake install1.3

2022-03-06 21:49:35 2910

转载 色彩空间(2)—— YUV

最近在看YUV相关的色彩空间,看到了一个大佬的比较好的博客,转载保存一下。1 详解YUV系列(一)----YUV4442 详解YUV系列(二)------YUV4223 详解YUV系列(三)-------YUV420

2022-03-03 21:45:12 149

原创 色彩空间(1)—— RGB

RGB色彩模式是工业界的一种颜色标准,是通过对红®、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是运用最广的颜色系统之一。对一种颜色进行编码的方法统称为“颜色空间”或“色域”,任何一种颜色的“颜色空间”都可定义成一个固定的数字或变量,采用这种编码方法,每种颜色都可用三个变量来表示-红色绿色以及蓝色的强度,常用的RGB颜色空间的格式有RGB565,RGB555,RGB888,RGB888

2022-03-02 22:04:41 969

原创 香蕉派 BPI-M5折腾记录(2)—— 编译u-boot

1 安装docker1.1 更新 apt 包索引并依赖packages: sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release1.2 添加 Docker 的官方 GPG 密钥: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr

2022-02-27 21:08:39 922

原创 香蕉派 BPI-M5折腾记录(1)—— 开发板系统烧写

最近又从咸鱼上淘了一块二手开发板Banana Pi M5,之所以选这块是因为树莓派4溢价太高,不划算了。总体而言Banana Pi M5配置还是挺不错的,性价比挺高,韩国还有一款开源开发板 Odroid C4,配置和BP M5差不多,价格55美刀,但是不好购买,跨境邮费25美刀,综合下来这块开发板性价比最高,缺点是没有板载wifi和蓝牙,需要独立配置。1 开发板配置开发板的硬件规格如下所示:Banana Pi BPI-M5采用Amlogic S905X3四核Cortex-A55 (2.0xxGHz)

2022-02-26 17:06:06 1614

原创 Ubuntu18.04编译libwebp

WebP是谷歌开发的一种旨在加快图片加载速度的图片格式,图片压缩体积大约只有JPEG的2/3,并能节省大量的服务器宽带资源和数据空间。libwebp是谷歌官方提供的webp格式图片parser以及解码的库,以下记录ubuntu18.04 编译libwebp的过程.1 下载代码:git clone https://github.com/webmproject/libwebp.gitcd libwebp/2 执行以下脚本编译./autogen.sh./configuremake...

2022-02-12 20:09:24 573

原创 ubuntu18.04安装谷歌浏览器

1 下载安装包wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb遇到unable to resolve host address ‘http’的问题:Resolving http (http)... failed: Name or service not known.wget: unable to resolve host address ‘http’wget下载失败直接浏览器访问http

2021-12-18 13:19:17 362

原创 RIoTBoard开发板系列笔记(三)—— 移植Gstreamer

交叉编译

2021-12-13 22:24:59 810 3

原创 RIoTBoard开发板系列笔记(二)—— 搭建交叉编译环境

嵌入式linux 开发离不开交叉编译,所以搭建交叉编译环境是必须的。一般build平台(编译该软件所使用的平台)选择linux,host平台为ARM(该软件将运行的平台),我的build的主机是一台安装了ubuntn18.04的笔记本电脑,有条件的当然也可以选择云服务器来作为编译主机。1 交叉编译工具链下载RIoTboard官方提供的交叉编译工具链为fsl-linaro-toolchain,可以通过我在RIoTBoard开发板系列笔记(一)— 环境搭建里分享的百度云资源下载,不过下载太慢。官方针对该款开

2021-12-11 15:14:04 655

原创 RIoTBoard开发板系列笔记(一)—— 系统下载运行

之前手里头有一块友善之臂2416的开发板,折腾了那么几次,后来发现开发板flash太小了,烧完board就剩不到100M,想移植一些音视频处理的库就不行了,而且s3c2416这款处理器年代也比较久远,处理起来音视频肯定比较吃力,所以想重新搞一块配置高的开发板。本来想搞一款树莓派玩一玩,奈何这两年芯片紧缺,一块下来得好几百,感觉划不来。遂又在咸鱼上一通操作,搞到一块叫RIoTboard的开发板,感觉还不错,就是文档资料不太多,开发板子的公司好像也没有再提供后续的技术支持了。自己根据用户手册折腾一下,记录一下

2021-12-07 23:03:42 929

原创 联想笔记本电脑安装Ubuntu18.04系统

又一台闲置的笔记本电脑,型号为ThinkPad E480,处理器是7代i3的,安装win10系统卡的很,所以换个linux系统试一下,一下记录安装过程,其他型号的电脑安装流程也大同小异,只要能正确进入BIOS启动设置就可以了。1 制作系统U盘制作系统U盘需要下载Ubuntu iso以及制作工具。(1) Ubuntu版本为18.04 64位桌面版,在阿里云提供的镜像下载的,下载地址:http://mirrors.aliyun.com/ubuntu-releases/18.04/ubuntu-18.0

2021-12-05 11:22:54 4140 1

原创 ubuntu 18.04安装中文输入法

给笔记本电脑安装了ubuntu 18.04系统后发现没有中文输入法,记录一下默认中文输入法的安装过程。1 进入Settings -> Region & Languge 选项。点击Manage Installed Languages,进入Language Support界面。点击Install/Remove Languages按钮,选择Chinese(simplified),然后点击Apply进行安装。安装好后回退到Region & Languge界面。点击Input sour

2021-12-04 17:35:51 1481

原创 笔记本电脑安装ubuntu18.04系统后wifi驱动缺失的解决方法

之前把闲置笔记本电脑的系统换成了ubuntu18.04,最近系统出了点问题,开不了机,只好重新安装系统。安装完毕后发现没有wifi驱动,所以不能连接wifi,以下记录该问题的解决方案,以备下次刷机时使用。1 系统安装完毕后先执行以下命令:sudo apt-get updatesudo apt-get upgrade 这两个命令需要联网,暂时可以通过网线或者usb wifi 共享连接,执行万后然后重启:reboot2 重启后打开Software & Updates,找到Addition

2021-12-04 16:05:56 2203

原创 ubuntu18.04安装百度网盘

百度网盘官方下载地址:https://pan.baidu.com/download选择liunx 平台deb格式的安装包,该安装包适应的系统有:中标麒麟桌面操作系统软件(兆芯版) V7.0、Ubuntu V18.04、统信UOS V20。安装:sudo dpkg -i baidunetdisk_3.5.0_amd64.deb 然后找到图标打开即可。...

2021-11-25 22:09:59 1297 1

原创 ubuntu18.04 libfaad2编译

faad2是AAC音频解码的lib,支持MPEG2和MPEG4格式的audio解码。代码下载网址:https://www.linuxfromscratch.org/blfs/view/svn/multimedia/faad2.html。解压:tar xvzf faad2-2_10_0.tar.gz cd faad2-2_10_0/1 本地编译./bootstrap ./configure --prefix=$(pwd)/install

2021-11-20 21:43:01 876

mediaPlayer.zip

ubuntu18.04环境下QT、FFmpeg、SDL2视频播放器

2021-10-10

NewGStreamer.zip

gstreamer开发的简单的mp4播放器,用qt creator开发的,但是没有用的QT提供的图形界面库

2021-07-04

空空如也

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

TA关注的人

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