自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

夜风的博客

专注于嵌入式软件领域的知识学习与分享

  • 博客(185)
  • 资源 (13)
  • 收藏
  • 关注

转载 程序是怎么从代码到二进制的?——预编译

概览从hello world说起。#include <stdio.h>int main(){ printf("Hello world\n"): return 0;}预编译过程测试vim hello.i , 如下:编译过程到底发生了什么?·将所有的#define删除,并且展开所有的宏定义·处理所有的条件预编译指令,比如#if #ifdef #elif ...

2020-04-25 21:35:09 2628

原创 gcc编译选项-fprofile-arcs -ftest-coverage之代码覆盖率

前言gcov是在代码运行时统计代码覆盖率的工具,随着gcc一起发布的。它的使用很简单,需要在编译和链接时增加-fprofile-arcs -ftest-coverage生成二进制文件。gcov主要使用.gcno和.gcda两个文件。.gcno是由-ftest-coverage产生的,它包含了重建基本块图和相应的块的源码的行号的信息。.gcda是由加了-fprofile-arcs编译参数的...

2019-12-08 19:16:42 4197

原创 内存异常实例解析(core dump、segmentation fault)

释放栈上的指针#include <iostream>using namespace std;int test(){ int a = 100; int *ptr = &a; free(ptr); }int main(){ test(); return 0;}报错: invalid point...

2019-12-08 17:16:16 1971

原创 c++ ——静态成员变量和静态成员函数

c++ 静态成员变量用static 关键字来声明,是整个类的数据成员,其存储不占用某个具体对象的空间,其存储在静态存储区。c++ 静态成员函数用static 关键字来声明,用于处理静态成员变量,可以用类名来调用,也可以用对象名来调用。测试代码:#include <iostream>using namespace std;class Point{public: Po...

2019-11-24 16:03:46 2103 1

原创 c++ 复制构造函数

