自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (2)
  • 收藏
  • 关注

原创 PVE网络配置

auto loauto vmbr0。

2023-04-30 15:35:51 2345

原创 BOOT启动过程学习记录

BOOTLOADER启动流程学习笔记

2022-08-18 14:59:17 95

原创 算法-连通core的电阻-dfs

芯片二维平面图,core为0,-1为不通的路径,其他正数为电阻。需要连线将所有core连通(非俩俩相连),并且使路径电阻最小。路径电阻计算方式为路径上最大的电阻值。

2022-07-17 02:10:19 191

原创 算法-任务分配-DP

算法

2022-07-17 01:55:22 752

原创 算法-封闭的车道-DP

算法

2022-07-17 01:15:44 82

原创 算法-堆方块的高度-记忆化搜索

算法-记忆化搜索-堆方块的高度

2022-07-10 01:25:14 196

原创 ESP8266-RTOS 笔记 1环境搭建

ESP8266-RTOS3.0笔记 1环境搭建本文参考链接需下载工具RTOS SDKMINGW32编译工具环境搭建工具解压构建工程目录修改环境配置编译配置编译本文参考链接https://www.bilibili.com/video/BV1m4411X75e?from=search&seid=7990949493312167336主要参考这个链接。本文只是做个记录,阅读起来快一些,方便以后建工程。需下载工具RTOS SDKgit clone git@github.com:espressi

2021-07-21 12:09:14 213

原创 阅读笔记-程序员的自我修养6

6.1PAE从硬件层面上来讲,原先的32位地址线只能访问最多4 GB的物理内存。但是自从扩展至36位地址线之后,Intel修改了页映射的方式,使得新的映射方式可以访问到更多的物理内存。这个地址扩展方式叫做PAE(physical address extend)缺页加载略6.4.1描述了ELF文件该如何被操作系统映射到进程的虚拟空间:readelf -l SectionMapping.elfcat /proc/21963/maps操作系统通过给进程空间划分出一个个VMA来管理进程的虚拟空间;基本

2020-09-18 17:58:24 127

原创 阅读笔记-程序员的自我修养4

4.1 空间与地址分配目标文件“a.o”和“b.o”,输出可执行文件“ab”。可执行文件中的代码段和数据段都是由输入的目标文件中合并而来的4.1.2 相似段合并第一步 空间与地址分配所有的输入目标文件的各个段的长度、属性和位置,并且将它们合并,计算出输出文件中各个段合并后的长度与位置,并建立映射关系。符号定义和符号引用,放到全局符号表。第二步 符号解析与重定位使用上面第一步中收集到的所有信息,读取输入文件中段的数据、重定位信息,进行符号解析与重定位、调整代码中的地址//a.o ob

2020-09-18 17:58:17 126

原创 阅读笔记-程序员的自我修养3

elf文件格式3.2段file header 描述文件属性是否可执行、是静态链接还是动态链接及入口地址(如果是可执行文件)目标硬件、目标操作系统段表(Section Table),是一个描述文件中各个段的数组。段表描述了文件中各个段在文件中的偏移位置及段的属性等,从段表里面可以得到每个段的所有信息全局变量和局部静态变量已初始化的 . data段;未初始化的 .“bss”段。未初始化的全局变量和局部静态变量默认值都为0,在.data段分配空间并且存放数据0是没有必要的。程序运行的时候它

2020-09-18 17:58:08 206

原创 阅读笔记-程序员的自我修养2

预编译将所有的“#define”删除,并且展开所有的宏定义处理“#include”预编译指令,将被包含的文件插入到该预编译指令的位置。注意,这个过程是递归进行的,也就是说被包含的文件可能还包含其他文件保留所有的#pragma编译器指令编译汇编gcc –c hello.c –o hello.o链接重定位比如我们在第1条指令之后、第5条指令之前插入了一条或多条指令,那么第5条指令及后面的指令的位置将会相应地往后移动使用符号来标记位置符号符号(Symbol)这个概念.

2020-09-18 17:58:00 77

原创 阅读笔记-程序员的自我修养7

7.1 为什么要动态链接要解决空间浪费和更新困难这两个问题最简单的办法就是把程序的模块相互分割开来,形成独立的文件,而不再将它们静态地链接在一起。简单地讲,就是不对那些组成程序的目标文件进行链接,等到程序要运行时才进行链接。也就是说,把链接这个过程推迟到了运行时再进行,这就是动态链接(Dynamic Linking)的基本思想磁盘和内存中只存在一份Lib.o,而不是两份。另外在内存中共享一个目标文件7.3 地址无关代码...

2020-09-18 17:57:48 136

原创 “socket抽象工厂”的使用---socket系统调用小记

int socket(int domain, int type, int protocol);接收AF_INETSOCK_RAW SOCK_STREAM SOCK_DGRAMIPPROTO_TCPPF_PACKETSOCK_RAWETH_P_ALL 接收发往目的MAC是本机的所有类型ETH_P_IP/ETH_P_PPP_DISC/ETH_P_ARP接收发往目的MAC是本机的对应类型...

2020-09-14 16:37:36 472

原创 源码备份-程序员的自我修养4

//a.cextern int shared;extern void swap(int*,int *);int main(){ int a=100; swap(&a,&shared); return 0;}//b.cint shared=1;void swap(int *a,int *b){ *a^=*b^=*a^=*b;}//a.o objdump -h a.oIdx Name Size VMA

