自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 linux x86_64 的虚函数表

虚函数表

2024-07-15 16:19:07 111

原创 volatile变量和普通变量的区别

volatile atomic

2024-06-14 15:55:21 115

原创 设置生成coredump文件

coredump

2024-06-14 10:18:32 179

原创 std::enable_if && std::enable_if_t && std::is_same

C++, 模板

2024-06-06 17:29:07 272

原创 vim宏录制

vim 宏录制

2024-05-21 17:26:53 243

原创 ECU&MCU&SoC

SOC,MCU,ECU

2024-05-15 11:22:05 160

原创 二分法的时间复杂度是logN

是(0,+∞),即x>0。当有8个元素时,即x为8,y为3.当α=10时,记为y=lg x。当α=2时,记为y=log x。当α=e时,记为y=ln x。二分法的时间复杂度是logN。其中x是自变量,函数的。,可表示为x=a^y。

2024-05-14 17:37:21 150

原创 颈椎锻炼方式

2. 颈部旋转运动:坐直,慢慢将头向一侧转动,直到感到轻微的拉伸,保持数秒钟,然后缓慢回到起始位置。7. 颈部侧弯运动:坐直,将头向一侧倾斜,直到感到轻微的拉伸,保持数秒钟,然后缓慢回到起始位置。6. 肩部放松运动:坐直或站立,将双手放在肩膀上,慢慢将肩膀向下放松,保持数秒钟,然后缓慢放松。1. 颈部伸展运动:坐直,慢慢将头向前伸展,直到感到轻微的拉伸,保持数秒钟,然后缓慢放松。3. 肩部卷动运动:坐直或站立,将肩膀向前卷动,然后向上卷动,再向后卷动,最后向下卷动。

2024-05-07 09:08:52 226

原创 C++线程间的同步方式

【代码】C++线程间的同步方式。

2024-03-13 09:49:11 156

原创 压缩/解压缩:deflate算法,LZ77,huffman,gzip,zlib

是对deflate进行的封装。gzip本身只是一种文件格式,其内部通常采用Deflate数据格式,而Deflate采用LZ77压缩算法来压缩数据。gzip=gzip头+deflate 编码的实际内容+gzip尾。zlib=zlib头+deflate编码的实际内容+zlib尾。是对deflate进行的封装。

2023-12-28 16:38:32 501

原创 Ubuntu上如何找到设备,打印串口日志

Ubuntu上如何找到设备,打印串口日志

2023-12-28 16:37:55 936

原创 adb - Android Debug Bridge

adb - Android Debug Bridge 可以从windows连接到板子进行上传文件,下载文件,登录到板子上调试文件。

2023-12-25 17:38:09 371

原创 route命令和ip route命令

route 组播 多播

2023-12-25 17:33:57 53

原创 awk & sed & grep

awk 基础格式 分隔符 基本流程 内置变量 自定义变量

2023-11-30 09:31:28 552

原创 tcpdump

抓取时间同步,以太封装的PTP (Precision Timing Protocol)报文,其帧头中以太类型值=0x88F7。如果没有指定类型,缺省的类型是host。如果没有指定任何协议,则tcpdump将会监听所有协议的信息包。如果没有指明方向关键字,则缺省是src or dst关键字。抓取网卡eth0上端口范围是10000到10005的udp包。抓取网卡eth0上10000或10001端口的udp包。取与      “and”或“&&”取或      “or”或“ll“”逻辑运算   表示方法。

2023-11-17 11:39:43 41

原创 面向对象设计原则

违背了设计原则,设计模式是错误的。

2023-09-28 11:09:34 52

原创 代码小片段

模板 + 运算符重载。

2023-08-30 15:00:07 48

原创 linux命令行上翻匹配查找

# ~/.inputrc"\e[A": history-search-backward"\e[B": history-search-forward

2023-08-24 10:24:48 91

原创 gdb调试

gdb调试

2023-08-24 09:18:49 65

原创 ERROR number速查

【代码】ERROR number速查。

2023-08-24 09:14:28 39

原创 atomic/vector 模板参数

std::string并不满足is_trivially_copyable的条件。

2023-08-21 09:49:39 135

原创 atomic

表示该原子操作必须顺序一致的,这是C++11中所有atomic原子操作的默认值。这样来理解“顺序一致”:即代码在线程中运行的顺序与程序员看到的代码顺序一致。也就是说,用此值提示编译器“

2023-08-17 15:18:03 62

原创 std::thread & std::function & lamda & std::ref

【代码】std::thread & std::function & lamda。

2023-08-16 11:08:11 110

原创 unique_lock & shared_mutex & condition_var

2. 当准备数据的线程调用notify_one()通知条件变量时,处理数据的线程从睡眠状态中苏醒,重新获取互斥锁,并且再次检查条件是否满足。当条件不满足时,线程将对互斥量解锁,并且重新开始等待。同样的,当任一线程拥有一个独占锁时,其他线程就无法获得共享锁或独占锁,直到第一个线程放弃其拥有的锁。比较灵活,锁可转移,会占用比较多的空间,并且比 std::lock_guard 稍慢一些。当任一线程拥有一个共享锁时,某一线程尝试获取一个独占锁时,需要等到其他线程放弃他们的锁;wait()会检查lamda条件,

2023-07-04 11:02:21 85 1

原创 docker常用命令

docker常用命令

2023-06-14 09:02:41 49

原创 C++ placement new & value_type

placement newvalue_type

2022-09-08 14:59:03 270 1

原创 Item 23:理解std::move和std::forward

Effective Modern C++

2022-06-22 10:16:03 202

原创 Effective Modern Cpp 学习笔记 item24 通用引用 item1 模板类型推导