c++ 复制构造函数的声明和定义的语法如下:class 类名{public: 类名(形参);//构造函数 类名(const 类名 &对象名);//类内复制构造函数的声明 ......};类名::类名(const 类名 &对象名){//函数体}以实际的栗子进行说明。#include <iostream>using namespace std;...

2019-11-16 22:07:21 958

原创 GDB调试查看内存数据

文章目录gdb查看内存数据测试gdb查看内存数据格式: x /nfu说明:x 是 examine 的缩写,意思是检查。n表示要显示的内存单元的个数,比如:20f表示显示方式, 可取如下值:x 按十六进制格式显示变量。d 按十进制格式显示变量。u 按十进制格式显示无符号整型。o 按八进制格式显示变量。t 按二进制格式显示变量。a 按十六进制格式显示变量。i 指令地址格式...

2019-10-06 15:01:03 12167 2

原创 exit()函数解析

文章目录exit()函数介绍exit()和return的区别测试1测试2exit()函数介绍函数名: exit()所在头文件:stdlib.h(如果是c++,头文件:#include < cstdlib >)功 能: 关闭所有文件,终止正在执行的进程。exit(0)表示正常退出,exit(x)(x不为0)都表示异常退出,这个x是返回给操作系统(包括UNIX,Linux,和M...

2019-10-06 14:02:43 1176

原创 vim常用的高效率快捷键

前言vim中操作的快捷键非常多,功能十分强大,当熟练实用一些快捷键,可以起到事半功倍的效果,效率提高很多。本文记录一些高效的文档修改相关的快捷键,以备使用。vim大小写转换格式:[开始位置] ———— 可以定位开始的位置,默认为光标所在位置gu ———— 选择范围内转小写gU ———— 选择范围内转大写 [结束位置] ———— 可以...

2019-10-04 17:46:07 722

原创 c++中std::auto_ptr的使用解析

前言由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。用智能指针便可以有效缓解这类问题,本文主要讲解std::auto_ptr智能指针。对于编译器来说,智能指针实际上是一个栈对象,并非指针类型,在栈对象生命期即将结束时,智...

2019-09-28 23:26:20 1500

原创 git使用方法

由于工作中项目开发需要用到git,所以查了一些资料,对git的使用做一些记录的总结。git简介Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库git 常用指令git config --global user.name xxxxxxname #配置邮箱git config --global user.e...

2019-09-28 18:38:39 249

原创 caffe从零开始学习5——ilsvrc12例程学习

./python/draw_net.py ./models/bvlc_reference_caffenet/deploy.prototxt ./caffe_png/ilsvrc12.png --rankdir=LR vim ./models/bvlc_reference_caffenet/deploy.prototxtname: "CaffeNet"layer { name: ...

2019-09-09 22:32:41 461

原创 汇编debug调试指令与解析

一、win10下debug的环境配置参考https://ask.dobunkan.com/article-4935.html,安装配置即可,本文主要讲解debug下具体怎么使用。二、汇编debug常用指令指令使用示例(不区分大小写):(1)r指令比如r 查看cpu寄存器的内容r ax 修改ax寄存器内容,其他寄存器修改类似。(2)d指令,查看内存内容(3)u指令,内存的机器...

2019-09-04 22:56:05 7359 2

转载 c++ 性能优化策略

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 ...

2019-08-27 17:12:59 780

转载 如何简单地理解Python中的if __name__ == '__main__'

...

2019-08-24 22:26:11 1210

转载 python标准库之glob介绍

glob 文件名模式匹配,不用遍历整个目录判断每个文件是不是符合。用它可以查找符合特定规则的文件路径名。跟使用windows下的文件搜索差不多。查找文件只用到三个匹配符:””, “?”, “[]”。””匹配0个或多个字符;”?”匹配单个字符;”[]”匹配指定范围内的字符,如:[0-9]匹配数字。1、通配符星号(*)匹配零个或多个字符import globfor name in glob....

2019-08-24 21:24:37 864

原创 caffe从零开始学习4——cifar-10例程训练及测试

前言Cifar-10是由Hinton的两个大弟子Alex Krizhevsky和Ilya Sutskever收集的一个用于普通物体识别的数据集。DL的两大核心:数据+模型。CIFAR-10(DataSet)这个数据集总共包含:60000张图片1—图片尺寸:32pixel*32pixel2—图片深度:三通道RGB的彩色图片2—这60000张图片共分为10类,具体的分类如下图所示:600...

2019-08-24 21:21:14 246

原创 caffe从零开始学习3——mnist例程测试自定义数字图片

测试一张自定义的手写体数字上面已经进行了mnist数据的训练,也对测试数据进行的测试,准确率在99%左右。那么如果我们想自己测一下一张字节手写的数字,看看他学习的是否准确,改怎么利用caffemodel权值文件呢。下面就来测试一张自定义的手写体数字。利用模型lenet_iter_10000.caffemodel测试单张手写体数字所需要的文件:(1)待测试图片(自己画的也行,网络上下的也行)...

2019-08-24 17:16:41 422

原创 SATA、mSATA接口定义及linux下的挂载硬盘、速度测试

SATA接口的定义SATA电源线和数据线接口定义SATA是Serial ATA的缩写,即串行ATA。2001年,由Intel、APT、Dell、IBM、希捷、迈拓这几大厂商组成的Serial ATA委员会正式确立了Serial ATA 1.0规范,2002年确立了Serial ATA 2.0规范。Serial ATA采用串行连接方式,串行ATA总线使用嵌入式时钟信号,具备了更强的纠错能力,还具...

2019-08-21 15:35:45 9600

转载 嵌入式Linux系统时间设置

Linux系统的很多功能都需要读取时间为基础。比如:日志系统需要时间戳以记录log,为后期的问题排查提供支撑;cron服...

2019-08-16 18:03:47 1734

原创 caffe调试常见问题汇总

(1)^M文件格式问题bash:./configure /bin/sh^M: bad interpreter: No such file or directoryconfigure文件是dos格式的,怎么转换成unix格式的呢?这就要用到vim的强大功能vim configure:set ff=unix:wq:set ff ? // 查询文件格式(2)import caff...

2019-08-13 22:55:42 126

原创 caffe从零开始学习2——mnist手写体数字识别例程

前言上一篇文章讲解了caffe在虚拟机ubuntu16.04中的安装教程,本文章将利用caffe架构学习其中自带的mnist手写体数字识别例程,动手学习caffe的具体使用方法。下载数据首先,在data/mnist目录下有个脚本文件:get_mnist.sh,其源码如下:#!/usr/bin/env sh# This scripts downloads the mnist data an...

2019-08-12 23:01:12 933

原创 caffe从零开始学习1——虚拟机下ubuntu16.04安装caffe(CPU版本)详细教程

前言最近想自己学习学习caffe架构,毕竟这个架构使用的很广泛,所以准备在我的虚拟机上安装caffe搞搞。网上的教程已经很多,我还要写这篇文章是因为每个人安装出现的错误总是各种各样,希望我安装过程中遇到的问题可以提供一些参考,也便于自己总结出现的问题。提示:虚拟机下不可以安装caffe 的gpu版(我自己安装过,安装GPU驱动时会报错,说找不到GPU的),所以只能安装caffe 的cpu版。...

2019-08-11 19:05:04 426

转载 到底什么是卷积?

转载:https://blog.csdn.net/hxg2006/article/details/79626288 ...

2019-08-11 11:22:50 34351 7

原创 编译常见问题集

1.编译报如下警告:warning: incompatible implicit declaration of built-in function ‘memset’ [enabled by default]原因:调用了memset,用于初始化内存中的数据,但是没有指定memset这个函数来自于哪里。解决方法:在文件头加入 #include <string.h>2.编译报如下警告...

2019-08-06 12:15:22 317

转载 G711(G711a+g711u)编码原理及代码

G711编码的声音清晰度好,语音自然度高,但压缩效率低,数据量大常在32Kbps以上。常用于电话语音(推荐使用64Kbps),sampling rate为8K,压缩率为2,即把S16格式的数据压缩为8bit,...

2019-08-05 17:48:11 11984

原创 Linux--Valgrind工具内存泄露检测和性能分析

前言内存泄露是我们在调试程序时经常遇到的问题,内存泄露分析软件也比较多,本文主要分析Valgrind工具的使用。Valgrind的简介及安装Valgrind官网下载: http://valgrind.org/downloads/current.html#current目前最新版是valgrind 3.15.0 ,官网上面下载的很慢。可以直接从镜像源中安装该工具。如下:sudo apt i...

2019-08-03 23:01:40 1926

转载 UFS和eMMC简介与区别

我们知道,我们电脑由三大件组成:CPU,内存和硬盘。CPU用以计算和控制,内存用以临时存储程序运行时所需的数据(掉电数据丢失),而硬盘用以长久保存数据(掉电数据不丢失)。我们每天使用的手机,其本质是一个移动的小型计算机,同样由三大件组成:CPU,内存和存储设备。其中的存储设备相当于电脑的硬盘,用以长久保存手机上的数据,比如视频、照片、音乐、系统等数据。电脑的硬盘有机械硬盘(HDD)和固态硬盘(...

2019-07-16 13:44:18 48331 11

转载 深入PCI与PCIe之一:硬件篇

最近在学习驱动开发过程中涉及到PCI相关知识,在网上看了很多文章,良莠不齐,我总结一下比较好的文章分享给大家,那就从源头开始说起。PCI总线和设备树是X86硬件体系内很重要的组成部分,几乎所有的外围硬件都以这样或那样的形式连接到PCI设备树上。虽然Intel为了方便各种IP的接入而提出IOSF总线,但是其主体接口(primary interface)还依然是PCIe形式。我们下面分成两部分介绍PC...

2019-07-10 10:03:30 12811

转载 视频编码中的块效应、振铃效应和呼吸效应分析

来源https://blog.csdn.net/SoaringLee_fightinghttps://blog.csdn.net/SoaringLee_fighting/article/details/80639732Date: 2018.5.281、块效应:(1)概念:主要是由视频图像采用基于块的编码方式和量化造成相邻块之间存在明显差异的现象,在视频编码中人眼察觉到的小块边界处的不连...

2019-07-04 18:31:50 5084

转载 详解HDR的三个标准——HLG/HDR10/Dolby Vision

HDR的三大标准:HLG(Hybrid Log Gamma);HDR10;Dolby VisionHLG:HLG的全称是Hybrid L...

2019-07-01 10:40:42 9903

原创 Hi3516a——HDMI接口获取数据后编码保存

前言本文章将从基础本的例程出发,分析海思提供的应用案例调试背景 : hi3516a开发板通过HDMI接口获取BT1120数据后进行编码,然后进行本地保存。硬件平台:hi3516a软件平台:Hi3516A_SDK_V1.0.5.0无私分享,从我做起!源码解析/****************************************************************...

2019-06-15 22:52:33 3424 1

原创 ubuntu16.04安装ffmpeg最新版

前言FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec。支持库的安装sudo apt-get install -y autoconf automake build-essential git libass-dev libfre...

2019-05-30 20:43:47 35361 11

原创 hi3516a——RTSP播放H.264视频流(2)

前言由于hi3516a海思自带的开发应用程序是通过摄像头接口或HDMI接口获取视频数据后并进行存储。然而,在实际应用中,多是获取数据后直接通过网络把数据发送出去。那么本文章将开始学习hi3516a获取数据后通过网线和RTP协议把数据实时发送出去。背景:hi3516a开发板通过HDMI接口获取BT1120数据后进行压缩,并通过RTP协议进行实时的视频直播。硬件平台:hi3516a软件平台:H...

2019-04-28 09:58:23 2294 2

原创 Hi3516a——h265 Nalu类型详细解析

前言在海思自hi3516a带的开发固件中,有H265编码的实例,在SAMPLE_VENC_1080P_CLASSIC(HI_VOID)应用实例中有涉及,那么本文将对H265的nal头和nalu的类型进行相关解析。h265 Nalu类型解析FF:必须为0,表示有效;为1的话表示无效。TypeType:6-bits NALType 确定NAL的类型,其中VCL NAL和non-VCL ...

2019-04-26 13:25:45 8238

原创 hi3516a——RTSP播放H.264视频流(1)

前言由于hi3516a海思自带的开发应用程序是通过摄像头接口或HDMI接口获取视频数据后并进行存储。然而,在实际应用中,多是获取数据后直接通过网络把数据发送出去。那么本文章将开始学习hi3516a获取数据后通过网线和RTP协议把数据实时发送出去。背景:hi3516a开发板通过HDMI接口获取BT1120数据后进行压缩,并通过RTP协议进行实时的视频直播。硬件平台:hi3516a软件平台:H...

2019-04-25 11:27:35 4689 11

原创 hi3516a——H.264数据包 封包为 RTP数据包(附封包源码和详细解析)

前言      ~~~~~~      由于调试HI3516A进行RTP流媒体播放时,需要清楚怎么把H.264数据包 封包为 RTP数据包并发出去。本文章将详细解析H.264数据包 封包为 RTP数据包的协议格式和源代码。硬件平台:hi3516a软件平台:Hi3516A_S...

2019-04-24 16:35:18 2641

转载 获取网络接口信息——ioctl()函数与结构体struct ifreq、 struct ifconf

Linux 下 可以使用ioctl()函数 以及 结构体 struct ifreq 结构体struct ifconf来获取网络接口的各种信息。ioctl首先看ioctl()用法ioctl()原型如下: #include <sys/ioctl.h> int ioctl(int fd, int request, ...);参数:...

2019-04-21 18:11:38 444

转载 Linux的SOCKET编程详解

Linux的SOCKET编程详解1. 网络中进程之间如何通信进 程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如UNIX BSD有:管道(pipe)、命名管道(named pipe)软中断信号(signal)UNIX system V有:消息(messag...

2019-04-19 10:21:37 567

原创 hi3516a——base64编码解析

前言Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。网上看到两篇文章总结的不错,可参考以下两文章。https://www.cnblogs.com/libin-1/p/6165485.htmlhttps://www.cnblogs.com/antineutrino/p/3756106.htmlC语言源码bas...

2019-04-18 16:15:10 475

原创 hi3516a——armlinux下搭建live555 RTSP Server

前言上一篇文章中,在ubuntu下搭建了RTSP Server,见传送门。本文将把live555源码包交叉编译后再hi3516a开发板上运行live555 RTSP Server。源码包下载见上述链接进行源码下载交叉编译tar -xvf live.2019.03.06.tar.gzcd live 参考自带的config.armlinux文件新建一个config.hi3516a文件...

2019-04-12 16:49:30 1978

液晶屏MIPI接口与LVDS接口区别(总结)

液晶屏接口类型有LVDS接口、MIPI DSIDSI接口(下文只讨论液晶屏LVDS接口,不讨论其它应用的LVDS接口,因此说到LVDS接口时无特殊说明都是指液晶屏LVDS接口),它们的主要信号成分都是**5组差分对**,其中1组时钟CLK,4组DATA(MIPI DSI接口中称之为lane),它们到底有什么区别,能直接互联么?

2019-03-29

NTC自动计算表格,输出参数得到对应的AD值

NTC自动计算表格,输出参数即可得到对应的AD值,方便计算。

2018-09-02

DDI0424D_dma330_r1p2_trm手册,pl330dma conroller资料

DDI0424D_dma330_r1p2_trm手册,pl330dma conroller资料,arm原版的pl330手册,pl330 dma接口、寄存器等使用介绍。

2018-07-11

pocketsphinx库学习用的一个简单的语言模型(lm、dic文件)

pocketsphinx库学习用的一个简单的语言模型(lm、dic文件),不想自己在线生成的可以下载下来简单测试下

2018-07-02

alsa lib 和alsa utils库编译好的alsa工具

alsa lib 和alsa utils库编译好的alsa工具, 下载下来移植到开发板上就可以使用

2018-06-26

zedboard开发板的adau1761.bin文件的模块包

zedboard开发板的adau1761.bin文件的模块包,里面有adau1761.bin、Makefile、mymodule.c等文件,在petalinux-config rootfs配置时需要用到该文件

2018-06-26

zedboard开发板的adau1761.state配置文件

zedboard开发板的adau1761.state配置文件,adau1761音频接口播放文件没有声音,需要配置该文件就出声音了

2018-06-26

alsa lib 和alsa utils最新的稳定版本库(1.1.16版本)

alsa lib 和alsa utils最新的稳定版本库(1.1.16版本)

2018-06-26

zedboard开发板的资料和原理图等

zedboard开发板的模块配置介绍,图纸说明,各模块的详细原理图

2018-06-26

基于KEIL环境和STM32F103标准库移植的最简单工程,便于自己添加其他功能

基于KEIL环境和STM32F103标准库移植的最简单工程,便于自己添加其他功能

2018-03-11

PCtoLCD 软件

PCtoLCD小软件,使用12864等点阵显示屏,可瞄点,可输入汉字进行转换

2018-02-08

Freertos中文手册

Freertos中文手册,包含freertos的基本原理、时间片、信号量、互斥量等介绍

2018-02-02

基于STM32+W5500, 移植Ethernet文件并基于NTP实现RTC对时更新,USART可实现DMA 接收任意长度数据

基于STM32+W5500, 移植Ethernet文件并基于NTP实现RTC对时更新,USART可实现DMA 接收任意长度数据

2018-02-01

空空如也

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

TA关注的人

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