自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 自动驾驶学习资料整理,纯干货

整体书籍公开课开源项目Apollo参考文献其他人整理合集taylorliu自动驾驶自动驾驶学习资料合集神经网络【中英字幕】吴恩达深度学习课程第四课 — 卷积神经网络动手学深度学习CUDA编程入门极简教程TensorRT(1)-介绍-使用-安装caffe(2)配置文件.prototxt的理解数学二次规划QP(Quadratic Programming) — 运筹学,Apollo轨迹规划算法中使用了。高斯分布 — 概率论,卡尔曼滤波器算法中使用了。感知综合目标检测

2021-04-28 01:39:25 984

原创 c++ vector为空,size() - 1后溢出,注意排坑

vector的size()函数返回的是一个无符号整数,当size() == 0,再减1,会导致溢出,从而使数据变大如代码:int main(){ vector<int> arr; cout<<arr.size()<<endl; // 输出 0 cout<<arr.size() - 1<<endl; // 输出 429496729}...

2020-11-26 20:31:54 618

原创 #最小嵌入式Linux系统#uboot启动分析

u-boot启动分析1.完成配置任务后,再一次make$(obj)u-boot: depend \ $(SUBDIR_TOOLS) $(OBJS) $(LIBBOARD) $(LIBS) $(LDSCRIPT) $(obj)u-boot.lds//start.o是第一个依赖文件,因此先分析start.sOBJS = $(CPUDIR)/start.o //...

2018-06-10 00:36:05 818

原创 #Makefile#Makefile过程分析

make的执行过程分为两个阶段。 第一阶段:读取所有的makefile文件(包括“MAKEFILES”变量指定的,指示符“include”指定的,以及命令行选项“-f”指定的makefile文件),内建所有的变量,明确规则和 隐含规则,并建立所有目标和依赖之间的依赖关系结构链表。 第二阶段:根据第一个阶段已经建立的依赖关系结构链表决定哪些目标需要更新,并使用对应的规则来重建这些目标。理解...

2018-06-10 00:32:43 733

转载 #pragma pack学习

最近调试网络的服务端程序,自己写了一个小客户端程序来测试,发现服务程序解包错误。经调试发现客户端的协议头大小和服务器端的协议头大小不一致。原因是服务器端加了#pragma pack(1),而客户端没加。之前没接触过这个编译宏,现在来认真学习之。首先google之~~,原来#pragma pack有几种形式,我所接触到的是#pragma pack(n),即变量以n字节对齐。 变量对齐在每个系统中是...

2018-03-23 14:35:54 158

原创 #MINI2440实现语音识别# (三)REST API访问和VAD端点检测

原文地址:http://blog.csdn.net/sinat_26551021/article/details/796028431.前言  本文主要是接#MINI2440实现语音识别# (一)整体概述和实现流程记录这篇文章继续讲。首先简单介绍下背景。前面三个阶段分别完成了嵌入式Linux最小系统移植、驱动UDA1341声卡、跑通讯飞Demo库,可以实现语音转文字,但是存在几点问题: ...

2018-03-19 22:03:35 717

原创 消息队列 mq_queue,报错: message too long

原因说明:原因很简单,要注意看LINUX man手册,man 3 mq_receive里明确说了,“The msg_len argument must be greater than or equal to the mq_msgsize attribute of the queue(see mq_getattr(3))”。同理,在man 3 mq_send时,msg_len必须小于或等于 mq...

2018-03-16 15:01:50 4422

转载 Linux下常用压缩 解压命令和压缩比率对比

https://www.cnblogs.com/joshua317/p/6170839.htmlLinux下常用压缩 解压命令和压缩比率对比 常用的格式有: tar, tar.gz(tgz), tar.bz2,不同方式,压缩和解压方式所耗CPU时间和压缩比率也差异也比较大。tar 只是打包动作,相当于归档处理,不做压缩;解压也一样,只是把归档文件释放出来。(1)打包归档格...

2018-03-14 16:44:51 7234

原创 #MINI2440实现语音识别# (二)驱动声卡UDA1341遇到的问题和解决办法

原文地址:http://blog.csdn.net/sinat_26551021/article/details/794840421. 前言   写这篇的主要目的是为了对#MINI2440实现语音识别# (一)整体概述和实现流程记录中,在驱动UDA1341声卡过程中遇到的问题进行记录和阐述。这里不对Linux中ALSA架构的音频子系统进行详细阐述,具体参考以下几篇文章: MINI24...

2018-03-08 22:48:45 817

原创 #MINI2440实现语音识别# (一)整体概述和实现流程记录

原文地址:http://blog.csdn.net/sinat_26551021/article/details/794760561. 前言  2017年,随着以深度学习为代表的的人工智能火热,智能音箱也跟着着实火了一把,各大厂都陆续都推出自己的产品。本着对新事物、新技术的好奇心,是时候祭出自己吃灰的老古董了 —&gt; MINI2440开发板。(截止目前,(2018.3.6)已经成功...

2018-03-07 22:35:07 1686

原创 #嵌入式Linux最小系统移植# mini2440最小系统移植(uboot、kernel、rootfs)可用源码

版本信息:1.uboot版本:u-boot-2012.10.tar.bz22.kernel版本:linux-4.0.tar.gz3.busybox版本:busybox-1.26.0.tar.bz24.交叉编译工具:$ arm-linux-gcc -v gcc version 4.4.3 (ctng-1.6.1) 代码获取路径:1.uboot:...

2018-02-09 21:03:07 662

原创 #嵌入式Linux最小系统移植# 对uboot移植和裁剪的一点点个人思考和总结

思路:1.分析启动流程2.移植config文件(smdk440_config)3.移植包含控制条件编译宏的.h文件(configs/s3c2440.h)4.移植板级初始化.c文件(s3c2440.c)5.移植RAM初始化?DDR?6.移植NorFlash7.移植NandFlash8.uboot应该能启动了?//分析启动流程1.make xx_config2.在makefi...

2018-02-09 20:55:06 1304

原创 #嵌入式Linux最小系统移植# mini2440内核4.0.8移植记录

/*移植内核Linux4.0.8*/1.机器码匹配(linux/arch/arm/tools/mach-types)# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number mini2440 MACH_MINI2440 MINI2440 ...

2018-02-09 20:49:27 1514

原创 #嵌入式Linux最小系统移植# yaffs2根文件系统移植出错记录

busybox官网地址:https://busybox.net/本次移植采用的busybox版本:busybox-1.26.0.tar.bz2交叉编译工具链版本:$ arm-linux-gcc -v gcc version 4.4.3 (ctng-1.6.1) 1、busybox目录下make menuconfig2、给内核打上yaffs2补丁...

2018-02-09 20:42:07 1258

原创 #嵌入式Linux最小系统移植# busybox分析和移植记录

//busybox/init.c1.init_main过程分析init_main parse_inittab(); file = fopen(INITTAB, "r"); //#define INITTAB "/etc/inittab" /* inittab file location */ new_in...

2018-02-09 20:36:57 445

转载 Linux自定义shell终端提示符

参考链接:自定义shell终端提示符:http://www.cnblogs.com/lienhua34/p/5018119.html

2018-02-09 20:11:35 546

原创 ARM架构下函数调用过程分析

1.被分析的C程序#include #include inttest1(int a1,int b1){ int c1; c1 = a1+b1; return c1;}inttest2(int a2,int a3){ int c1 = 0 ,c2; c2 = test1(a2,a3); return c1;}int

2018-01-13 17:18:33 4428

原创 x86_64架构下函数调用过程分析

//被分析的C程序inttest1(int a1,int b1){ int c1; c1 = a1+b1; return c1;}inttest2(int a2,char b2){ int c2; c2 = test1(30,40); return c2;}int main(int argc,char **argv){

2018-01-13 17:16:50 1684

原创 程序典型的存储空间安排图

一个C程序经过编译链接之后形成可执行文件,可执行文件即由一条条的汇编指令组成,其排布方式如图1所示。历史沿袭至今,C程序一直由以下几部分组成: 正文段:由CPU执行的机器指令组成。通常,正文段是可共享的,在存储器中也只有一个副本,另外,正文段通常是只读的,防止程序由于意外修改其指令。 初始化数据段:通常将此段称为数据段,它包含了程序中需要明确赋初值的变量。 未初始化数据段:在程序开始执行之

2018-01-13 17:07:35 2415

原创 嵌入式Linux菜鸟学习之路

1.设备驱动的作用计算机系统由硬件、软件组成,而对于实际开发来说,硬、软件间耦合性应尽量低,即应用开发工程师不需关心 硬件,而硬件开发工程师无暇顾及软件。为了降低硬、软耦合性,产生了设备驱动工程师。 2.操作系统驱动设计架构在无操作系统时,硬件工程师可以自定义API供应用开发工程师使用;而使用操作系统后,需按操作系统定义的架构设计驱动,如此才能良好的嵌入内核中。对图1.1而言: 优点:驱动编写简单

2016-12-09 00:40:53 2993

原创 Linux下安装opencv并移植至ARM

目的:OpenCV是Intel支持的开源计算机视觉库。它由一系列C函数和少量C++类构成,实现了图像处理和计算机视觉方面的很多通用算法。它不依赖于其它的外部库—尽管也可以使用某些外部库。OpenCV使用BSD License,对非商业应用和商业应用都可以免费使用。OpenCV的主要应用环境是Windows和Linux,本文主要介绍于嵌入式系统下的安装。开发环境:Linux版本:fedora24Ope

2016-11-24 22:25:43 6648

原创 基于S3C2440的USB摄像头应用简单实现之摄像头初始化(三)

Video4Linux2:该应用使用的是USB摄像头,在Linux中内核驱动框架多采Video4Linux2(V4L2),V4L2为上层的访问底层的视频设备提供了统一的接口,提取出公共代码避免底层硬件差异。 V4L2支持三类设备:视频输入输出设备、VBI设备和radio设备及更多。下图V4L2在Linux系统中的结构图:关于V4L2更加详细的介绍见:1.V4L2框架分析

2016-11-24 00:47:45 2837

原创 基于S3C2440的USB摄像头应用简单实现之LCD初始化(二)

LCD工作的硬件需求: 要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD控制器。在通常情况下,生产厂商把LCD驱动器会以COF/COG的 形式与LCD玻璃基板制作在一起,而LCD控制器则是由外部的电路来实现,现在很多的MCU内部都集成了LCD控制器,如S3C2410/2440等。通 过LCD控制器就可以产生LCD驱动器所需要的控制信号来控制STN/TFT屏了。帧缓

2016-11-21 02:15:23 1148

原创 基于S3C2440的USB摄像头应用简单实现之应用层框架(一)

浅解基于S3C2440的USB摄像头视频采集应用之应用层框架解析(一)目的:在嵌入式系统中,视频采集主要采用两种接口:一种是标准摄像头接口,一种是USB接口(USB1.1)。标准的摄像头接口,接口复杂,但传输速度快,适合高质量视频采集,而USB接口,接口简单,但有性能瓶颈,只能用于低质量的视频采集。我采用的是mini2440开发板,内为S3C2440芯片,S3C2440自带USB1.1主机接口和CM

2016-11-21 00:28:02 2434

转载 include<>与include""的区别

C语言中两种方式使用#include命令, #include <>与#include ””的区别 一种是在包含指令#include后面”<>”将头文件名括起来。这种方式用于标准或系统提供的头文件,到保存系统标准头文件的位置查找头文件。 另一种是在包含指令#include后用双引号””将头文件包括起来。这种方式常用与程序员自己的头文件。用这种格式时,C编译器先查找当前目录是否有指定名称的头文件,然

2016-02-05 14:18:29 396

原创 MD5算法的C语言实现

#include "main.h"#include "MD5.h"uint32_t MD5_data[16]={0};uint8_t MD5_LastData[16]={0};uint32_t data[16]={0};uint32_t MD5_result[4]={0x67452301,0xefcdab89,0x98badcfe,0x10325476}; void Md5_hex(){

2015-07-28 14:10:13 699

原创 MD5算法实现细节--------第三步和第四步

在上一篇博文中提到了MD5实现的第一步和第二步,这里继续后续的两步。 http://blog.csdn.net/sinat_26551021/article/details/47103203第三步 初始化:由于小端模式的原因,在程序中应该按如下定义: a=0x67452301,b=0xEFCDAB89,c=0x98BADCFE,d=0x10325476。 第四步 四轮循环运算:循环的次

2015-07-28 13:44:19 663

原创 MD5算法实现细节--------第一步和第二步

由于最近有个项目需要用到MD5,因此在网上看了一些资料,但是发现普遍有一个问题:通篇基本只讲个大概流程,对于细节并未提及。但是从实际应用的角度来看,并不需要具体去了解MD5的原理,只需关心如何用代码将其实现,而其中细节才是关键。至于大概流程,可以参照以下博文,讲的比较详细: http://blog.csdn.net/forgotaboutgirl/article/details/7258109

2015-07-28 11:49:47 1069

空空如也

空空如也

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

TA关注的人

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