自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (65)
  • 论坛 (5)
  • 收藏
  • 关注

翻译 良好的Makefile实践

1. 背景这篇文章的主要目的是记录一些可以在Makefile中使用的技巧,以便可以为Makefile本身中的每个目标添加文档,并且可以将其作为make目标查看(例如make help)。在项目中拥有可靠的文档是一件很了不起的事情,而且如果它们不会过时,那就更好了。通常在顶级Readme.md或类似文件中记录每个Make目标。尽管这是迈出的重要第一步,但更新Makefile而不是更新文档是很常见的,因此使它们变得毫无用处。2. 目标最终目标是能够根据Makefile中的注释运行以下内容。# make

2020-11-27 10:42:39 25

原创 多核CPU缓存一致性协议MESI

在计算机系统中,CPU高速缓存(英语:CPU Cache)是用于减少处理器访问内存所需平均时间的部件。在金字塔式存储体系中它位于自顶向下的第二层,仅次于CPU寄存器。其容量远小于内存,但速度却可以接近处理器的频率。当处理器发出内存访问请求时,会先查看缓存内是否有请求数据。如果存在(命中),则不经访问内存直接返回该数据;如果不存在(失效),则要先把内存中的相应数据载入缓存,再将其返回处理器。1. CPU高速缓存(Cache Memory)1.1 CPU为何要有高速缓存CPU在摩尔定律的指导下以每18个

2020-11-26 17:35:12 75

原创 程序员画图工具Draw.io

程序员不要认为写好代码就好,画好图也很重要,难道你没听过PPT架构师,PPT架构师不就天天画图么。关于画图,俗话说,有图有真相!哦,不对,是一图胜千言。一图胜千言,沟通效率那不是刚刚的。Draw.io 是一个很好用的免费流程图绘制工具。你可以利用它绘制一系列的图表、图示或图形,包括流程图、UML 类图、组织结构图、泳道图、E-R 图、文氏图等等。一大堆的介绍,感觉很高端,其实我真正用的也就几个。这块软件可以在线访问进行画图,也可以下载安装包(绿色版)在本地打开进行画图,都是很方便的。这个画.

2020-11-24 13:26:10 139 1

原创 程序员35岁前需要完成的10件事

作为一名程序员要在 35 岁前完成哪些事情呢?这因目标而异,但下面这些项目应该具有非常高的通用性:1.精通一门最常用的语言2.了解一个最常用平台的基本机制,比如:内存管理、线程机制等3.UML 图和面向对象分析设计方法4.设计原则和设计模式,如:职责单一等5.《代码大全》里讲的一切6.精读一个知名的, 但有点规模的程序。这点上要感谢开源项目给我们提供了这么多优秀程序。但要谨防好高骛远,动辄挑战 Linux 内核,精读是关键。7.累积一定的代码量,比如:独立的完整做过一个数万代码行的东西。这.

2020-11-22 19:51:50 66 1

原创 graph-easy使用简介

Graph::Easy 是一个处理图形DSL的Perl模块,它有如下功能:提供了一种易懂,可读性很强的图形描述语言一种支持 ASCII Art 的基于网格的布局器可以导出为 Graphviz, VCG (Visualizing Compiler Graphs), GDL (Graph Description LAnguages) 和 GraphML 格式。可以从 Graphviz, VCG 和 GDL 导入图像。1. graph-easy 安装1.1 安装perl# yum install

2020-11-22 12:26:33 94

原创 通过QMP/QGA与虚拟机进行交互

1. QMP介绍qemu对外提供了一个socket接口,称为qemu monitor,通过该接口,可以对虚拟机实例的整个生命周期进行管理,通过该socket接口传递交互的协议是qmp,全称是qemu monitor protocol,基于json格式的协议,主要有如下功能状态查看、变更设备查看、变更性能查看、限制在线迁移数据备份访问内部操作系统2. QMP语法# 不带参数的指令{ "execute" : "XXX" }# 带参数的指令{ "execute" : "XXX", "

2020-11-17 10:22:28 72

原创 C语言的构造函数与析构函数

