- 博客(43)
- 资源 (3)
- 收藏
- 关注
原创 Makefile 语法
编译器通常进行预处理、编译、汇编和链接处理,预处理包含了宏定义、文件包含、条件编译,编译则直接将代码翻译成机器码,汇编则将汇编代码翻译成机器码,链接则按照内存地址分配文件将各个文件的机器码统一形成一个可执行文件,对编译命令(比如gcc)而言该如何区别这些操作呢?·隐式规则用于说明 何时及如何根据其名称来重新生成一类目标文件,其描述了目标是如何依赖于名称相似的文件(一般来说除去后缀信息,其目标与依赖文件的名称是一样的),并调用命令来创建或更新目标;
2024-08-04 18:25:58
949
原创 磁盘调优总结
9. 磁盘磁盘I/O可能会造成严重的应用程序延时,因此是系统性能分析的一个重要目标;在高负载下,磁盘成为了瓶颈,CPU将持续空闲以等待磁盘I/O结束;9.1 术语虚拟磁盘:存储设备的模拟,在系统看来的一块物理磁盘可能由多块磁盘组成;传输总线:用来通信的物理总线,包括数据传输I/O以及磁盘命令;数据传输I/O:至少由方向、地址、大小组成;磁盘命令:除了读写之外的其他非数据传输的命令;扇区:磁盘上的一个存储块,通常为512B大小;IOPS:Input/Output operation pe
2022-05-02 23:07:45
673
原创 Linux下的USE法
概述:USE方法就是检查资源的使用率(utilizations)、饱和度(saturation)、错误(errors)状态,从而分析系统资源瓶颈和错误的方法;物理资源:LPE即Linux性能事件、CPC即CPU性能计数器模块类型指标CPU利用率每个CPU: mpstat -P ALL、sar -P ALL系统范围:vmstate l、sar -u、dstat -c每个进程:top、htop、ps -o pcpu、pidstat l每个内核线程:top/htop(按K转换..
2022-05-02 23:05:29
1151
原创 美团面试题-C++
小团的装饰品、小团无路可逃、小团的选调计划、小团的神秘暗号、小美的区域会议、小团的复制粘贴、小美的跑腿代购、小美的仓库整理、小美的用户名
2022-03-22 16:39:47
1088
原创 echo ‘aaa‘ > config.h 与 echo ‘bbb‘ >> config.h的区别
echo "" > and echo "" >>
2022-02-28 09:35:37
219
原创 Linux下使用clang-format格式化C++代码
1. 概述clang-format 用于格式化代码,自带的排本格式主要有:LLVM、Google、Chromium、Mozilla、WebKit2. 命令clang-format [options] [<file> ...]
2021-09-13 15:08:07
2152
原创 预处理、编译、汇编、链接各个阶段分别处理什么
预处理、编译、汇编、链接各个阶段分别处理什么:预处理:第一个任务是展开具体使用的头文件,预处理阶段会把所有引用的头文件打开来插入到我们本身的程序中;第二个任务是替换掉所有宏进行;第三个任务是删除掉所有的注释;第四个任务是将不符合条件#ifdef的部分删除;编译:由编译器来检查一下程序是不是有问题是不是有一些语法错误,并生成汇编代码;(语法分析与词法分析)汇编:将汇编代码变成可执行文件;链接:当前的源文件引用了另外的头文件中的函数,或者在源文件中调用了某些库中已经写好的
2021-08-24 15:30:23
1172
原创 Cmake、Configure、make、make install
./configure 是用来检测你的安装平台的目标特征的,是一个shell脚本。cmake 是一个工具。( 转换cmakelist.txt文件为makefile文件 )make 是用来编译的,它从makefile中读取指令,然后编译。make install是用来安装的,它也从makefile中读取指令,安装到指定的位置。...
2021-08-24 15:18:13
173
原创 vector容器的两种insert方法
vector容器的两种insert方法:1: insert(const_iterator pos, int count,element);//迭代器指向位置pos插入count个元素element#if __cplusplus >= 201103L /** * @brief Inserts a number of copies of given data into the %vector. * @param __position A const_i
2021-07-24 15:30:37
1334
转载 十大排序算法,选择快速排序而不选堆排序的原因?
1、堆排序的数据交换次数要高于快速排序:在堆排序(小根堆)的时候,每次总是将最小的元素移除,然后将最后的元素放到堆顶,再让其自我调整。这样一来,有很多比较将是被浪费的,因为被拿到堆顶的那个元素几乎肯定是很大的,而靠近堆顶的元素又几乎肯定是很小的,最后一个元素能留在堆顶的可能性微乎其微,最后一个元素很有可能最终再被移动到底部。在堆排序里面有大量这种近乎无效的比较。随着数据规模的增长,比较的开销最差情况应该在(线性*对数)级别,如果数据量是原来的10倍,那么用于比较的时间开销可能是原来的10log10倍。2、
2021-07-23 15:50:42
918
原创 使用qemu+gdb调试操作系统内核
前提:由于使用qemu模拟开发板运行操作系统时,无法动态加载设备树,所以需要将设备树文件静态链接到内核文件;工具:eclipse(需要安装对应版本的jdk与python包)、qemu、gdb1 使用qemu直接启动内核:qemu-system-aarch64.exe -M xlnx-zcu102,virtualization=on -nographic -m 1024M -kernel (kernel的绝对路径)2 配置eclipse的调试器,debug -> Debug Configura.
2021-07-22 20:32:55
539
原创 网串口写字符的方式
// 定义的方式:.macro early_debug cldr x23, =(串口基地址)mov w24, \cstrb w24, [x23].endm// 调用的方式:early_debug ‘a’
2021-07-15 14:52:07
95
原创 CMakeList使用参考
CMakeList 使用参考文章目录1 set2 message3 option4 configure_file5 include_directories6 add_executable7 target_link_libraries8 `CMAKE_CURRENT_SOURCE_DIR`9 PROJECT_SOURCE_DIR10 INCLUDE_DIRECTORIES11 function12 list1 set//"set"用来定义变量 tutorial教程set (Tutorial_VERSI
2021-06-22 00:01:04
365
原创 Git基础操作
Git基础操作文章目录1 Introduction of Git and `GitHub`2 Basic operations of Git3 Git Branch Operation4 多人协作GitHub部分5 多人协作Git部分1 Introduction of Git and GitHub集中式版本控制系统 ==> 分布式版本控制系统GitHub 是一个基于 Git 的免费代码托管网站在 GitHub 上创建仓库:登录 GitHub 个人主页,点击右上
2021-06-22 00:00:03
89
原创 将设备树.dtb合并到OS的镜像.bin中
加载设备树的两条途径:1、在uboot启动后,使用uboot所提供的命令,加载设备树;tftpboot [地址] xxx.dtbfdt addr [地址]2、将.dtb直接嵌入到操作系统的镜像中,无需显式加载;.global fdt_blobFUNC_LABEL (fdt_blob).incbin "xxx.dtb"FUNC_END (fdt_blob)//在sysInit入口处将fdt_blob放置到X20寄存器供后续使用LDR X0,=fdt_blobMOV X20,X0
2021-06-15 20:27:11
715
4
原创 priority_queue介绍
原文链接//关于priority_queue的使用:/* 默认情况下使用less<int>即大顶堆(由大到小排序),当使用greater<int>即小顶堆(由小到大排序)定义: priority_queue<Type, Container, Functional>Type: 数据类型 Container: 容器类型(Container必须是用数组实现的容器,比如vector、deque等等STL里面默认用的是vector) Functional: 比较的方式(
2021-04-23 17:03:15
95
原创 ubuntu中docker的安装配置
sudo apt-get install docker.iosudo groupadd dockersudo gpasswd -a $USER dockernewgrp docker
2021-04-16 14:03:06
84
原创 ubuntu中qemu-5.2.0-rc3的下载配置
wget https://download.qemu.org/qemu-5.2.0-rc3.tar.xztar xvJf qemu-5.2.0-rc3.tar.xzcd qemu-5.2.0-rc3./configuremakemake installsudo apt-get install pkg-configsudo apt-get install libglib2.0-devsudo apt-get install libpixman-1-dev
2021-04-16 14:01:24
332
原创 ARMv8 AA64 REGISTERS */
SPSR_EL1 Register aarch64Holds the saved process state when an exception is taken to EL1#define SPSR_EL1_N BIT(31) // N condition flag#define SPSR_EL1_Z BIT(30) // Z condition flag#define SPSR_EL1_C .
2021-04-07 14:32:13
247
原创 ARMv8通用寄存器与特殊寄存器说明
ARMv8寄存器说明1 通用寄存器ARMv8提供了31个通用寄存器 R0~R30;在AArch32架构,通用寄存器w0~w30是32bit宽度;在AArch64架构,通用寄存器x0~x30是64bit宽度;2 特殊寄存器SP (stack pointer register) 指向当前栈的指针;AArch64架构为SP AArch32架构为WSP;PC (program counter) 指向当前指令的地址;连接寄存器LR,保存子程序的返回地址; AArch32架构中LR...
2021-03-25 13:47:39
3517
1
原创 mysql8.0.23:Your password does not satisfy the current policy requirements
针对mysql8.0.23数据库:question2:密码问题 mysql> ALTER user 'root'@'localhost' IDENTIFIED BY '123456'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirementsanswer2: mysql> SHOW VARIABLES LIKE 'validate_password%'; +---------
2021-02-28 02:04:54
1682
原创 mysql8.0.23:Access denied for user ‘root‘@‘localhost‘
针对mysql8.0.23数据库:question1:登陆问题 bbb@wbbb:~$ mysql -u root -p Enter password: ERROR 1698 (28000): Access denied for user 'root'@'localhost'answer1: 1 sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf 进入配置文件,在文件最后一行添加skip-grant-tables 目的是无密码登陆 2 ser
2021-02-28 02:03:22
782
原创 ubuntu20.04上安装mysql8.0.23问题总结
ubuntu20.04上安装mysql8.0.23问题总结Access denied for user ‘root’@‘localhost’question1:登陆问题 bbb@wbbb:~$ mysql -u root -p Enter password: ERROR 1698 (28000): Access denied for user 'root'@'localhost'answer1: 1 sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf
2021-02-28 02:01:25
564
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人