自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 资源 (3)
  • 收藏
  • 关注

原创 【软件开发环境】搭建足够优雅的开发环境进行时

该文档用于记录开发历程中使用的软件开发环境。该文档应当保证每年更新一次,希望它能够成为一个长大了的开发环境,会自己帮我开发需求,嗯:)

2024-03-10 13:02:00 392

原创 【ROOTFS】1-构建rootfs与nfs调试

rootfs这一块比较简单,别怕,基本就是拿一个busybox过来,然后编译一下,就可以在指定的目录下生成一堆文件夹和文件,你可以把这个当成rootfs了;

2023-10-22 07:15:00 187

原创 【LINUX】1-移植NXP提供的源码

Linux移植

2023-10-21 00:00:00 268

原创 【UBOOT】1-使用与烧写

uboot

2023-10-17 07:00:00 465

原创 【PREPARE】2-搭建网络环境

正点原子Linux开发板设置网络参数

2023-06-17 22:53:59 101

原创 【ARCHITECTURE】1-linux开发板学习总述

正点原子开发板学习总述

2023-06-17 16:43:18 84

原创 【Prepare】1-官方镜像烧写windows OTG

mfgtool烧写板子操作流程速览

2023-06-17 16:28:35 122

原创 效率工具集合

一些好用的windows下小工具推荐

2022-09-10 20:42:32 1782 1

原创 宏:va_list、## 、…、arg …、##__VAL_ARGS

C宏的使用系列之一(希望后面继续写)

2022-08-27 09:42:53 395

原创 markdown的甘特图耶

https://blog.csdn.net/weixin_42247720/article/details/100572450?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.

2021-02-06 15:04:15 758

原创 类的成员函数和数据成员分别存在哪里,类大小的计算

类的成员函数存放在代码区,数据成员分为静态变量和非静态变量,静态变量在类定义的时候,就分配好了,存放在数据区,然后非静态变量时在构造对象的时候,存放在堆栈中。类的大小实际上只是数据部分的大小(包括虚函数指针),成员函数不占用类的大小。https://blog.csdn.net/zhishihudiebuyuanyi/article/details/78299814https://blog.csdn.net/fuzhongmin05/article/details/59112081A 什么都没有的.

2020-12-27 17:16:43 3215 1

原创 C++的多态慢慢学

VersionSDescriptionDateByV1CFirst Version2020-12-27AYZPC―― Create,> A—— Add,> M—— Modify,> D—— Delete。前言C++的三大特性,多态,慢慢记。一 简单描述下慢慢改多态的实现主要分为静态多态和动态多态,静态多态主要是重载,在编译的时候就已经确定;动态多态是用虚函数机制实现的,在运行期间动态绑定。举个例子:一个父类类型的指针指向一个子类对象...

2020-12-27 17:10:03 159

原创 C++的inline