C++和JAVA中有构造函数,C语言中也有实现的方法,在gcc下可以使用关键字 __attribute__指定构造函数或者析构函数。他们由编译器在编译阶段进行处理。声明构造函数:void __attribute__((constructor)) function(void)声明析构函数:void __attribute__((destructor)) function(void)例:#include <stdio.h>void __attribute__((construct

2020-11-16 10:22:49 139

原创 KVM热迁移方式漫谈

1. Pre-copy 预拷贝内存预拷贝内存(Pre-copy)通过一个循环,将内存数据发送至目的主机VM,循环第一轮发送所有内存数据,接下来每一轮发送上一轮预拷贝过程中的脏页。最后一轮是停机拷贝阶段,源主机被挂起,停止内存更新,将脏页整体拷贝到目的主机vm上。对于更新速度非常快的内存部分,每次循环过程都会变脏,需要重复 pre-copy,同时也导致循环次数非常多,迁移的时间变长。针对这种情况,KVM 虚拟机建立了三个原则:集中原则,一个循环内的 dirty pages 小于等于 50;不扩散原则, 一

2020-11-11 22:22:10 37

原创 内存虚拟化EPT技术简介

1. 内存虚拟化现代多任务操作系统设计,一般进程之间使用不同的虚拟地址空间相互隔离, 在实现上:操作系统负责维护进程页表,映射虚拟地址到物理地址的关系CPU的内存管理单元(MMU)负责执行地址转换CPU提供TLB(Translation lookaside buffer)缓存最近用到的转换结果,加速转换效率虚拟化技术引入后,内存地址空间更加复杂了,客户机(Guest)和宿主机(Host)都有自己的地址空间:GVA: Guest虚拟地址GPA: Guest物理地址HVA: Host虚拟地

2020-11-11 15:48:01 91

原创 内存管理单元MMU简介

1. MMUMMU在CPU的配合下(通过页异常触发),实现了线性地址到物理地址的动态映射,为正在CPU上运行的应用程序(进程)提供了一个独立的连续内存空间(线性地址空间,或称虚拟内存空间,其中放置了代码段、数据段和堆栈段),屏蔽了地址分配、内存分配和内存回收等一系列复杂的系统行为。MMU的线性地址转换是通过页表进行的,具体过程如下图所示(摘自intel程序员手册卷3):其实最简单明了的方法是通过一个一维数组来记录映射关系:下标代表线性地址,数组元素内容代表物理地址。可是如此一来,用来表示映射关系的内

2020-11-11 10:41:34 76

原创 Linux 64位进程地址空间分布概况

对于Linux 64位系统,理论上,64bit内存地址可用空间为0x0000000000000000 ~ 0xFFFFFFFFFFFFFFFF(16位十六进制数),这是个相当庞大的空间,Linux实际上只用了其中一小部分(256T)。Linux64位操作系统仅使用低47位,高17位做扩展(只能是全0或全1)。所以,实际用到的地址为空间为0x0000000000000000 ~ 0x00007FFFFFFFFFFF(user space)和0xFFFF800000000000 ~ 0xFFFFFFFFFFF

2020-11-05 18:38:16 241

TCPIP网络组件Lwip之最简单的webserver

TCPIP网络组件Lwip之最简单的webserver tcp lwip stm32 红龙

2014-03-20

操作系统原理与设计(中科大2020).rar

操作系统原理与设计(中科大2020).rar

2021-01-15

串口调试助手V1.5-原子版本

串口调试助手V1.5-原子版本

2014-05-22

Xshell_7.0.0001

Xshell_7.0.0001

2020-12-24

x86_64内核kernel4.19.152编译的vmlinux

x86_64内核kernel4.19.152编译的vmlinux、vmlinx.bin及config文件

2020-10-31

linux按键驱动(input子系统)

linux按键驱动(input子系统)

2014-09-12

IIC通信协议

IIC通信协议

2014-08-24

exynos4412裸机按键程序x-key-with-led-beep

exynos4412裸机按键程序x-key-with-led-beep

2014-08-21

嵌入式系统设计师教程

嵌入式系统设计师教程

2014-03-27

