- 博客(31)
- 资源 (4)
- 收藏
- 关注
原创 从字符串中过滤数字和字母并输出
需求:从字符串中过滤数字和字母代码实现:#include <stdio.h>#include <stdlib.h>#include <string.h>int analysis_data(const char *str, int *value, int *value_count, char *operator, int *operator_count){ int value_index = 0; int operator_index = 0; i
2022-01-05 16:23:09 855
原创 Git初步学习(1)
1. git的框架pull: 拉取 fetch 拿来 merge合并push:推动2. Windows下git的使用(1)git原生(2)tortoise git 下载地址:https://tortoisegit.org/download/windows下面的工具: git框架3. GitHub上创建仓库路径生成SSH秘钥$ ssh-keygen -t rsa...
2021-05-08 16:44:19 2800
原创 海康威视工程师谈嵌入式软件
笔者之前曾就职于杭州海康威视,提起这家公司,想必嵌入式领域的同学都很清楚,这是一家安防监控企业,虽然近些年来一直在说自己做人工智能,但离开嵌入式,摄像头是工作不了的。还记得四年前的秋天,我大三那年,拿着自己卑微的简历去面试了这家公司,当时太过年少,不知道何为嵌入式,时至今日,才发觉,自己当时由于认知水平有限,错过了很多学习机会。想来后悔不已,因此,将自己对于嵌入式的认知简单谈一下吧。一、嵌入式的领域划分嵌入式是一个综合类的职业,总体而言,要求一个本科或者硕士毕业生要对软硬件都有所了解,特别在一些小公司
2021-04-17 22:16:21 3102 7
原创 对于程序员而言,是否金三银四才是最佳跳槽季
作为金三银四亲身经历者,我想就最佳跳槽时间给各位一个参考。首先,说一下我自己的一个情况,我从年前开始投简历,那段时间公司快要开年会发年终奖了。由于不想再干目前这种工作了,想换个行业,内心压力巨大,加上年度绩效领导也没有给到良好,与当年付出严重不成比例,所以就花了一周时间详细修改简历,在boss直聘上投递。在年前这段时间完成了某大厂c++开发工程师面试,我只是自学过c++,工作中基本只用c,但由于做了详细准备,对网络,进程线程做了详细学习了解,所以面试通过了,虽然薪资要的有些高,不过他们总监面完之后还是决
2021-04-17 18:13:43 745
原创 程序员如何为跳槽做准备
最近恰好换了工作,offer已经发了,从一线城市跳到新一线城市,薪资涨了百分之五十左右。先说一下本人情况,本人上个东家是杭州物联网大厂,视频监控龙头企业,海康威视,在海康做嵌入式软件开发三年有余吧。首先还是要感谢海康培养了我三年,虽然大多数人都吐槽过它,但我对此不发表意见,只能说,既然走出去了就不评论前东家。 作为一个程序员,无论基于何种原因,要跳槽都要事先做好各种准备工作。其他业务方向本人不敢谬论,但对于嵌入式软件开发工程师这个岗位而言,本人还是有一些发言权的。本人在拿到手中offer...
2021-04-03 17:51:53 637 6
原创 ISP与图像参数调试
1. camera 处理图像的过程?camera 产生图像模拟信号之后-------------------《经过AD转换》------》生成数字信号------------------ISP处理
2021-02-20 20:38:54 940
原创 程序的局部性原理与Cache
1. cache在程序运行中的作用是什么?以前我们仅了解cache比内存速度快,但是这个仅在于说他可以方便CPU和内存交换数据,其实它另一个作用是局部性原理,而这在程序运行中也起到很关键的作用。2. 局部性原理是什么?局部性原理指的是将程序中最活跃,运行最频繁的一部分放在cache中去。程序访问的局部性原理包括时间局部性和空间局部性。空间局部性:在最近的未来要用到的信息(指令和数据),很可能与现在正在使用的信息在存储空间上是邻近的 时间局部性:在最近的未来要用到的信息,很可能是现在正在
2021-02-20 20:36:28 1670
转载 虚拟内存和物理内存
操作系统有虚拟内存与物理内存的概念。在很久以前,还没有虚拟内存概念的时候,程序寻址用的都是物理地址。程序能寻址的范围是有限的,这取决于CPU的地址线条数。比如在32位平台下,寻址的范围是2^32也就是4G。并且这是固定的,如果没有虚拟内存,且每次开启一个进程都给4G的物理内存,就可能会出现很多问题:因为我的物理内存时有限的,当有多个进程要执行的时候,都要给4G内存,很显然你内存小一点,这很快就分配完了,于是没有得到分配资源的进程就只能等待。当一个进程执行完了以后,再将等待的进程装入内存。这种频繁的装入内
2021-02-03 00:47:21 361
转载 分糖果问题
/*作者:bugfree~链接:https://www.nowcoder.com/discuss/224533?type=post&order=time&pos=&page=0&channel=-1&source_id=search_post_nctrack来源:牛客网一群孩子做游戏,现在请你根据游戏得分来发糖果,要求如下:1. 每个孩子不管得分多少,起码分到一个糖果。2. 任意两个相邻的孩子之间,得分较多的孩子必须拿多一些糖果。3. 任意两个相邻的孩子
2021-01-31 23:01:09 354
原创 如何深入学习Linux(一)
一、一点想法相信很多在大公司工作两三年左右的嵌入式程序员都会有各种焦虑和疑问,这其中,有人焦虑升职加薪无望,有人焦虑在大都市无法安身立命。。。。。作为这个行业的一员,我们的焦虑都一样。焦虑是永远无法被消灭的,我们只能想办法减少这种焦虑。缓解焦虑的途径有很多种,要么选择做个乐天派,豁达一点儿,要么慢慢适应和改变。每一种都值得尊重,但我选择忘记焦虑,暂时,将心思放在目前的首要事情中来。从今天开始,我将会在这一系列文章中记录自己的一些技术收获和感悟,基本上会偏技术一些。说感悟只能说是将自己的状态表达出来而已。
2021-01-30 20:31:11 260
原创 linux进程间的六种通信方式
Linux进程间有六种通信方式:1.管道2. FIFO3.信号量4.消息队列(这个在线程里面也有用到)5. 共享内存(一般都是指针共享)6. socket(多数都用的本地stream socket通信)
2021-01-30 16:32:39 750
转载 进程间的五种通信方式介绍
进程间的五种通信方式介绍来源:https://blog.csdn.net/wh_sjc/article/details/70283843进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。以Linux中的C语言编程为例。一、管道管道,通常指无名管道..
2021-01-30 16:29:47 754
原创 LeetCode 1. 两数之和使用C++调用测试
1. 题目题目链接:https://leetcode-cn.com/problems/two-sum/给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]2. 解题.
2021-01-25 21:56:14 225
原创 SPI驱动学习(一)
照旧,声明该篇文章是我摘录了别人的一部分合起来的,会对每一个引文先声明,仅供学习Linux系统SPI驱动总结(一)--------部分内容引用自https://blog.csdn.net/xiezhi123456/article/details/80097780一、SPI简介SPI是“Serial Peripheral Interface”的缩写,串行外设接口,是一种四线制的同步串行通信接口,用来连接MCU、传感器、存储设备,SPI设备分为主设备和从设备两种,用于通信和控制的四根线分别是:CS(
2020-12-13 16:59:32 1270
原创 Linux源码学习---源码下载
目录1. 源码下载地址1. 源码下载地址Linux官网太慢:https://www.kernel.org/有一个国内镜像:http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/绝大多数的书籍都是参照2.6版本的,下载之。2.6.39,是2.6系列最后一个版本,先看看,学习一下,不求多,看看能否看出一些精髓。...
2020-12-13 11:49:19 258
原创 Ubuntu下第一次写简单驱动(笔记)
一、环境Ubuntu14.04 +vmware tools二、步骤先写个.c文件,驱动文件一般没有printf,有自己的一套,先写一个helloword.c/* * helloworld.c * * 宇文凌风 * */ #include "linux/init.h"#include "linux/module.h" static int helloworld_init(void){ printk(KERN_ALERT "Hello World lin
2020-12-12 21:32:51 1622
原创 力扣刷题学习笔记-----atoi题目
请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函数不应该造成影响。注意:假如该字符串中的第一个非空格字符不是一个有效整..
2020-07-30 22:34:24 216
原创 力扣刷题学习笔记(3)
本次记录最近刷题学习笔记,部分源码借鉴力扣官方和网络,未详细注明,仅作学习使用,部分程序仍然贴出了源码,并做了可以直接在codeblocks下运行的程序:41. 缺失的第一个正数难度困难591收藏分享切换为英文关注反馈给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。示例1:输入: [1,2,0]输出: 3示例2:输入: [3,4,-1,1]输出: 2示例3:输入: [7,8,9,11,12]输出: 1思路:个人感觉应该先排序,然后遍...
2020-06-27 13:13:34 373
原创 力扣刷题学习笔记(2)
本文整理了第二天开始刷题的部分笔记记录,作为以后学习参考,有部分解法借鉴了力扣官方和其他题解,但做了完整程序,也就是说可以直接在codeblocks上面运行罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M ...
2020-06-27 13:07:15 298
原创 力扣刷题学习笔记(1)
最近开始刷题学习,下面整理一些题目,源自力扣,并附上了完整的程序,直接使用就可以验证,用于今后学习随时随地参考剑指 Offer 03. 数组中重复的数字难度简单92收藏分享切换为英文关注反馈找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3..
2020-06-27 13:03:56 1445
原创 数据结构与算法知识学习笔记(1)
最近阅读了一部分数据结构和算法的知识,做一记录https://www.cnblogs.com/lanhaicode/p/10358736.html二叉树树图树是一种无向图,每一个节点最多只有一个前驱节点和一个后继节点。每一个数只有一个根节点。根结点:没有父结点的结点叶结点:没有子结点的结点内部结点:一个结点既不是根结点也不是叶结点每个结点还有深度,比如上图左边的树的4号结点深度是3(深度是指从根结点到这个结点的层数,根结点为第一层)二叉树是非线性结构,有指针域和.
2020-06-27 13:01:05 165
原创 基于UVC协议的摄像头知识学习
1.UVC的概念UVC全称USB VIDEO CLASS,标准协议可以从usb.org下载.,这个网址有好多协议,什么USB啊之类的,我们需要的是下面这个协议https://www.usb.org/document-library/video-class-v15-document-set。USB_Video_Class_1_5.zip这个压缩包中包含着所以官方的参考资料。打开其中关于UVC的介绍文档。2.UVC摄像头的硬件模型借用一张大神的图:后面会附一下出处。USB摄像头一般...
2020-05-29 08:39:40 4420
原创 python将Excel文档转换为格式化json输出
import xlrd,json#json 库为了后续将json格式化输出使用def read_xlsx_file(filename): # 打开Excel文件 data = xlrd.open_workbook(filename) # 读取第一个工作表 table = data.sheets()[0] # 统计行数 rows = tab...
2020-04-15 00:18:53 973
原创 设计模式--学习笔记
“设计模式”一词最早出现在建筑领域中,直到后来GoF 在《设计模式---可复用面向对象软件的基础》中对“设计模式”一词做了系统的定义。设计模式是什么?设计模式是对于重复发生的问题的解决方案。GoF的名著作为面向对象的软件设计领域的圣经,其中阐述了三种类型模式:创建型模式、结构型模式、行为型模式,而这三种类型模式其实是23种设计模式的概述。 设计模式一般包含下面四个部...
2020-04-06 18:38:41 93
原创 C++之容器为何物,间接学习解答LeetCode两数之和问题
一直以来我都坚持博客是用来分享的,知识只有在分享中才能得到升华,才能在于别人的分享中认识到更深刻的知识。近日看到一些博客中的代码是C++,且用了容器的方法,自己对容器不太懂,因此决定学习一下这部分内容。一、什么是容器容器是一种面向对象的OOP的编程方式,它是为了保存数据存储时的对象的对象,主要可以方便之后的代码重用,容器会包含一些列的处理方法,这些处理方法都是基于模板的,会与标准库一起,为...
2019-12-26 00:30:08 224
原创 Linux网络协议
所有的通信方式都需要有规可循,有规可依,例如,串口通信之间确实方便,但是,发送方和解析方必须互相知道dui对方的解析方式,否则就会出现发了xi信息,但是却没有办法解析的问题。同样的,在网络通信方面,无论是不同的设备还是不同的应用之间,相互通信,也要遵循通信协议。OSI参考模型分七层: TCP/IP协议分四层应用层 ...
2019-12-22 23:17:16 122
原创 C和指针(1)指针函数、函数指针,指针数组,数组指针
1. 指针函数指针函数就是返回值是指针的函数,本质是一个函数,声明形式为:type *function (参数列表)例如int *a(int b){ int c =0; return &c;}2. 函数指针函数指针就是指向函数的指针,本质是一个指针,声明形式为:type (*function)(参数)例如:in...
2019-12-22 15:44:02 116
原创 Linux GDB调试的学习笔记
1. 准备工作如果你的Linux还没有安装gcc和g++编译器,那将不利于你开展下面的学习,所以,在Ubuntu环境下,可以使用如下命令安装:sudo apt-get install build-essential许多情况下,gcc都是默认安装上的,你同时可以用gcc -v, g++-v这样的命令查看gcc和g++是否安装cha成功。sudo apt-get install b...
2019-11-07 00:14:43 317
原创 使用codeblocks对C语言指针进行简单探究
1.首先我们来探究一下指针的值这个问题,请看下面程序:#include<stdio.h>#include<stdlib.h>int main(int argc, char* argv[]){ int a = 100; int b = -1; float c = 3.14; int *d = &a; float *e...
2018-11-23 23:54:35 655
原创 一种新的Windows10环境下Qt5.7.1+OpenCV3.1.0安装方法
在我的上一篇博客中,我介绍了一种最初始的Qt+opencv安装方式,近来,我偶尔发现了一种移花接木的新方法,下面介绍给大家。1.首先从别人那里拷贝一份opencv的编译文件夹出来这个文件夹就是我上一篇博客的一部分http://blog.csdn.net/yuwenlingfeng/article/details/79154489如图,就是我上一篇博客中的第三部分生成Makefile 和第四部分编译...
2018-03-11 21:57:52 597
原创 Windows10环境下Qt5.7.1+OpenCV3.1.0安装经验
因学习需要,我给自己电脑配置了Qt5.7.1+OpenCV3.1.0的环境,由于我的电脑是Win10的,所以这篇博客对于win10亲测有效。1.准备工作本机环境:Windows10 64位 所需软件:Qt 5.7.1(下载qt-opensource-windows-x86-mingw530-5.7.1.exe这个文件)下载地址:http://download.qt.io/arc
2018-01-24 20:52:50 2548 6
UVC摄像头开源下载文档.7z
2020-05-29
UVC开源协议hhhhh.zip
2020-05-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人