自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux-0.11内核学习-添加系统调用

1、参考资料赵炯博士的网站oldlinuxLinux内核完全注释Linux0.11 源码2、概要操作系统作为软件应用层和底层硬件之间的部分,向下提供服务,向上提供接口。系统调用便是操作系统向上层应用提供的操作底层硬件的和核心服务的接口,也就是API(Application Programming Interface)。我们知道一般API实现的方法是提供函数接口,只需要调用函数就可以实现相应的功能,底层的原理是程序地址的跳转。因为操作系统和用户程序同时存在于内存中,我们当然是不希望操作系统的数据

2021-01-18 18:21:35 34

翻译 C语言位域(位段)详解

有些数据在存储时并不需要占用一个完整的字节,只需要占用一个或几个二进制位即可。例如开关只有通电和断电两种状态,用 0 和 1 表示足以,也就是用一个二进位。正是基于这种考虑,C语言又提供了一种叫做位域的数据结构。在结构体定义时,我们可以指定某个成员变量所占用的二进制位数(Bit),这就是位域。请看下面的例子:struct bs{ unsigned m; unsigned n: 4; unsigned char ch: 6;};:后面的数字用来限定成员变量占用的位数。成员 m

2021-01-15 15:37:21 24

原创 golang dlv 远程调试

1. 服务端服务器命令行输入:# dlv --headless --log --listen=:8181 attach $(pidof <server>)2. 调试机在调试机上准备好源码,执行:#

2021-01-06 16:10:40 38

原创 Python可变参数、关键字参数及命名关键字参数

1. 可变参数可变参数就是允许在调用参数的时候传入多个(≥0个)参数# 可变参数,参数nums接收到的是一个tuple(这些参数在传入时被自动组组装为一个元祖)def calc(*nums): sum = 0 for n in nums: sum += n return sum>>> calc(1, 2, 3)7>>> my_ls = [1,2,3]>>> calc(*my_ls)72. 关

2020-12-24 13:38:09 31

原创 CentOS 7虚拟机支持virsh console访问

CentOS 7虚拟机支持virtsh console访问方法:1. 在KVM(客户机)下开机启动并启动服务systemctl enable serial-getty@ttyS0.servicesystemctl start serial-getty@ttyS0.service2. 在宿主机下访问virsh console centos7 ## CentOS7是虚拟机名称提示:进去之后回车多次即可通过账号密码登录,退出执行Ctrl+]...

2020-12-22 13:38:12 38

原创 kvm 调试内核方法

1.制作rootfs通过alpine-minirootfs制作rootfs# dd if=/dev/zero of=rootfs.ext4 bs=1G count=20# mkfs.ext4 rootfs.ext4# mkdir -p /mnt/rootfs# mount rootfs.ext4 /mnt/rootfs && cd /mnt/rootfs# wget http://dl-cdn.alpinelinux.org/alpine/latest-stable/rele

2020-12-22 11:46:01 22

原创 华为笔试题-磁盘容量排序

题目大意磁盘的容量单位有M、G、T,其关系为 1T = 1000G、1G = 1000M,如样例所示先输入磁盘的个数,再依次输入磁盘的容量大小,然后按照从小到大的顺序对磁盘容量进行排序并输出。例如:输入:320M1T300G输出:20M300G1T解法:#!/usr/bin/env python3# -*- coding: utf-8 -*-"""array = [0] * 5for i in range(0, len(array)): print(array[i

2020-12-15 11:44:59 83

原创 Linux Kernel Git国内镜像源

1. Linux Kernel Git 镜像使用帮助本项目包含三个镜像:linux.git, linux-next.git, linux-stable.git,分别是主分支、稳定版分支和开发分支。在使用时,请自行更改路径中相应的仓库名称。如需克隆主线 linux 代码,使用git clone https://mirrors.tuna.tsinghua.edu.cn/git/linux.git若要将 tuna mirror 加入已有代码库,可在已有仓库中运行git remote add tuna

2020-12-14 16:36:38 117

翻译 5万能搞定百平家装主材、家具、家电吗?