2020-09-11 21:16:43 283

原创 传输层sock与多态与socket抽象工厂

基类struct sock派生类struct inet_sock主要分析inet_sock与inet_sock的派生类的关系inet_create类似于构造函数其中初始化 sk = sk_alloc(PF_INET, GFP_KERNEL, answer_prot->slab_obj_size, answer_prot->slab);inet = inet_sk(sk);...

2020-09-09 23:12:52 189

原创 源码备份-反汇编五:类对象存储结构

C++源码#include <iostream>#include <complex>using namespace std;class Base{public: int i; Base(); virtual ~Base(); virtual void f();};class Derived : public Base{public: Derived(); ~Derived(); void

2020-09-09 22:31:18 81

原创 反汇编二:函数调用的一般流程

函数传参函数返回值

2020-09-07 23:34:24 220

原创 反汇编四:函数返回值

内置类型

2020-09-07 23:30:20 687

原创 反汇编五:类对象存储结构

静态数据成员类对象 做参数 值传递没显式调用默认构造函数逐成员复制到栈上先定义后压栈类对象 做返回值 值传递 不一定调用构造函数全局对象 的初始化何时提供默认构造函数构造和析构函数阅读...

2020-09-07 21:09:10 561

原创 反汇编一:内置数据类型

无符号数unsigned int a=305419896;32位0x123457大端0xbfe5e360: 0x00000002 0x????????小端0xbfe5e360: 0x00000002 0x????????有符号数int a=305419896;正数 0x00000000-0x7FFFFFFF int a=-5;负数 0x80000000-0xFFFFFFFF浮点数指针指针地址的解释指针地址的偏移引用常亮...

2020-09-05 18:30:21 305

原创 反汇编三:函数传参

结构体拷贝传参int test(){ struct C st; st.a=1; st.b=2; st.c=3; printf("loccal of test ====\n"); printf("addr st = %x\n",(&st)); printf("addr st.a = %x\n",(&st.a)); printf("addr st.b = %x\n",(&st.b)); printf("addr st.c = %x\n",(&amp

2020-09-05 11:31:40 299

原创 go容器

list使用list源码ring使用ring源码heap-intheapheap-structsliceslice-增删等stack-arr对象stack-list对象stack-slice对象stack-接口接口接口error

2020-07-20 15:27:38 86

原创 接口方式实现单调栈

包package MonotonousStack// "fmt"type Interface interface { ILen() int ILess(i, j int) bool IPush(x interface{}) IErase(n int) interface{}}func MSInit(MS Interface) { n := MS.ILen() if n <= 1 { return } for i := 1; i < MS.ILen(); i++

2020-07-19 10:57:22 73

原创 切片实现 stack

package mainimport ( "fmt")type StackQueue struct { Arr []interface{}}func New(max int) *StackQueue{ sq:=new(StackQueue) sq.Arr = make([]interface{},0, max) return sq}//入栈func (this *StackQueue) Push(value interface{}) { n:=len(th

2020-07-18 16:21:58 76

原创 GO container/list 实现queue/stack

//go 1.6.2package main import "fmt" import "container/list" type QueuStack struct { listSQ *(list.List)}func New() *QueuStack { qs:=new(QueuStack) qs.listSQ = list.New() return qs}func (qs *QueuStack) push(x interface{}) { fmt.Println("push

2020-07-18 15:26:50 157

原创 笔记-linux性能优化实践-5进程cpu使用率

时间片= 1/节拍率HZcpu使用率=1-空闲时间/总cpu时间top 系统总体cpu和内存ps 进程的资源pidstat user system waitcpu使用率不高,可能是短时应用造成1程序调用其他程序2程序本身不断崩溃重启...

2020-06-30 16:57:40 103

原创 笔记-linux性能优化实践-3/4上下文

硬件上下文:cpu寄存器 cpu内置内存计数器 下一条指令地址系统调用 (特权模式切换) 用户态指令 切换 内核态代码进程上下文 虚拟内存 栈 内核栈 寄存器时机:1资源等待 2时间片耗尽 3主动挂起 4高优先级进程 5硬件中断线程上下文 不同进程中的2个线程 同一进程的2个线程 不切换虚拟内存中断上下文不需保存用户态资源保存内核栈 寄存器 硬件中断参数等vmst...

2020-06-30 16:38:11 86

原创 笔记-linux性能优化实践-2平均负载

uptime1、5、15分钟的平均负载可运行状态和不可中断状态的平均进程数-平均活跃进程cpu密集型 cpu使用率高 cpu负载高IO密集型 cpu使用率低 cpu负载高iostat mpstat pidstat

2020-06-30 15:40:42 71

原创 slub分配器主要函数杂记

slub分配器主要函数杂记栈kmem_cache_node 此slab用于分配node栈kmem_cache 此slab用于分配slab__kmem_cache_create kmem_cache已分配,进行初始化 如栈slab初始化kmem_cache_opencalculate_sizescalculate_order ?? ooinit_kmem_cache_nodes kmem_cache_nodes申请空间并初

2020-05-13 23:47:03 163

bootloader学习

bootloader学习

2022-08-18

嵌入式软件通信设计.doc

描述嵌入式平台下模块通信架构设计

2021-03-15

空空如也

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

TA关注的人

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