Effective Modern Cpp学习笔记 item24 通用引用item1 模板类型推导

2022-06-17 17:49:15 155

原创 /dev/sda & /dev/sdb & /dev/zero && dd命令 && fallocate

/dev/fd0 第一个软驱/dev/fd1 第二个软驱/dev/sda 第一块硬盘, sda1, sda2是sda这块硬盘上的两个分区/dev/sdb 第二块硬盘, 以此类推./dev/scd0 第一个SCSI CD-ROM, 可以用/dev/sr0./dev/zero文件代表一个永远输出 0的设备文件,使用它作输入可以得到全为空的文件。因此可用来创建新文件和以覆盖的方式清除旧文件。下面使用dd命令将从zero设备中创建一个10K大小(bs决定每次读写1024字节,count定义读

2022-04-08 14:54:09 6655

原创 POSIX

POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX )一般情况下,应用程序通过应用编程接口(API)而不是直接通过系统调用来编程。这点很重要,因为应用程序使用的这种编程接口实际上并不需要和内核 提供的系统调用对应。一个API定义了一组应用程序使用的编程接口。它们可以实现成一个系统调用,也可以通过调用多个系统调用来实现,而完全不使用任何系 统调用也不存在问题。实际上,API可以在各种不同的操作系统上实现,给应用程

2022-04-07 20:05:10 109

原创 ros commands

roscore另开一个窗口:$ ps -ef | grep /rosroscorerosmasterrosoutrosnode listrosnode info /rosoutrosnode ping rosoutrosrun turtlesim turtlesim_noderosrun turtlesim turtlesim_node __name:=myturtle另开一个窗口:$ ps -ef | grep /rosroscorerosmasterrosou.

2022-04-02 14:25:51 96

原创 apt安装与源码编译安装

1. apt-get安装apt一般直接安装已经编译好的可执行文件,会直接帮你处理依赖关系。apt-get install安装目录是包的维护者确定的,不是用户。系统安装软件一般在/usr/share,可执行的文件在/usr/bin,配置文件可能安装到了/etc下文档一般在 /usr/share;可执行文件 /usr/bin;配置文件 /etc;lib文件 /usr/lib。2. 源码编译安装一般是下载安装包文件,比如:tar包,然后解压,配置安装的路径,配置环境变

2022-04-02 10:21:58 5967

原创 CMake工作流程 && catkin工作流程

CMake工作流程# 在CMake工作空间下$ mkdir build$ cd build$ cmake ..$ make$ make install # (可选)catkin工作流程# 在catkin工作空间下$ catkin_make$ catkin_make install # (可选)上述命令会构建src目录下的所有catkin项目。源代码默认位置在catkin_ws/src,如果存放在my_src,那可以这样来使用catkin_make:# 在cat

2022-04-02 09:19:56 346

原创 ROS1 - melodic 编译之报错系列

./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python3sudo apt install libconsole-bridge-devsudo apt-get install libpoco-devsudo apt install libtinyxml-devsudo apt install libcurl4-openssl-

2022-03-31 13:52:18 1593

原创 Linux Shell >/dev/null 2>&1 含义

/dev/null :代表空设备文件,可以理解为一个垃圾桶> :代表重定向到哪里,例如:echo "123" > /home/123.txt1 :表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"2 :表示stderr标准错误& :表示等同于的意思,2>&1,表示2的输出重定向等同于11 > /dev/null 2>&1 语句含义:1 > /dev/null : ...

2022-03-25 14:48:04 540

原创 VIM Tips

块插入:第一步:按下组合键“CTRL+v” 进入“可视 块”模式,选取这一列操作多少行第二步:按下shift+i第三步:输入要插入的内容第四步:按ESC,之后就会看到插入的效果。

2022-03-25 13:57:02 91

原创 ROS2 - foxy 安装之报错系列

issue1: qt_gui_cpp sip binding generator not availablesudo apt-get install sip-dev pyqt5-dev python-sip-dev pyqt5-dev-toolswget https://sourceforge.net/projects/pyqt/files/sip/sip-4.19.13/sip-4.19.13.tar.gz# install SIP firsttar xzf sip-4.19.13.tar..

2022-03-25 10:35:51 3368

原创 gcc报错 can not be used when making a shared object; recompile with -fPIC

PIC是Position-Independent-Code的缩写。在计算机系统中,PIC和PIE(Position-IndependentExecutable)是可以在主存中不同位置执行的目标代码。PIC经常被用在共享库中,这样就能将相同的库代码为每个程序映射到一个位置,不用担心覆盖掉其他程序或共享库。修改cmakeset(extra_cmake_args)list(APPEND extra_cmake_args "-DCMAKE_CXX_FLAGS=-std=c++14 -w -fPIC

2022-03-24 15:07:17 7274 1

原创 安装QT5

1. Qt官网下载http://www.qt.io/download-open-source/ 对应安装包2. 我下的是qt-opensource-linux-x64-5.14.2.run,进入下载文件夹下,执行添加执行权限命令:sudo chmod +x qt-opensource-linux-x64-5.14.2.run然后执行安装命令:sudo ./qt-opensource-linux-x64-5.14.2.run弹出安装窗口,按照安装步骤,点击下一步,直至安装完成。3. 配置环

2022-03-24 14:17:12 688

原创 linux 常用命令

SHELL相关查看当前发行版可以使用的shell$ cat /etc/shells输出如下# /etc/shells: valid login shells/bin/sh/bin/dash/bin/bash/bin/rbash查看当前使用的shell$ echo $SHELL输出 : /bin/bash修改shell$chsh输出如下Password:...

2022-03-21 10:51:12 1106

空空如也

空空如也

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

TA关注的人

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