来源:[B站 迷瞪 《5万能搞定百平家装主材、家具、家电吗》](https://www.bilibili.com/video/BV1MV411d7GK?t=495)

2020-12-13 13:22:06 54

原创 Rust中Turbofish之函数后面双冒号(::)用法

RUST中的语法,Turbofish通常用于在表达式中为泛型类型、函数或方法指定参数。1. Turbofish语法大部分时候当涉及到泛型时,编译器可以自动推断出泛型参数:// v must be a Vec<T> but we don't know what T is yetlet mut v = Vec::new();// v just got a bool value, so T must be bool!v.push(true);// Debug-print vprintl

2020-12-08 10:39:32 127

翻译 良好的Makefile实践

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

2020-11-27 10:42:39 26

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

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

2020-11-26 17:35:12 76

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

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

2020-11-24 13:26:10 140 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

原创 vmlinuz文件解压方法

[root@centos boot]# od -t x1 -A d vmlinuz | grep “1f 8b 08”0013408 ff e0 1f 8b 08 00 ea 80 b9 52 02 03 ec 5b 7f 74[root@centos boot]# dd if=vmlinuz bs=1 skip=0013410 | zcat > vmlinuxgzip: stdin: decompression OK, trailing garbage ignored记录了9195934+0

2020-10-23 23:03:42 86

原创 StratoVirt在x86_64下的初体验

实验环境:OS: Centos8 虚拟机Kernel: 4.19.67Arch: x86_641. StratoVirt简介StratoVirt 是计算产业中面向云数据中心的企业级虚拟化平台,实现了一套架构统一支持虚拟机、容器、Serverless 三种场景。StratoVirt 在轻量低噪、软硬协同、Rust 语言级安全等方面具备关键技术竞争优势。StratoVirt 在保留传统虚拟化的隔离能力和安全能力的同时,降低了内存资源消耗,提高了虚拟机的启动速度。StratoVirt 可应用

2020-10-22 14:29:13 379 2

原创 十大经典排序C++实现及动图演示

0、算法概述0.1 算法分类十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。0.2 算法复杂度0.3 相关概念稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。

2020-10-21 18:17:44 59

原创 centos8.2安装ovirt

1 禁用selinux, 关闭防火墙# systemctl stop firewalld && systemctl mask firewalld# setenforce 0 // 永久关闭/etc/selinux/config, 将SELINUX=enforcing改为SELINUX=disabled2 配置源:BaseOS : https://mirrors.tuna.tsinghua.edu.cn/centos/8/AppStream/x86_64/osAppSt

2020-10-21 09:25:06 130

翻译 强化学习Q-Learning算法及实现详解

本教程通过一个简单但全面的示例介绍Q-learning的概念。 该示例描述了一个使用无监督学习的过程。假设我们在一个建筑物中有5个房间,这些房间由门相连,如下图所示。 我们将每个房间编号为0到4。建筑物的外部可以视为一个大房间(5)。 请注意,1号和4号门从5号房间(外部)通向建筑物。我们可以在图表上表示房间,每个房间作为节点,每个门作为链接。对于此示例,我们想在任何房间中放置一个门,然后从该房间进入建筑物外(这将是我们的目标房间)。换句话说,目标房间是5号。要将此房间设置为目标,我们会将奖励值关

2020-10-14 22:54:56 238 1

翻译 自动驾驶模拟器Carla之python编程-(3)获取汽车摄像头数据

在上节我们已经创建了一个可以形式的特斯里model3,在本节,我们将给汽车上添加摄像头。了解更多有关各种传感器以及如何使用它们的信息:Carla Sensors。现在,我将仅展示如何使用RGB相机。1. 创建摄像头在脚本的顶部,让我们设置几个常量:IM_WIDTH = 640 IM_HEIGHT = 480 现在,我们加载传感器的蓝图并设置一些属性: # https://carla.readthedocs.io/en/latest/cameras_and_sensors

2020-10-13 22:14:19 311 3

翻译 自动驾驶模拟器Carla之python编程-(2)控制汽车

在本节,我们将向您介绍Carla的Python API。Carla中有几种类型的对象。首先,您当然拥有world(世界),这就是你的环境。这样,您便拥有了这个世界中的actors(角色)。角色诸如汽车、汽车上的传感器、行人等之类的东西。最后,我们有blueprints(蓝图)。蓝图是我们角色的属性。有了这些信息,让我们开始编写一些实际的代码。首先,让我们制造一辆可以生成汽车并简单地向前行驶的汽车,然后我们希望从常规RGB相机中查看信息,并将其放置在汽车引擎盖上。1. 导入carla及其他依赖包代码的

2020-10-13 21:48:38 349

翻译 自动驾驶模拟器Carla之python编程-(1)简介

欢迎来到涵盖Carla的系列教程,这是一个开放源代码的自动驾驶环境,还附带了与之交互的Python API。Carla拥有环境(服务器),然后具有代理(客户端)。 这种服务器/客户端架构意味着我们可以在同一台计算机上本地运行服务器和客户端,也可以在一台计算机上运行环境(服务器),在多台其他计算机上运行多个客户端。有了Carla,我们(显然)得到了一辆汽车,一个可以开车的环境,然后我们可以在汽车上放置一堆传感器,以模拟现实生活中的自动驾驶汽车传感器。 诸如激光雷达、照相机、 加速度计等之类的东西。我们

2020-10-13 21:05:21 346

原创 mwget安装及使用

mwget和curl/multicurl一样,m就是multi多线程的意思。mwget是wget的升级版,支持多线程下载。1. 下载及安装# git clone https://github.com/rayylee/mwget.git# cd wget# ./configure# make && make install2. 使用# mwget [URL] // 默认开4个线程# mwget -n 10 [URL] // 10个线程下载...

2020-10-11 14:37:58 243

原创 latex 生成中文目录乱码问题解决

\end{CJK}前添加\newpage, 然后使用PDFLATEX编译两次\documentclass[a4paper,10pt]{article}%\documentclass[a4paper,10pt]{scrartcl}\usepackage[encapsulated]{CJK}\usepackage{ucs}\usepackage[utf8x]{inputenc}\title{对话管理}\author{zhongkeli}\date{}\pdfinfo{% /Title

2020-09-30 22:54:09 375

原创 数据结构及算法之快速排序-python实现

1. 快速排序介绍快速排序(Quick Sort)使用分治法策略。它的基本思想是:选择一个基准数,通过一趟排序将要排序的数据分割成独立的两部分;其中一部分的所有数据都比另外一部分的所有数据都要小。然后,再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序流程:从数列中挑出一个基准值。将所有比基准值小的摆放在基准前面,所有比基准值大的摆在基准的后面(相同的数可以到任一边);在这个分区退出之后,该基准就处于数列的中间位置。递归地把"基准值前

2020-09-28 16:43:19 42

原创 LeetCode003-无重复字符的最长子串(Length of longest substring)-Rust语言实现

题目给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。

2020-09-20 18:22:25 41

原创 LeetCode002-两数相加(Add Two Numbers)-Rust语言实现

题目给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807#[derive(PartialEq, Eq, Clone, Debu

2020-09-20 16:23:42 35

原创 LeetCode004-寻找两个正序数组的中位数(Median of two sorted arrays)-Rust语言实现

题目给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中位数是 (2 + 3)/2 = 2.5思路:利用二分查找和栈解决思路:假设两个数组分别为:m = [

2020-09-20 08:37:58 89

原创 linux下golang编译环境搭建

1. 设置GOPATH及PATH修改 ~/.bash_profileexport GOPATH=/usr/local/gopathPATH="$GOPATH/bin:$PATH"export PATH2. 配置代理修改 ~/.bash_profileexport GOPROXY=https://goproxy.io3. 安装golang工具go install github.com/Go-zh/tools/cmd/goplsgo install github.com/Go-zh/to

2020-09-19 10:29:38 135

翻译 Rust 条件编译

条件编译可以通过两种不同的操作符实现,如下:cfg 属性:在属性位置中使用 #[cfg (…)]cfg!宏:在布尔表达式中使用 cfg!(…)例子 1:// 仅当目标系统为Linux 的时候才会编译#[cfg(target_os = "linux")]fn are_you_on_linux() { println!("linux!")}// 仅当目标系统不是Linux 时才会编译#[cfg(not(target_os = "linux"))]fn are_you_on_li

2020-09-17 10:59:20 53

原创 Rust+Yew之hello world

1. Yew 是什么?Yew 是一个设计先进的 Rust 框架,目的是使用 WebAssembly 来创建多线程的前端 web 应用。基于组件的框架,可以轻松的创建交互式 UI。拥有 React 或 Elm 等框架经验的开发人员在使用 Yew 时会感到得心应手。高性能 ,前端开发者可以轻易的将工作分流至后端来减少 DOM API 的调用,从而达到异常出色的性能。支持与 Javascript 交互 ,允许开发者使用 NPM 包,并与现有的 Javascript 应用程序结合。2. wasm-pa

2020-09-12 16:10:38 157

原创 WebAssembly实例之hello world

1. 安装emsdk# git clone https://github.com/juj/emsdk.git# cd emsdk# ./emsdk install latest# ./emsdk activate latest# source "/home/emsdk/emsdk_env.sh"2. 编译新建一个文件example.c,写入下面的代码#include <emscripten.h>int main(){ EM_ASM({ alert('Hello W

2020-09-11 22:39:00 82

原创 Rust中mut, &, &mut的区别

资源:内存区块。不同的内存区块位置和大小就是不同的资源。strlet a = "xxx".to_string();  含义:a绑定到字符串资源A上,拥有资源A的所有权let mut a = "xxx".to_string(); 含义:a绑定到字符串资源A上,拥有资源A的所有权,同时a还可绑定到新的资源上面去(更新绑定的能力,但新旧资源类型要同);valuelet b = a;含义:a绑定的资源A转移给b,b拥有这个资源Alet b = &a;  含义:a绑定的资源A借给b

2020-09-08 16:50:16 343

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的粉丝

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