前言我也不知道为什么要记录inline,也许是强迫症吧一 正文1.1 为何要inline为什么会引入inline来修饰函数?因为,大多数的机器上,调用函数都要做很多工作:调用前要先保存寄存器,并在返回时恢复,复制实参,程序还必须转向一个新位置。有人想要更快一点,让调用函数不做那么多工作,于是,就提出了inline来修饰函数,这就是内联函数inline了,之所以,叫它内联函数,是因为…别人的话:执行C++中支持内联函数,其目的是为了提高函数的执行效率,用关键字 inline 放在函数定义(

2020-12-27 16:08:40 161

原创 C++中源码到可执行文件的过程

前言面试中常见的一个问题,同学,请你介绍下,C++源码到可执行文件的一个简单过程。整体流程对于C++源文件,从文本到可执行文件一般需要四个过程:预处理阶段:对源代码文件中文件包含关系(头文件)、预编译语句(宏定义)进行分析和替换,生成预编译文件。编译阶段:将经过预处理后的预编译文件转换成特定汇编代码,生成汇编文件汇编阶段:将编译阶段生成的汇编文件转化成机器码,生成可重定位目标文件链接阶段:将多个目标文件及所需要的库连接成最终的可执行目标文件一 预处理阶段(.c—.i)主要处理源代码文

2020-12-27 15:53:19 1339

原创 内存大小端问题

前言在笔试面试中,内存大小端问题很常见,虽记录一下,方便日后查询正文下面四个选项是四个整数在内存中的存储情况,请选择其中最大的一个。(选择题)ABCDBig-endian低地址 高地址12 34 56 78Big-endian低地址 高地址56 78 12 34Little-endian低地址 高地址34 56 78 12Little-endian低地址 高地址78 12 34 56解答:大端小端问题:所谓的大端模式(BE big-endian),是指

2020-12-27 15:34:17 505

原创 C++的继承慢慢记

VersionSDescriptionDateByV1CFirst Version2020-12-27AYZPC―― Create,A—— Add,M—— Modify,D—— Delete。前言因为想学好C++,所以要学好继承,继承有好多,一下记不完,故,慢慢记录一 继承定义附录A 菱形继承参考文献[1]的大佬记录的很详细。定义:Base A B D调用不明确的问题解决:域限定虚继承虚继承就是,A,B在继承时,public...

2020-12-27 15:27:49 101

原创 关键字volatile小记录

前言C/C++中有个关键字volatile,它是什么意思呢?有时候记得,有时候又不记得,要去查,故,小记录一下,以后查自己的。一 正文volatile表示一个变量也许会被后台程序改变,关键字 volatile 是与 const 绝对对立的。它指示一个变量也许会被某种方式修改,这种方式按照正常程序流程分析是无法预知的(例如,一个变量也许会被一个中断服务程序所修改)。这个关键字使用下列语法定义:volatile data-definition变量如果加了 volatile 修饰,则会从内存重新装载

2020-12-27 12:13:30 344

原创 C++中new对象后面括号若隐若现(加不加!)

前言在学数据结构的树时,看以前记得笔记,有一个地方有疑问typedef struct BNode(){ int data; struct BNode * Lson; struct BNode * Rson;} BNode, *Bptr;BNode * p = new BNode;BNode * p2 = new BNode();new BNode后面加不加括号的区别在哪里?正文1.1 资料new对象后面加与不加括号的区别:(1)加括号若括号为空,即无实参项,那么理解为调

2020-12-22 20:56:03 1091 2

原创 各类总线协议

VersionSDescriptionDateByV1CFirst Version2020-12-19AYZPC―― Create,A—— Add,M—— Modify,D—— Delete。前言慢慢记录各类总线协议一 总表总线接口串/并同步/异步速率工作方式用线总线拓扑结构信距离UART串异步慢波特率设置全双工2线Rx、TxRS485支持总线式、星形、树形远最远1200mI2C串同步慢半双...

2020-12-19 19:20:18 1700 1

原创 ARM指令和Thumb指令粗记录

VersionSDescriptionDateByV1CFirst Version2020-12-19AYZPC―― Create,A—— Add,M—— Modify,D—— Delete。前言不知今日如何碰到这个问题,但是碰上了,就整理记录下。正文在ARM的体系结构中,可以工作在三种不同的状态,一是ARM状态,二是Thumb状态及Thumb-2状态,三是调试状态。而ARM状态和Thumb状态可以直接通过某些指令直接切换,都是在运行程序,只不过指令...

2020-12-19 18:20:35 418 1

原创 中断慢慢积累

VersionSDescriptionDateByV1CFirst Version2020-12-19AYZPC―― Create,A—— Add,M—— Modify,D—— Delete。前言中断这个知识点很常见,在单片机、操作系统里都有。应该都比较熟悉了。除了是在这方面,生活中我们也有很多中断事件,比如正在写CSDN的你,突然想到一个很棒的点子,这个点子真的很棒你决定去记录它,这个时候保存下你现在写的CSDN博客,转去用纸笔记录你那个很棒的点子,...

2020-12-19 18:12:21 211 1

原创 单片机启动过程: main之前干了啥

VersionSDescriptionDateByV1CFirst Version2020-12-19AYZPC―― Create,A—— Add,M—— Modify,D—— Delete。前言单片机在执行main函数之前,都干了什么呢?都做了什么准备呢?来总结一下。一 准备用KEIL学STM32单片机编程的时候,按下其仿真按钮再按下RST按钮会发现进入到一个启动文件startup_stm32f10x_md.s,运行指示光标,会停在一个位置...

2020-12-19 17:57:05 4154 3

原创 Linux系统查看CPU使用率、内存使用率、磁盘使用率

VersionSDescriptionDateByV1CFirst Version2020-12-10AYZPC―― Create,A—— Add,M—— Modify,D—— Delete。前言这也是一个面试笔试题,首先祭出大佬超详细博客,https://blog.csdn.net/wujizhishui/article/details/89333957然后,自己小小总结下指令【其实主要还是为了这个链接啦】,后面有用到再慢慢补心得。一 查看CPU...

2020-12-10 20:46:06 393

原创 多线程死锁的原因,用GDB如何调试

前言在找工作中,面试问到了这个,啥也不会,现在记录一下一 死锁原因多线程死锁的原因是多个线程同时被阻塞,它们中的一个或全部都在等待某个资源被释放,而该资源又被其他线程锁定。产生死锁的四个必要条件:互斥不可抢占请求保持循环等待死锁原因:资源不够进程推进顺序不合适避免死锁方法:加锁顺序加锁实现死锁检测二 用GDB调试死锁线程2.1 详细过程https://blog.csdn.net/atinybirdinit/article/details/41550149/*

2020-12-10 20:42:11 655

原创 fork粗略记录

VersionSDescriptionDateByV1CFirst Version2020-12-10AYZPC―― Create,A—— Add,M—— Modify,D—— Delete。前言在操作系统的学习中,有一个fork函数,简单记录下它的点点,慢慢补充。一 我咧fork1.1 功能fork:从父进程创建子进程。fork成功的话,父进程就会得到子进程的pid。1.2 过程fork,先从父进程拷贝出来一个父进程的副本,然后通过调用ex...

2020-12-10 20:31:29 188

原创 简简单单static

前言static,静态的,在C/C++中经常喜欢问它的作用,那么,应该简简单单的把它记录一下一 正文1.1 C语言中在C语言中,static有下3个作用:static修饰全局变量:被修饰的全局变量的作用域范围限定为本源文件,另外的源文件不能通过extern关键词来使用这个全局变量。(该变量存放在静态变量区)static修饰局部变量:a)被修饰的局部变量只能被初始化一次。b)被修饰的局部变量的存储空间发生了改变,不再存储在栈中,而是存储在数据段中。static修饰函数:被修饰的函数作用域范围限