LwIP无操作系统下的实验(内附LwIP中文应用指南)

LwIP无操作系统下的实验(内附LwIP中文应用指南)

2014-03-21

红龙板_TFT绘图API(3.2寸)

红龙板_TFT绘图API(3.2寸)

2014-02-26

TCPIP网络组件Lwip之TCP Server

TCPIP网络组件Lwip之TCP Server

2014-02-27

uCOSII2.912Blwip-1.3.2+28DM900029

uCOSII2.912Blwip-1.3.2+28DM900029

2014-02-21

STM32_F107_lwIP_uCOS_v1.0.0

STM32_F107_lwIP_uCOS_v1.0.0

2014-02-21

stm32 dm9000a uip程序

stm32 dm9000a uip程序

2013-09-04

modbus-master-slave模拟软件

modbus-master-slave模拟软件

2013-08-27

Modbus调试精灵

Modbus调试精灵

2013-08-27

STM32学习笔记

STM32学习笔记

2013-07-31

Qt编写串口通信程序

Qt编写串口通信程序

2012-09-25

单片微型机原理、应用与实验(第五版)-张友德-答案

单片微型机原理、应用与实验(第五版)-张友德-答案

2012-09-17

Ubuntu12.04菜鸟使用教程

Ubuntu12.04菜鸟使用教程

2012-09-19

Ubuntu安装教程

Ubuntu_12.04安装教程(非wubi安装)

2012-09-19

buntu12.04菜鸟使用教程

buntu12.04菜鸟使用教程

2012-09-19

Ubuntu标准教程

Ubuntu标准教程

2012-09-19

51单片机延时子程序详解

51单片机延时子程序详解

2012-07-18

s3c2440 IIS实现UDA1341音频功能

s3c2440 IIS实现UDA1341音频功能

2012-05-10

linux系统管理命令

linux系统管理命令

2012-05-03

HB12864M2A液晶资料

HB12864M2A液晶资料

2012-05-03

各大公司应聘电子类题目精选

各大公司应聘电子类题目精选 各大公司应聘电子类题目精选

2012-05-03

振南的SD卡FAT32文件系统

振南的SD卡FAT32文件系统

2012-05-03

SD卡上的znFAT++实例

SD卡上的znFAT++实例 SD卡上的znFAT++实例

2012-05-03

振南的znFAT--单片机上的FAT32文件系统

振南的znFAT--单片机上的FAT32文件系统

2012-05-03

读DS18B20序列号C程序

读DS18B20序列号C程序

2012-04-21

严蔚敏:数据结构题集(C语言版).pdf

清华大学严蔚敏:数据结构题集(C语言版)

2011-12-25

国嵌 嵌入式LINUX应用开发班实验手册

国嵌 嵌入式LINUX应用开发班实验手册

2011-11-12

C语言第四版 谭浩强 答案

C语言第四版 谭浩强 答案 C语言第四版 谭浩强 答案

2011-08-26

二级C语言笔试历年真卷

二级C语言笔试历年真卷 二级C语言笔试历年真卷

2011-08-26

二级C语言上机_总结

二级C语言上机_总结 二级C语言上机_总结

2011-08-26

win7快捷键大集合

win7快捷键大集合

2011-08-26

KEIL_C编译器错误的解决办法

KEIL_C编译器错误的解决办法 KEIL_C编译器错误的解决办法

2011-08-25

beachboyy的留言板

发表于 2020-01-02 最后回复 2020-01-02

刚开始学UIP,想问下,uip作为tcp服务器响应2个以上的客户端,但是TCP 的发送、接收缓冲区是同一个。。该怎么弄啊?要从哪里入手啊?非常感谢!

发表于 2014-03-10 最后回复 2016-07-22

学嵌入式、linux可以从事什么工作??

发表于 2012-08-21 最后回复 2014-03-10

while(N--);与uint i; for(i=0;i<N;i++);的区别

发表于 2011-08-11 最后回复 2014-03-10

嵌入式linux学习起步

发表于 2011-07-20 最后回复 2012-04-11

空空如也

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

TA关注的人 TA的粉丝

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