自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++基础篇--模板

模板基础

2022-12-17 10:41:13 496 1

原创 快排时间复杂度推演

快排实际上就是利用分而治之的思想,通过递归的方法,将原有长度为N的多项式,拆分成通过T(N) = 2T(N/2)+O(f(N)).............(1)同理T(N/2)= 2T(N/4)+O(f(1)) ................(2)```T(2) = 2T(1) + O(f(1)) ..............(3)假设从N拆到1一共拆了L次,所以2^L = N, L = logN; .................

2022-05-30 07:17:09 188

原创 相机拍照时预览卡顿问题

1、卡顿的概念人眼对于每11毫秒闪烁一次约83赫兹基本感觉不到,每13毫秒闪烁一次约66赫兹轻微频闪。人眼的刷新频率是:通常条件下,人眼的识别连贯图像的速度是24帧/秒,也就是1000毫秒/24帧,大约为40ms(毫秒)。达到或者超过这个速度的连贯图像,观看时就不会形成卡顿的感觉。形成这个现象的原因是因为人眼观看影像时,会产生视觉延迟导致的。所以说,我们经常说人眼的视觉延迟感应速度为>=40ms。眼睛分辨显示器频率的问题:每个人都是这样的,在传统的显示器上75HZ一下就会感觉到闪烁,85H

2022-05-22 22:23:35 2749

原创 学生成绩管理系统

#include <stdio.h>#include <stdlib.h>#include <string.h>struct student{ char id[20]; char name[20]; int score1; int score2; int score3; int average;}st...

2020-06-24 20:55:50 702

原创 海康一面凉经

时间:2019.9.25地点:百家湖亚朵酒店岗位:嵌入式软件开发(DSP/多媒体&智能应用)搞不懂为什么选这个岗位。。。。。。进去,自我介绍,面试官看简历,自我介绍还没结束,已经感受到面试官意兴阑珊了。。。。。。面试官:你讲一下你的省赛(蓝桥杯单片机开发)项目?我:基于51的温度和频率的检测,类似的项目做了很多,主要是以51作为处理器对外设进行综合...

2019-09-25 15:29:24 685

转载 gdb调试的基本使用

https://www.cnblogs.com/HKUI/p/8955443.htmlGDB调试启动程序准备调试GDB yourpram或者先输入GDB然后输入file yourpram然后使用run或者r命令开始程序的执行,也可以使用 run parameter将参数传递给该程序参数列表 命令 命令缩写 命令说明...

2019-09-24 22:18:12 204

转载 switch与if else的效率问题

switch...case与if...else的根本区别在于,switch...case会生成一个跳转表来指示实际的case分支的地址,而这个跳转表的索引号与switch变量的值是相等的。从而,switch...case不用像if...else那样遍历条件分支直到命中条件,而只需访问对应索引号的表项从而到达定位分支的目的。 具体地说,switch...case会生...

2019-09-08 16:20:44 368

转载 二叉树的建立与遍历详解 菜鸟都能看懂的教程

树形结构要多利用递归来求解,递归的关键就是想清楚所有的基准情形,然后扩展到一般情况,写代码的时候最好把基准情况放在前面,把一般情况放在后面!定义二叉树结构体: typedef struct BinaryTreeNode { TelemType data; struct BinaryTreeNode *Left; struct Binary...

2019-09-08 13:13:07 717

原创 博流智能科技面嵌入式开发工程师面经

暑假时学校研电赛召开的招聘会,当时投了8,9家公司,收到面试邀请两家,一家江苏苏美达(由于当时在实习就没去),一家今天这家。今天面博流智能科技,内心倍遭打击,特此记录,引以为戒。约的3点,早到了一个钟头,失误了,结果下午精神没有达到最佳状态。抵达孵鹰大厦,先做一套笔试题,笔试题一共4题:1、比较简单,但是自己犯了一个错误,一会面试官给我检查时指出void func(int...

2019-09-05 21:50:28 1840

原创 C语言的预处理命令的问题

预处理命令是在程序编译阶段进行执行的命令,用于编译与特定环境相关的可执行文件。预处理命令扩展了C语言。一、宏替换命令不用多讲,大家都懂。#define 标识符 字符串下面总结一些比较特殊的宏:1、交换两个参数值//一定要注意小括号的使用#define SWAP(a,b) {(a)=(a)+(b); (b)=(a)-(b); (a)=(a)-(a);}2、输入两个参数...

2019-09-03 19:40:48 2282 2

原创 递归的一些经典算法

1、斐波那契数列 0, 当n=0;F(n) = {1, 当n=1; F(n-1) + F(n-2), 当n>1;int Fbi(int i){ if(i < 2) return ((i == 0) ? 0 : 1); return Fbi(i-1) + Fbi(i-2);}...

2019-08-29 16:58:31 651

原创 编译器优化问题

首先来分析一段代码:char *a = "hello";char *b = "hello";if(a == b) printf("YES");else printf("NO");"hello"是一个常量字符串,位于静态存储区,它在程序生命期内恒定不变。如果编译器优化的话,会有可能a和b同时指向同一个hello的,这时地址相同;如果编译器没有优化,那么就是两个不同的地...

2019-08-29 16:15:49 587

原创 使用位域的结构体内存分布

首先来看两个结构体:struct s1{ int i : 8; int j : 4; int a : 3; double b;}struct s2{ int i : 8; int j : 4; double b; int a : 3;}printf("%d %d\n",sizeof(s1),sizeof(s2)...

2019-08-28 19:25:34 512 2

原创 C语言贪心法

C语言有这样一个规则:每一个符号应该包含尽可能多的字符。也就是说,编译器将程序分解成符号的方法是,从左到右一个一个字符的读入,如果该字符可能组成一个符号,那么再读入下一个字符,判断已经读入的两个字符串是否可能是一个符号的组成部分;如果可能,继续读入下一个字符,重复上述判断,直到读入的字符组成的字符串已不可能组成一个有意义的符号。 这个处理的策略被称为“贪心法”。 需要注...

2019-08-28 15:43:09 270

原创 嵌入式系统中固定内存位置的访问,中断的使用以及动态内存分配

一、嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66。编译器是一个纯粹的ANSI编译器。int *ptr;ptr = (int *)0x67a9;*ptr = 0xaa66;a more obscure approach is: *(int *const)(0x67a9) = 0xaa66;...

2019-08-28 15:21:14 958

原创 分别写出BOOL,int , float,指针类型的变量a与“零”的比较语句

BOOL: if(a) or if(!a);int: if(0 == a);float: const float EXP = 0.000001; if(a<EXP && a>-EXP);pointer: if(a != NULL) or if(a == NULL);

2019-08-28 14:56:51 931

原创 位操作(Bit manipulation)

嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit3,第二个清除a的bit3。在以上两个操作中,要保持其他位不变。用#define和bit mask操作,这是一个有极高可移植性的方法。#define BIT3 (0x01 << 3)static int a;void set_bit3(void){ ...

2019-08-26 20:02:47 413

原创 简述数组和指针的区别

数组要么在静态区被创建(如全局数组),要么在栈上被创建。指针可以随时指向任意类型的内存块。 (1)修改内容上的差别char a[] = "hello";a[0] = 'x';char *p = "world"; //注意p指向常量字符串p[0] = 'x'; //编译器不能发现该错误,运行时错误 (2)用运算符si...

2019-08-26 19:44:16 488 1

原创 关键字volatile以及相关问题

一个定义为volatile的变量,编译器(优化器)每次用到这个变量时必须从该变量的地址处读取该值,而不是保存在寄存器里的备份。比如: ①多线程应用中被几个任务共享的变量。 ②并行设备的硬件寄存器(如状态寄存器)。 ③一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)。Q1:一个参数既可以是const还可以是volatil...

2019-08-26 19:23:08 109

原创 全局变量可不可以定义在可被多个.c文件包含的头文件中?

可以,在头文件或不同的c文件中用static来修饰同名全局变量。另外一点,可以在不同的c文件中声明同名的全局变量,前提是其中只能有一个c文件中对此变量赋值,此时链接不会出错。extern和static不能同时修饰同一变量。链接规范,每个c/c++的定义都有链接规范(linkage)的属性。外部链接(external linkage)的定义可被定义处以外的翻译单元看见并引用。 ...

2019-08-26 17:30:32 8167

原创 虚拟机无法识别USB

虚拟机无法识别USBcat /etc/group | grep vboxwhoamisudo usermod -a -G vboxusers 系统名字cat /etc/group | grep vboxsudo reboot-c, --comment 注释 GECOS 字段的新值 -d, --home HOME_DIR 用户的...

2019-08-12 15:04:34 891

原创 C语言内存管理

1、栈区 保存局部变量。栈上的内容只在函数的范围内存在,当函数运行结束,这些内容也会自动被销毁。其特点是效率高,但空间大小有限。2、堆区 由malloc系列函数或new操作符分配的内存。其生命周期有free或delete决定。在没有释放之前一直存在,直到程序结束。其特点是使用灵活,空间比较大,但容易出错。3、数据区 ①bss区:(Block...

2019-08-07 15:54:29 151

原创 用链表和指针编写通讯录v1.0

/* 知识点总结:指针部分: 1、定义使用一个指针: ①声明 char * p; ②申请内存 p = (char *)malloc(sizeof(char)*n);malloc申请下来的内存空间用来存放*p的值; ③给指针p赋值 p = NULL; ④free(p) 2、无法把指针变量本身传递给一个函数。解...

2019-08-07 15:11:37 189

转载 mtk手机线刷

mtk手机线刷mtk手机刷机一般都是使用smart phone flash tool, 以我的mt6582为例,其刷机的界面如下图1所示图1 MT6582刷机界面:刷机流程如下图2所示:图2 线刷镜像下载过程:线刷流程1、设备上电后,最先运行的就是BootROM的代码(BootROM是固化在手机内部芯片中的(应该是一个NOR Flash芯片), 其代码是无法通过刷机写进去的,...

2019-08-05 11:06:57 2717

转载 ubuntu连adb 以及 使用MTK FLASH TOOLS的配置

转载:https://blog.csdn.net/reasonboy/article/details/898885671.adb连接lsusb//查看设备注意红色框中的内容对应后面需要填入的ATTRS{idVendor}, ATTRS{idProduct}sudo gedit ~/.android/adb_usb.ini把插入设备的ATTRS{idVen...

2019-08-02 16:54:59 645

原创 Ubuntu编译安卓源码出错及解决方法

ninja: no work to do.[1/1] out/soong/.bootstrap/bin/soong_build out/soong/build.ninjaFAILED: out/soong/build.ninjaout/soong/.bootstrap/bin/soong_build -t -l out/.module_paths/Android.bp.list -b ou...

2019-08-02 09:29:51 24156 7

原创 3A和ISP算法概念梳理

AE的相关概念:1、确认Ev offset正确性是什么意思?类似于OB offset,对应于LSB中的LV的等级进行补偿校正。2、target = (THD/Y)*CWV THD :from parameterY :from N% of histogram brightness value.CWV :centre weighting value3、ob offset?...

2019-08-01 13:41:39 7096

转载 camera tuning的常用缩写

CC, color conversion,色彩转换CC, color correction,色彩矫正CE, chroma enhancement,色度增强SNR,signal-to-noise ratio,信噪比SNR, skin noise reduce,肤色降噪STD, standard deviation,标准差OIS, optical image stabiliza...

2019-07-24 09:28:46 13869 5

原创 飞思卡尔单片机学习记录(一)

基础元件初始化步骤一、GPIO(1)、确定GPIO的方向:DDRx(2)、访问GPIO口:PORTx、PTx注意:输入输出时引脚的初始状态二、中断(1)、确定中断的有效信号特性:上升/下降(2)、使能中断(3)、开总中断:EnableInterrups;三、串口通信SCI(别的单片机为UART)SCI串行通信的基本编程方法:①初始化:设置波特率寄存器、设...

2019-06-27 16:41:21 5872

原创 嵌入式linux C开发环境

嵌入式linux C开发环境: 1、编辑工具:vi(vim)//其地位类似Edit在DOS中3中状态:命令行模式,插入模式,底行模式! 2、 编译器:GCC(GUN Compiler Collection),gcc -E test.c -o test.i 预处理阶段,首先把头文件stdio.h中的内容加载到test.c中的首部。gcc -S test.i -o test...

2019-04-03 22:09:57 526

原创 C++基础篇--类与对象

类的定义:(假设定义一个名为First的类)class First //define a class{ private: int somedata; //class data public: void setdata(int d) { somedata = d; } void showd...

2019-03-18 16:32:33 226 1

原创 CT107D单片机DS18b20程序

1、初始化2、ROM指令3、寄存器指令注意:官方提供的初始化驱动应延时500微妙,读写驱动应延时80微妙#include &lt;reg52.h&gt;#include &lt;intrins.h&gt;#define uchar unsigned char#define uint unsigned int sbit DQ = P1^4; uchar code t...

2019-03-15 23:24:22 528

原创 C++基础篇--函数

//case.app#include&lt;iostream&gt;using namespace std;void starline();int main(){ starline(); cout &lt;&lt; "Data type Range. "&lt;&lt;endl; starline(); cout &lt;&lt; "char : -1...

2019-03-14 19:47:21 252 1

原创 CT107D单片机基础篇总结时钟项目

1、用定时器0制作一个时钟,//用stc-isp带的软件 uint tt显示格式xx-xx-xx //Display函数 uchar hour,min,sec; uchar code tab_duan{} uchar code tab_wei{}2、当到达半点时,led0以0.2s闪...

2019-03-12 23:06:15 1145

原创 C++基础篇二(读书笔记之简单操作)

首先先看一个程序://HELLO.CPP/* Give a greeting. */#include&lt;iostream&gt;using namespace std;int main(){ char name[20]; cout&lt;&lt;"What's your name?\n"; cin&gt;&gt;name; cout&lt;&lt...

2019-03-10 21:38:08 176

原创 C++基础篇--面向对象化设计

面向程序化设计(object-oriented programming.简称OOP):基本思想是把数据和操作这些数据的函数合并到一个简单的单元中,这样的单元被称为对象。对象中的函数称为成员函数,它提供了访问该对象数据的唯一途径。想读取数据就要调用函数,不能够直接访问数据,因为数据对外界不可见(避免数据被意外改变)。将数据和它的函数装进一个实体,这被称为封装。面向对象语言的特征:1.对象...

2019-03-10 18:21:51 475 1

原创 CT107D蓝桥杯单片机数码管代码

1、静态/*#include &lt;reg52.h&gt;unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};void delayms(int ms){ int i,j; for(i=ms;i&gt;0;i--) for(j=845;j&gt;0;j...

2019-03-09 22:07:04 1761

原创 Linux有关文件管理的一些简单操作

Linux文件系统:包含文件中的数据以及文件系统的结构,所有Linux用户和程序看到的文件,目录,软连接及文件保护信息等均储存在其中。在Linux系统中无windows中硬盘分区概念.文件和目录组成单根的倒置树结构。shell脚本的的 种打开方式1.#假设文件名为hello.sh~$ chmod +x ./hello.sh #使文件脚本具有执行权限~$ ./hello.sh ...

2019-03-07 23:36:18 95

原创 CT107D蓝桥杯单片机按键代码

1、独立按键/*#include &lt;reg52.h&gt;sbit led0 = P0^0;sbit led1 = P0^1;sbit led2 = P0^2;sbit led3 = P0^3;void delayms(int ms);void main(){ char i,temp; P2=0XA0;P0=0X00;P2=0x80;P0=0XFF; wh...

2019-03-07 10:46:13 1833

原创 bit、sbit、sfr和sfr16的概念和区别

1、bit和int ,char之类的差不多,只不过char=8位,bit=1位 sbit是对应可位寻址空间的一个位,可位寻址:20H~2FH。一旦用了sbit xxx = REG^6这样的定义,这个sbit量就确定地址了。sbit大部分是用在寄存器中,方便对寄存器的某位进行操作。①sbit 位变量名 = 地址值 ...

2019-03-06 00:11:39 6290

空空如也

空空如也

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

TA关注的人

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