2020-12-04 20:22:12 152 2

原创 const int *p 和int const *p和int * const p,总有人搞不懂,对吧

前言const int *p和int const *p和int * const p,这三个好基友,总有人认不清的,对吧?好,我就认不清。嗯,总结一下,方便以后忘了怎么回事的回来看看一 正文1.1 问题描述首先,const int *p和int const *p是一模一样的,没区别, 一个意思,随你想怎么写。下面以const int *p为例。然后,就是区分const int *p1和int const *p2。1.2 结论int const *p1; //指向整型常量的指针,表示*p1的值

2020-12-04 20:12:38 4137 3

原创 Word中插入公式,公式居中,编号右对齐,编号自动增长

VersionSDescriptionDateByV1CFirst Version2020-11-25AYZPC―― Create,A—— Add,M—— Modify,D—— Delete。前言在用Word写论文的时候,有一个需求,就是公式要居中,公式的编号需要右对齐。之前我都是先将公式和编号整体又对齐,然后再敲空格把公式手动居中对齐。现在[2020-11-25]找到了一个方法,可以利用表格法进行,而后将其整理其模板,用的时候直接复制过来。而且编号可...

2020-11-25 14:17:43 2243

原创 瞎想-从符号字面意思上看看最大似然估计MLE和最大后验估计MAP

