嵌入式
文章平均质量分 76
luke-skyworker
这个作者很懒,什么都没留下…
展开
-
STM32Fxx系列CAN总线配置总结
这是我的第一篇技术博客,很久之前就萌生写技术博客的想法,一直没有付诸实践,典型的拖延症患者。最近在使用CAN总线的过程中遇到一些问题,就以此作开始,记录自己的技术成长之路,且方便以后查阅。 STM32F系列的CAN总线配置分为接收和发送两部分的配置;其中接收部分的过滤器以及CAN总线速率选择配置尤为重要。因带有测试性质,所以我选择的是1M的通信速率,看看能否达到40米的通信距离。C...原创 2015-04-13 10:42:33 · 4803 阅读 · 0 评论 -
IMX6Q的uboot.imx文件解析
文章目录uboot.imx与uboot.bin的关系uboot.imx文件解析IMX6 ROM BOOT 流程中IVT、Boot data、DCD等相关数据操作uboot.imx文件生成猜想经过几天的研究,彻底弄清楚了IMX6的ROM BOOT 流程,以及如何启动uboot;2016-03 版本的uboot源码编译后生成的uboot.bin与uboot.imx是什么关系,怎么生成uboot.im...原创 2018-12-13 16:47:54 · 8811 阅读 · 2 评论 -
IMX6Q u-boot启动流程分析
文章目录u-boot第一阶段中断向量reset复位向量代码uboot第二阶段代码与中断向量重定位代码重定位过程board_init_r函数启动Linux内核u-boot第三篇,该介绍uboot在imx6q芯片上的启动流程了;网上介绍uboot启动流程的文章很多,因此我这里只记录代码的执行流程,不详细分析代码的细节。u-boot第一阶段中断向量中断向量在arch/arm/lib/vector...原创 2018-12-25 15:14:28 · 3349 阅读 · 0 评论 -
Linux ARM 中断向量重定位分析
谨以此篇作为2019年的开篇,开启新的征程。虽然文章的内容写于3年之前,但是既然开始了博客之路,就把之前写的一些笔记陆续搬到博客上,也不枉费了昨日的辛苦。作为Linux的开篇,延续我一贯的风格,从启动以及中断向量开始。此篇文章的内容是以Linux版本是2.6.39,硬件平台是ATMEL9G25。大神路过,看一眼,请指正其中错误之处。好了,开始正题。在arch/arm/kernel/entry...原创 2019-01-01 22:11:12 · 1890 阅读 · 0 评论 -
ARM Linux IO模拟红外串口驱动实现
当我们用的ARM芯片串口数量不足时,有时需要使用IO口来模拟实现红外串口的发送与接收,关于串口的时序以及工作特点,这篇文章不做介绍,本篇文章主要描述如何实现IO口模拟实现串口功能。硬件平台:ATMEL SAM9G25kernel版本:Linux2.6.39...原创 2019-01-12 13:52:25 · 2799 阅读 · 0 评论 -
Linux 宏定义container_of详解
再写Linux驱动的过程中经常是一个结构体套一层结构体,而在某些函数中传入的参数是子结构体指针,但是我们又需要获取的其外层结构体的数据,Linux为我们提供了container_of宏定义来为我们解决这个问题。container_of宏定义就是用来通过内层结构体的指针获取外层结构体指针,宏定义很巧妙,我等凡人想不出来。下面就详细分析其实现原理吧。container_of宏定义需要用到offse...原创 2019-01-07 15:05:22 · 1692 阅读 · 1 评论 -
论嵌入式单片机软件架构
经过几天的回忆与思考,分析了我的成长路径,选择一些我自认为是成长关键点的位置,总结一个关键字,一步一步来讨论关于嵌入式单片机软件的架构。我先把总结出的关键字写出来吧:**流水式、中断前后台、任务式、状态机、分层式,操作系统多任务**;这些就是我总结出的关键字,写这篇博客我决定不参照其他博客,只把我心中所想以及以前的代码示例或者记录翻出来,再加修改,然后呈现出来,供大家品鉴。原创 2019-01-23 22:56:49 · 9304 阅读 · 14 评论 -
FFmpeg读取USB摄像头H264帧rtmp推流
文章目录代码makefile经过这几天的验证,终于走通了FFmpeg读取USB摄像头H264帧,然后用rtmp推流。使用的版本是4.0.2FFmpeg的源码在ubuntu16.04上的编译就不说了,这个网上的文章很多,这里我要说的是,好像FFmpeg对v4l2的封装,不能从摄像头多种输出格式数据中,选择V4L2_PIX_FMT_H264这种格式的数据输出,只能是默认的输出,这点还有研究明白。...原创 2019-01-18 20:12:11 · 13440 阅读 · 3 评论 -
gstreamer读取USB摄像头H264帧并用rtmp推流
文章目录gstreamer命令行实现rtmp推流gstreamer代码实现rtmp推流因为要在嵌入式端使用rtmp推流,目前我知道的有三种办法,ffmpeg、gstreamer、librtmp,每一种都需要移植到嵌入式平台,还是从我最熟悉的gstreamer开始验证吧。现在我的嵌入式平台gstreamer库没有rtmp元件,因此只能先在Ubuntu16.04系统的PC上测试,然后再移植带有rt...原创 2019-01-15 17:56:51 · 18977 阅读 · 37 评论 -
Linux链表操作
文章目录链表指针结构体链表的插入链表的删除链表的替换链表的移动链表的遍历新年开工第一篇,有点空闲翻博客,发现写过关于container_of宏定义的博客之后,怎么能不写链表操作呢,岂不是断篇了?那就把链表操作的笔记呀搬上来吧。自从学C语言时接触到链表后,直到再学Linux以前,一直以为链表就那样操作了,在结构体中定义指向结构体的指针,可以实现单向链表、双向链表、循环链表等,自从看到Linux的...原创 2019-02-13 20:39:19 · 1734 阅读 · 0 评论 -
FFmpeg读取视频文件rtmp推流
前一阵,研究了怎么用ffmpeg读取USB摄像头进行rtmp推流,这次也把读取视频文件推流的示例也搬上来。当然了本篇肯定也参考了雷神的博客,再次致敬!本篇比读取USB摄像头的H264帧要简单,而且视频文件中含有音频,推流的视频播放是含有声音的,因此,下一篇就是研究怎么读取USB摄像头的音频与视频,合成为视频文件并推流。#ifdef __cplusplusextern "C"{#endif...原创 2019-02-28 20:24:31 · 5089 阅读 · 2 评论 -
H264帧格式解析
文章目录进入音视频领域也快一年了,空闲时间思考一下,觉得有必要把一些关于H264与流媒体的知识总结一下,对自己在音视频领域内的知识进行梳理,不至于随着时间的流逝而遗忘。...原创 2019-02-19 19:28:49 · 25521 阅读 · 4 评论 -
imx6q 平台2016版 u-boot链接脚本详解
酝酿许久,关于uboot终于开篇;因为最近一直在使用imx6q平台进行Linux应用开发,但是我对imx6q的外围不是很熟悉,而且系统也不是我从头搭建的,总感觉心里没底,这样做事不是我的风格;所以有点空闲之后,决定把imx6平台的uboot、Linux整体再捋一遍,这样我睡觉都踏实一点;同时把之前的uboot、Linux学习应用笔记也搬到博客上来,巩固自己所学知识,好让自己快点将嵌入式Linux的...原创 2018-12-08 18:39:25 · 948 阅读 · 0 评论 -
Python+opencv+pyaudio实现带声音屏幕录制
文章目录声音录制视频录制(无声音)录制的音频与视频合成为带声音的视频基于个人的爱好和现实的需求,决定用Python做一个屏幕录制的脚本。因为要看一些加密的视频,每次都要登录,特别麻烦,遂决定用自己写的脚本,将加密视频的播放过程全程录制下来,这样以后看自己的录播就好了。结合近期自己学习的内容,正好用Python来练练手,巩固自己的学习效果。经过多番搜索,决定采用Python+opencv+pya...原创 2018-11-28 23:05:23 · 13077 阅读 · 20 评论 -
gstreamer使用opencv在视频中写入中文
文章目录安装freetype2与中文环境makefile编写CvText.cppCvText.htools.cpptools.h如何在gstreamer中,向视频画面写入中文这几天有研究下,怎么在gstreamer中通过opencv来向视频中写入中文;下面就写一下实现过程吧。原本OpenCV只能向视频画面中写入英文字符,本文结合第三方工具freetype2安装freetype2与中文环境s...原创 2018-11-17 11:54:00 · 2572 阅读 · 6 评论 -
Gstreamer1.0与imx6q IPU转码 wait_for_comp_timeout 问题解决心路历程
近几个星期在做360度视频编码的过程中遇到一个很棘手的问题,就是调用gstreamer1.0的imxvideoconvert_ipu vpuenc_h264 元件进行转码 + 编码时遇到 wait_for_comp_timeout 错误提示,导致无法完成编码,只能进行硬件重启才能恢复。重启后再次发生这个问题时间随机。下面详细讲述解决这个问题的过程,否则就对不起近日的辛苦。产生问题环境MCU...原创 2018-07-20 11:44:36 · 2595 阅读 · 9 评论 -
MakeFile经典入门教程
该篇文章为转载,是对原作者系列文章的总汇加上标注。支持原创,请移步陈浩大神博客:http://blog.csdn.net/haoel/article/details/2886目录概述关于程序的编译和链接Makefile 介绍一、Makefile的规则二、一个演示例子三、make是怎样工作的四、makefile中使用变量五、让make自己主动推导六、另...转载 2018-08-10 18:52:43 · 879 阅读 · 0 评论 -
Ubuntu16.04中搭建TFTP、 NFS 服务器 嵌入式开发环境搭建
Ubuntu 16.04中搭建TFTP服务器1、安装服务2、配置文件在/etc/xinetd.d/下建立配置文件tftp配置/etc/xinetd.conf配置/etc/default/tftpd-hpa重启服务嵌入式端获取服务端文件Ubuntu 16.04中搭建NFS服务器安装服务服务器配置配置文件参数说明重新启动nfs服务每次安装ubuntu...原创 2018-09-12 18:54:26 · 830 阅读 · 1 评论 -
Makefile 编译与链接选项及CFLAGS与LDFLAGS示例说明
最近看了makefile的手册之后,发现还是不知道怎么写makefile,而且就连看也看的是云里雾里,就我现在工作当中看到的一些makefile文件,只能看个大概的意思,一旦涉及到文件添加、静态库、动态库等增加、删除;文件搜索路径等的修改就没法下手了,因此必须对我比较关注的地方进行深度学习,知其然还要知其所以然,知道怎么从无到有写出来,而且别人的makefile还要知道怎么根据需求的变化进行修改。...原创 2018-09-10 18:52:06 · 58069 阅读 · 0 评论 -
Gstreamer学习与systemV 共享内存实例
最近在做Gstreamer视频传输过程中,因涉及到多进程间的通信,本来使用本地socket方式进行传输,发现每秒的帧率会被降低,因此决定用共享内存试一下,看看是否能够快一点。经过多番文档阅读,发现存在syetemV与POSIX两种方式的共享内存,并且区别还是蛮明显的,因此决定两者都试一下。由于systemV共享内存之间并没有进程同步,因此还需要信号量进行进...原创 2018-09-26 14:14:59 · 1065 阅读 · 2 评论 -
Gstreamer学习与POSIX共享内存实例
文章目录前言需求说明进程A进程B前言接上一篇,测试采用POSIX共享内存与信号量测试进程间通信,POSIX共享内存没有进程间同步操作,因此需要信号量实现同步。POSIX信号量作为进程间同步操作时,使用匿名信号量,且匿名信号量必须预先位于共享内存段中。需求说明进程A:Gstreamer进程,使用appsrc、vpuenc_h264、appsink三个元件对视频进行H264编码,appsr...原创 2018-09-26 14:57:53 · 604 阅读 · 0 评论 -
gstreamer1.0用appsrc元件抓取fb0节点RGB图像进行视频h264编码
最近接到的一个任务是,利用gstreamer1.0抓取framebuffer的fb0设备的RGB图像数据,进行h264编码,然后再转换为MP4视频;硬件平台式imx6qdl,内含IPU与VPU硬件,Linux内核版本是yocto project 4.1.15。IPU:将RGB数据转为YUV格式,因为VPU只能接收YUV格式数据转换为H264VPU:将YUV格式的数据转换为H264码流关...原创 2018-06-20 18:02:31 · 5839 阅读 · 31 评论 -
IMX6Q_CPU中断与负荷均衡
最近在做IMX6Q平台的视频应用中,遇到一个关于CPU负荷过高的问题,觉得解决的方法很有意思,必须要记录一下;下面详细描述一下,解决这个问题的过程- 2路USB摄像头视频与音频数据采集、保存与rtmp推流,视频分辨率640*360,- 1路360环视视频合成、数据保存、视频rtmp推流,分辨率1280*720;- 1路经过TX2算法分析识别的视频,通过以太网传输到imx6数据保存与rtmp推流,分辨率1280*720- 其它gps、加速度、CAN等传感器数据采集与推送原创 2018-11-02 16:56:57 · 1482 阅读 · 2 评论 -
gstreamer将H264码流转为avi视频文件示例
是时候记录怎么使用gstreamer库将h264码流转为avi、mp4、flv等视频文件了。什么也不说,直接上代码,然后详细说明一下。#define __USE_GNU#include <sched.h>#include <gst/gst.h>#include <gst/app/gstappsrc.h>#include <gst/app/gsta原创 2018-11-14 19:53:56 · 6949 阅读 · 5 评论 -
Linux多路USB摄像头直播画面位置固定
在一些视频直播画面中需要将USB摄像头的通道与视频画面的关系固定下来,什么意思呢?假如一个页面需要播放3路视频,分别对应3个USB摄像头,要将USB的通道序号与播放画面的3路视频一一对应,且每次播放时USB通道序号与画面对应关系保持不变。怎么做呢?下面记录一下我的做法。产生问题的原因在嵌入式设备中使用多路USB摄像头时,在/dev目录中会产生/dev/video0、/dev/video1等等类...原创 2019-03-25 19:58:17 · 2719 阅读 · 0 评论