VersionSDescriptionDateByV1CFirst Version2020-11-21AYZPC―― Create,A—— Add,M—— Modify,D—— Delete。前言今天在图书馆看看自己以前的一些数学笔记的时候,对以前瞎存在的一些瞎鸡儿问题做了一些瞎鸡儿的想法,记录一下,方便以后慢慢懂了之后来推翻。一 分析首先,明白估计是来干嘛的:利用经验数据获得对未观测量的点态估计即,利用已有观测到的经验数据,对下一时刻的未进行...

2020-11-21 19:19:19 654

原创 程序语言中花括号写法——手写or手敲代码

前言在手写一本编程参考书的程序代码的时候,突然发现,花括号写法可以适当变一变嘛!正文在草稿纸上手写代码的时候,花括号可以这样写if (name == "niubi") { // body}草稿纸上这样写,好处:省草稿纸写起来,看起来,自己觉得更简约在手敲代码的时候,花括号这样写if (name == "niubi"){ //body}在电脑上手敲代码的时候,这样敲,看起来更清楚明白。电脑上看起来更清楚明白思考应该统一下风格吧???[2020-11-12].

2020-11-12 21:36:25 2662 1

原创 sizeof计算占据内存全解

前言sizeof是C语言里面的一个关键字,用于计算占据多少字节,如sizeof(int) = 4,int类型占据4个字节。sizeof做笔试和面试的时候出现的频率也相当高,总结一下。一 数据类型占据内存二 测数组// 32位机#include<stdio.h>int main(){ int a[5]={1,2,3,4,5}; printf(“sizeof数组名=%d\n”,sizeof(a)); printf(“sizeof *数组名=%d\n”,sizeof(*a));

2020-11-06 20:30:48 3599

原创 变量存储内存问题

前言程序代码中各个变量都存储在内存的哪里呢?这是一个非常有趣的问题结论堆:堆允许程序在运行时动态地申请某个大小的内存。一般由程序员分配释放;(使用malloc/new)栈:由编译器自动分配释放,存放函数的参数值,局部变量等值;静态数据区(data bss) [不全面,全面的看下文]静态存储区:一定会存在且不会消失,这样的数据包括常量、常变量(const 变量)、静态变量、全局变量等;常量存储区:常量占用内存,只读状态,决不可修改,常量字符串就是放在这里的。一 基本概念1.1 变

2020-11-06 18:15:38 438

原创 malloc学习

VersionSDescriptionDateByV1CFirst Version2020-11-6AYZPC―― Create,A—— Add,M—— Modify,D—— Delete。前言在之前面试过程中,面试官总喜欢问malloc相关的问题,当然问的时候一定会带着它的家人free和他的兄弟new、弟妹delete。面试官最喜欢问malloc和new的区别啦然后malloc的底层部分也有一定的兴趣想了解一下,但是兴趣不足,因此目前[2020...

2020-11-06 15:51:29 635

原创 简简单单吃个磁盘(硬盘?)

前言VersionSDescriptionDateByV1CFirst Version2020-10-24AYZPC―― Create,A—— Add,M—— Modify,D—— Delete。整理资料的时候,发现个磁盘的相关知识不知道,什么是扇区啊,什么是簇啊,什么也不知道,于是查资料整理一下。一 机械硬盘1.1 定义机械硬盘是利用磁性来记录信息数据的,原理类似于小时候听歌用的磁带,如果我们需要找到某个数据,磁盘就会转动到记录这个信息的部位,然

2020-10-24 22:24:14 293

原创 C语言优先级与结合性表

前言一直想总结下C语言的优先级,好方便查询,那就总结下了。一 表二 优先级算术运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符。逻辑运算符中“逻辑非 !”除外。三 结合性3.1 从右到左:3个2 单目运算符:- (类型) ++ -- * & ! ~ sizeof13 三目运算符:条件运算符?:14 赋值运算符:= /= *= %= += -= <<= >>= &= ^= |=3.2 规律:三目运算符,是从右到左双目运

2020-09-18 09:47:07 1006 1

原创 16/32位数,表示范围

前言XX位二进制数,表示的数的范围是多少呢,疑惑。一 16位数,表示范围。16位无符号二进制数的表示范围是0~ 65535;而有符号16位二进制的表示范围是-32768~+32767。之所以是65535,是因为0也是一位,0-65535就是65536个了,即2^16有符号就是有一位是符号位,当符号位为0时,有15位表示数,0-32767共32768个。当符号位为1时,-32768二 32位补码表示的数,1位符号位,数的表示范围因为十进制带符号,所以有一位符号位,数值范围是31位最大正整数 2

2020-09-10 21:25:15 6149

原创 二维数组,看的清一些就好

一 前言昨天做了CVTE的嵌入式笔试卷子,发现,二维数组的题目好多。头皮微酥。今天总结下这个二维数组到底是个啥。写少点。二 结论二维数组,从本质上去看,就是:一个二维数组,它的每一个数组元素都是一个一维数组,实际上,去理解:二级指针二维数组,实际上就是二级指针的应用啊。用二级指针的思想去考虑二维数组的访问,基本没错了,一切都讲的通了。三 正文少写点,看着细品。int a[3][4] = { {0,1,2,3}, {4,5,6,7}, {8,9,10,11} };int a[0

2020-09-08 12:55:22 278

原创 简单题目:给出一个整数,转换为16进制的字符

一 题目给出一个整数,转换成16进制的字符输出。二 问题分析利用进制转换方法:用按权展开法。然后,1500的十六进制转换结果为:5DC三 代码3.1 C实现char * convertToBase16(int num){ if (!num) { return "0"; } char * retstr = (char *)malloc(12*sizeof(char)); // 分配存放区域 memset(retstr, '0', 12

2020-09-07 17:36:38 1682

原创 简单的题目:n个元素的数组,比较1.5n次,求出最大值和最小值

一 问题碰到一个好玩的题目,要求只比较1.5n次,就要求出n个元素数组中的最大值和最小值。二 问题分析就一般的全遍历方法来说,n个元素数组要得到最大值和最小值,就要比较2*n次,因为得到最小值需要比较n次,得到最大值也需要比较n次,这样得到最大值和最小值就需要比较2*n次了。想要只比较1.5n次,可以一次拿出两个数进行比较,然后一次比较三次,这样下来,总共比较的次数就是n / 2 * 3 = 1.5n,正好。1.5n次比较的思路是:取出两个数,这两个数之间先比较一次,产生大者tmax和小者tm

2020-09-07 15:03:21 573

原创 随笔:UART和RS232、RS485、RS422等区别

前言首先上参考资料,看完参考资料我觉得我又可以了[1] https://blog.csdn.net/weixin_43046653/article/details/84998083结论UART,全称Universal Asynchronous Receiver/Transmitter,通用异步收发传输器。你可以理解为是工作在传输层、物理层、数据链路层的传输协议总称。而RS232、RS485、RS422这些是物理层和链路层的接口规定。UART是异步串行通信口的总称。而RS232、RS499、RS4

2020-08-30 22:46:07 851

UBOOT1-使用与烧写

UBOOT1-使用与烧写

2023-10-16

正点原子MFG-TOOL出厂固件烧录工具

正点原子MFG_TOOL出厂固件烧录工具

2023-06-17

Word中插入公式,公式居中,编号右对齐,编号自动增长-模板

在Word中插入公式时,需要公式居中并且公式编号右对齐,公式的编号能够自动增长,何解,快使用模板试试。

2020-11-25

markdown笔记前言模板.md

制作markdown笔记时,放在前言处的模板,仅供参考,有需要的可以下载看一看。不断更新

2020-04-25

BMX055驱动程序IIC.zip

BMX055的STM32驱动程序,亲测能用,使用IIC方式输出加速度,角速度,磁力计的信息。

2019-05-30

空空如也

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

TA关注的人

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