自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1093)
  • 资源 (16)
  • 收藏
  • 关注

翻译 GStreamer编程实例7: Multithreading and Pad Availability

GStreamer是一个多线程的框架,这意味着在内部,它根据需要创建和销毁线程,例如,将流的处理从应用程序线程解耦。此外,插件也可以自由创建线程来处理它们的任务,例如视频解码器可以创建四个线程以充分利用CPU的四个核。除此以外,应用程序在创建pipeline的时候可以明确的指定它的一个分支(pipeline的一部分)运行在不同的线程上(例如同时进行音频和视频的解码)。这使用queue插件完成,它的sink pad只负责将数据入队,并且在另一个线程中src pad将数据出队并传递给其余插件。

2024-05-23 15:44:24 3

翻译 GStreamer编程实例6: Media formats and Pad Capabilities

Pads如之前介绍的一般,Pads允许信息进出elements。Pad的Capabilities(简称为Caps)指定了Pad能够传递什么类型的信息。例如,“320x200分辨率,30FPS的RGB视频”,或是“16位音频样本,5.1通道,采样率44100Hz”,或者是mp3和h264这类的压缩格式。

2024-05-23 15:09:32 4

翻译 GStreamer实例开发5:图形界面工具包集成

窗口有一些Gtk+按钮,可以暂停、停止和播放电影,还有一个幻灯片显示流的当前位置,可以拖动来更改流。让我们回顾一下回调。每次有消息出现在公共汽车上,我们就会呼出它的作用,这就迫使我们去看它是否对我们感兴趣。在这种图托利亚方法中,使用了不同的方法来为每种消息注册回调,因此分析较少,整体代码较少。这是一个例子,如何能够很容易地实现一个复杂的图形界面元素,如导引器条(允许寻找的滑块),这要归功于托格韦勒和Gtk+的协作。格兰姆消息有不同的ypyp,这种特殊的类型是为应用程序保留的:它将通过不受格兰姆影响的总线。

2024-05-23 13:52:12 4

翻译 GStreamer编程实例4:时间管理

在进行搜寻之前,此方法会抛弃所有目前在管道中的数据。如果不提供这个标志,那么"陈旧"的数据可能会显示一段时间,直到新的位置出现在管道的尽头。这涉及一些步骤,将在下一个小节显示,但是,由于位置和持续时间是足够常见的查询,本教程打开一个窗口,并显示一个电影,随附音频.媒体是从互联网上获得的,所以窗口可能需要几秒钟才能出现,这取决于您的连接速度。在这里,我们修改这个函数来定期唤醒并查询管道的流位置,这样我们就可以在屏幕上打印它。现在我们使用100毫秒的超时,所以,如果在十分之一秒的时间里收到消息,函数将返回。

2024-05-23 11:47:57 5

翻译 GStreamer开发实例 3: Dynamic pipelines

可以看到这篇教程的pipeline在设置为PLAYING状态之前都没有完成构建,这种行为是允许的。但是假如在播放之前没有完成,那么数据在到达pipeline的某个节点将上报一个错误信息并停止运行。在这个例子中我们将打开一个多路复用的文件,音频和视频被存储在同一个容器文件中。负责响应打开多路复用文件的element被叫做解复用器,可以处理MKV、QT、MOV、Ogg、WMV等格式的容器文件。

2024-05-23 11:30:03 4

翻译 GStreamer开发实例2: GStreamer concepts

这篇教程展示了:如何使用创建element。如何使用创建一个空的pipeline。如何使用向pipeline中添加element。如何使用连接element。总计有两篇教程介绍GStreamer的基本概念,这是第一篇,下一篇是第二篇。

2024-05-23 11:20:34 5

翻译 gstreamer开发实例1: Hello world!

本教程展示了一下内容:如何使用CMake构建GStreamer程序。如何使用gst_init()初始化GStreamer。如何使用快速构建一条pipeline。如何使用playbin创建一条自动的播放pipeline。如何使用向GStreamer发送开始播放信号。如何使用和监听pipeline并进行相关处理。

2024-05-23 11:10:22 5

转载 Gstreamer应用开发实战指南

GStreamer 是一个用于创建流媒体应用程序的框架。基本设计来自俄勒冈研究生院的视频管道,以及DirectShow的一些想法。GStreamer的开发框架可以编写任何类型的流媒体多媒体应用程序。GStreamer 框架旨在使编写处理音频或视频或两者的应用程序变得容易。它不仅限于音频和视频,并且可以处理任何类型的数据流。管道设计使得比所施加的过滤器引起的开销要小。这使得GStreamer成为设计对延迟有很高要求的高端音频应用程序的良好框架。GStreamer最明显的用途之一是使用它来构建媒体播放器。

2024-05-23 09:56:55 6

原创 软考高级架构师知识点5-文件索引

如果一个地址占用 4 个字节,一个物理盘块有 4KB 容量,那么在第 11 个物理块中就可以存放 1024 份地址,每份子地址可以再存储 1024 份二级地址,那么 11 号物理块就可以存储 1024 * 1024 份容量,就是 1024 X 1024 X 4KB = 4GB 的容量。一般的索引文件结构由 13 个结点组成,其中 0 - 9 个结点为直接的物理盘块(直接索引),第 10 个结点是一级间接索引,第 11 个结点是二级间接索引,第 12 个结点是三级间接索引,如下图所示。一、索引文件结构概论。

2024-04-24 11:38:50 941

转载 软考高级架构师知识点4-磁盘调度算法

处理完之后,读写头停的位置处,正好是需要处理的下一个扇区的位置。当移动臂定位后,即:确定柱面后,有多个进程等待访问该柱面时,应当如何决定这些进程的访问顺序?访问磁盘,最耗时的是寻道时间,所以,磁盘调度的目标:平均寻道时间最少!磁盘是一直转动的,即:处理的4ms中,磁盘已经转动了2个扇区了。读取第2~n个记录:旋转到原来位置的时间 + 读取时间+处理时间。每一个扇区的时间:读取时间+处理时间。读取第一个记录:读取时间+处理时间。1-1、磁盘驱动调度(移臂调度)1、先来先服务:FCFS。1-2、旋转调度算法。

2024-04-24 10:45:30 39

原创 软考高级架构师知识点3-嵌入式实时操作系统调度算法

最晚截止日期,有个另外的名字叫做 最小松弛时间,松弛时间 = 截止时间 - 当前时间 - 执行时间,题目提到快到截止时间,我们可以理解为松弛时间很小了,这样调度就是最晚截止。最晚截止期算法选择松弛度最小的任务执行。最早截止期调度算法就是按照截止日期最早的执行。假如题目换个表述,某类任务截止日期靠前,CPU 优先调度,那么选择最早截止调度算法。系统为每个任务分配一个相对固定的优先顺序,然后调度程序根据优先级的高低排序,按时间顺序进行。指调度程序按每个任务的截止期时间,选择最早到。时间的任务进行调度。

2024-04-24 10:19:39 180

转载 软考高级架构师知识点2——操作系统:位示图的计算、页式存储、磁盘管理

接下来具体的看分析:对于磁盘R1而言,磁头首先位于R1的开始处(即R10的末尾位置那条线),读取R1花费1ms时间,磁头到了R1的末尾处,又需要花费2ms处理它,所以可以得知经过3ms时候,磁头已经旋转到了R4的开始处(即R3的末尾处),接下来需要读取R2并处理R2,这个时候需要将磁头旋转到R2的开始处位置,那么需要顺时针移动(R4-R1,共计8个磁盘)才到R2的开始处,接下来,读取R2并处理R2同样需要花费3ms时间,磁盘也到了R5的开始,也需要旋转同样的8个磁盘,依次类推。为“1”时,表示已经分配。

2024-04-24 09:52:25 77

转载 软考高级架构师知识点1:进程和线程概念和例题

线程是进程中的一个实体,被系统独立调度和分派的基本单位,是一条执行流程。资源独立性 拥有独立的地址空间,一个进程崩溃后,在保护模式下不会影响到其他进程 线程共享所属进程的地址空间和资源,一个线程崩溃可能影响到同一进程的其他线程。通信 进程间通信(IPC)需要操作系统提供的特殊机制,如管道、信号、共享内存等 线程间可以直接读写进程数据段(如全局变量)来进行通信,更高效。进程在其生命周期内,会经历不同的状态。新建态到就绪态:进程被创建后,初始化资源,准备运行,被置于就绪队列。

2024-04-24 08:54:55 18

原创 【一】Lambda表达式

​ Lambda表达式是现代C++在C ++ 11和更高版本中的一个新的语法糖 ,在C++11、C++14、C++17和C++20中Lambda表达的内容还在不断更新。//如果[]中已经使用了 & 或 =,那么默认已经使用了this,可以使用当前类的成员变量和成员函数。//6. [变量名]如果多个变量名,则彼此之间用,分割,按值捕获变量名代表的变量,其他的变量则不捕获。//7. [=,&变量名] 按值捕获所有外部变量,但按引用捕获&中所指的变量,//非法,不可以给它赋值,因为是以值的方式捕获。

2023-10-18 16:23:49 219

转载 QT 添加带有滚动条的窗口,并使之滚动起来

动态的设置scrollAreaWidget的尺寸大小,这样就能保证无论生成多少动态控件,始终都在scrollAreaWidget范围内,而且可以通过滚动条滚动来显示不同区域的控件。但是,再界面上需要动态添加控件的时候,给scrollAreaWidget设置一个固定的尺寸就不合适了,因为当控件的坐标超出scrollAreaWidget的尺寸时,依然无法显示。此时,就需要在动态生成控件的时候添加一个判断,判断控件的位置+尺寸是否超出了scrollAreaWidget的显示范围,如果超出,则需要使用函数。

2023-03-24 23:09:09 7283 1

转载 Qt | 鼠标事件和滚轮事件 QMouseEvent、QWheelEvent

如果在函数中没有用到函数传进来的参数的话,比如说在void mousePressEvent(QMouseEvent *event)函数体中,我们没有使用到event这个参数,这样在编译程序的时候会出现警告,但是这不会影响程序的编译运行,如果不想出现这样的警告信息,就可以在函数内第一句加上Q_UNUSED(xxx);程序中经常用到鼠标事件,根据不同的鼠标事件实现不同的功能。来暂时改变鼠标指针的形状,那么就需要在恢复鼠标形状时使用QApplication::restoreOverrideCursor();

2023-03-24 22:57:16 2634

转载 生成组合仿射变换矩阵,裁剪+缩放+平移+斜切+旋转

本文通过结合一个实际的例子(根据 bounding box 从图片中裁剪出特定的区域,然后做旋转、斜切和缩放等操作)来讲解如何通过一个简单的方法生成组合操作的仿射变换矩阵。下面来看下一个实际的例子,比如下图,根据给定的标注框从原图中裁剪出熊猫宝宝,并且对其做旋转、斜切和缩放等操作。第三个矩阵是为了第四个旋转做准备的,首先把图中心点平移到左上角的原点,经过前两个变换之后,图片中心点变为。这个变换矩阵代表的意思简单来说就是把物体在原图上的中心点映射为裁剪后图的中心点,裁剪、缩放、平移、旋转、斜切、平移。

2022-11-14 17:05:28 1285

转载 OpenCV从仿射矩阵得到旋转量平移量缩放量

我们都知道图像的仿射变换是将原图像通过仿射变换矩阵进行运算,得到仿射变换后的图像,而仿射变换矩阵中包含了图像旋转、平移以及缩放等信息,某些场合下,我们需要通过两组点的对应关系中得到旋转量、平移量以及缩放量。仿射变换矩阵中的值并不能直接都得到它们,需要进一步计算得出,本文主要基于opencv来实现从仿射矩阵得到旋转量平移量缩放量的值,本文主要上实现代码,有些小知识就不补充细说了。

2022-11-14 16:45:42 585

原创 wpa-supplicant移植

我正在 fatal error: netlink/genl/genl.h: No such file or directory 我已经安装了 libnl-3.2.24. 如果我直接编译( 不交叉编译),那么hostapd就会正确编译而没有任何错误。下载最新版本:http://w1.fi/releases/wpa_supplicant-2.9.tar.gz。/netlink/genl/genl.h 在 libnl-3-dev 包中找到。源码下载:http://w1.fi/wpa_supplicant/

2022-11-11 15:29:52 958

原创 sudo apt-get install 安装包失败

用apt-get install有时候会出现现象。

2022-09-15 10:07:41 2347

原创 安装vim错误

【代码】安装vim错误。

2022-09-15 09:37:51 774

转载 海思QT开发系列(一):3559平台QT移植

网上的版本大都不完善,或多或少会出一些错误,所以一切以我为准!

2022-08-19 08:28:40 839

转载 海思Hifb层

由于修改虚拟分辨率将改变Hifb的固定信息fb_fix_screeninfo::line_length(跨度),为保证绘制程序能够正确执行,推荐先设置HiFB的可变信息fb_var_screeninfo,再获取HiFB的固定信息fb_fix_screeninfo::line_length。c:设置像素分辨率,和像素格式,,每个叠加图形层的支持的最大分辨率和像素格式可以通过支持能力接口获取。每个设备层支持若干时序输出,,用户需要调用相关的接口使能设备层,然后操作图形层,才能看到结果。...

2022-08-18 08:38:28 821

转载 hisi Camera 开发--HiMPP媒体处理软件开发基本概念

海思提供的媒体处理软件平台(Media Process Platform,简称 MPP),可支持应用软件快速开发。该平台对应用软件屏蔽了芯片相关的复杂的底层处理,并对应用软件直接提供 MPI(MPP Program Interface)接口完成相应功能。该平台支持应用软件快速开发以下功能:输入视频捕获、H.265/H.264/JPEG 编码、H.265/H.264/JPEG 解码、视频输出显示、视频图像前处理(包括去噪、增强、锐化)、图像拼接、图像几何矫正、智能、音频捕获及输出、音频编解码等功能。...

2022-08-11 09:20:46 2148 1

转载 Hi3519AV100 sdk 介绍

把 arm-himix200-linux.rar 解压后,得到 arm-himix200-linux.tgz。经过上面的步骤,我们的系统是跑起来了,但只是把 kernel 启动了,根文件系统挂载了而已,什么业务都没有运行的。│ │ ├── mpp # 媒体处理相关的驱动,库,头文件以及 sample等。│ │ ├── Hi3519AV100 SDK 安装及升级使用说明.pdf # sdk 安装,编译,烧录说明。至此,系统就已经运行起来了, sample 也运行起来了。.

2022-08-11 09:17:30 2212 1

原创 Ubuntu下常用开发工具的配置

Ubuntu下常用开发工具的配置

2022-08-10 11:49:51 2153

转载 Linux里面set-e命令作用是什么?

在Linux操作系统中,set命令主要用于设置shell,它能设置所使用shell的执行方式,可依照不同的需求来做设置,而-e是Linux set命令常用的参数之一。那么Linux里面set-e命令作用是什么?如何使用?以下是详细的内容介绍。  Linux里面set-e命令作用是,如果一个命令返回一个非0退出状态值(失败),就退出.  这个命令-e参数企业应用极少  set的“+”,"-"分别用于关闭或者打开某些特性;具体的特性有很多,这里介绍-e特性:  set-e;表示后续所有的bash命令的返回cod

2022-07-06 10:52:32 1645 1

转载 HDMI转LVDS

这里梳理一下HDMI-LVDS应用的几个项目案例:1、HDMI转LVDS的几种应用模式2、无缓存直入直出模式;3、带缓存并且可以实现图像裁剪的内存应用;4、视频数据+自定义数据混合发送的LVDS应用案例5、LVDS转HDMI的测试案例一、无缓存直入直出模式,这也是LVDS编码发送的核心。直进直出无缓存模式: 二、增加缓存进行简单的图像裁剪,主要功能是实现HDMI视频输入经FPGA转成LVDS输出,基本框图如下所示:主要实现以下功能:[该方案在实际项目中应用]

2022-06-28 16:28:19 4175

转载 Qt布局之QStackedLayout

之前认识了QBoxLayout、QGridLayout和QFormLayout。接着来认识Qt布局家族的成员QStackedLayout,集齐四种布局就可以召唤神龙了。前面三种布局都是在同一个平面上对窗口部件布局,而QStackedLayout可以看成是不同平面的布局,就好像布局的窗口是叠在一起的一样,你(在默认的模式下)只能看到最上层的那一个窗口。这种特性很适合用来实现切换子界面的功能。QStackedLayout基本用法QStackedLayout的使用也很简单,上栗子:QStackedLayout通过

2022-06-08 11:52:41 514 1

转载 NMS的numpy写法

简单易懂的NMS的numpy写法目标检测中的NMS,输入:boxes形如N*5,N个(x1,y1,x2,y2,score), thresh阈值为float型。计算时,首先获取基于分数的降序排序order,计算全部box的面积area,对每个得分最高的boxes[i],计算与其余低分boxes[order[1:]]的交并比ious,去除ious高于阈值的box。def nms_plain(boxes, threshold): x1 = boxes[:,0] y1 = boxes[

2022-05-12 15:28:26 715

转载 libtorch (pytorch c++) 教程(八)

这是个教程总结,libtorch教程一共八章,主要是实现了c++版本的分类,分割和检测工具吧。这对一些需要C++/C#/Java做项目的同志来说,想必是大大的福音了。由于代码全程几乎手敲,不像现在许多python项目,可以直接从其他地方CV(ctr C + ctr V)过来,同时c++项目debug起来比python麻烦很多,光是项目大了以后编译一次都耗时很久....算不上诉苦,只能说干c++的都是脏活,让人头秃👨‍🦲。不过现在深度学习相关的岗位,尤其是CV岗,python的HC真的不多,大厂还好,

2022-05-12 15:27:17 628

转载 libtorch(pytorch c++)教程(七)

阅读本文需要有基础的pytorch编程经验,目标检测框架相关知识,不用很深入,大致了解概念即可。本章简要介绍如何如何用C++实现一个目标检测器模型,该模型具有训练和预测的功能。本文的分割模型架构使用yolov4-tiny结构,代码结构参考了bubbliiiing yolov4-tiny,本文分享的c++模型几乎完美复现了pytorch的版本,且具有速度优势,30-40%的速度提升。模型简介简单介绍一下yolov4-tiny模型。yolov4-tiny模型是YOLO(you only look o

2022-05-12 15:25:50 1160

转载 libtorch(pytorch c++)教程(六)

本章简要介绍如何如何用C++实现一个语义分割器模型,该模型具有训练和预测的功能。本文的分割模型架构使用简单的U-Net结构,代码结构参考了qubvel segmentation中的U-Net部分,该项目简称SMP,是基于pytorch实现的开源语义分割项目。本文分享的c++模型几乎完美复现了python的版本。模型简介简单介绍一下U-Net模型。U-Net模型的提出是在医学图像分割中,相比于当时的其他模型结构,U-Net的分割能力具有明显优势。一个经典的U-Net结构图如下:U-Net模型采用典型

2022-05-12 15:17:12 1131

转载 libtorch (pytorch c++) 教程(四)

title: libtorch教程(四)date: 2021-01-18 19:50:16tags: libtorch本章将详细介绍如何使用libtorch自带的数据加载模块,使用该模块是实现模型训练的重要条件。除非这个数据加载模块功能不够,不然继承libtorch的数据加载类还是很有必要的,简单高效。使用前置条件libtorch提供了丰富的基类供用户自定义派生类,torch::data::Dataset就是其中一个常用基类。使用该类需要明白基类和派生类,以及所谓的继承和多态。有c++编程经

2022-05-12 15:14:13 987 1

转载 libtorch (pytorch c++) 教程(三)

基本模块搭建模块化编程的思想非常重要,通过模块化编程可以大幅减少重复的敲代码过程,同时代码可读性也会增加。本章将讲述如何使用libtorch搭建一些MLP和CNN的基本模块。MLP基本单元首先是线性层的声明和定义,包括初始化和前向传播函数。代码如下:class LinearBnReluImpl : public torch::nn::Module{public: LinearBnReluImpl(int intput_features, int output_features);

2022-05-12 15:13:10 665

转载 libtorch (pytorch c++) 教程(二)

本章讲述张量的常见操作,可以先初步了解,具体在设计损失函数等任务中可以用到。随时翻阅张量初始化libtorch(pytorch c++)的大多数api和pytorch保持一致,因此,libtorch中张量的初始化也和pytorch中的类似。本文介绍四种深度图像编程需要的初始化方法。第一种,固定尺寸和值的初始化。//常见固定值的初始化方式auto b = torch::zeros({3,4});b = torch::ones({3,4});b= torch::eye(4);b = to

2022-05-12 15:12:02 1968

转载 QT Creator + Opencv4.x + Libtorch1.7配置

前言纯c++用户而言如果要自研产品,会一个图形界面编程工具还是有必要的。大多数c++用户,如果在Windows平台开发则多使用微软全家桶,如果是Linux平台则可能是其他工具再cmake。这篇博客将记录Windows平台,QT Creator中Opencv和Libtorch的配置。网上有较多关于使用Mingw编译Opencv源码以供QT Creator使用的,事实上,只是基于Opencv和Libtorch的api做开发的话,无需编译。正确的流程为:安装QT Creator时,勾选MSVC编译器,下载op

2022-05-12 15:10:43 388

转载 pytorch部署torchscript篇

title: pytorch部署torchscript篇date: 2020-12-16 22:23:29tags: pytorchcategories: pytorchcomments: true本文图片打开失败,请参考链接修改。引言本文旨在介绍如何在Windows平台使用pytorch的c++ api部署pytorch的CNN模型,本文的部署的模型只有推理功能,这是由于torch::jit不支持部分层或者操作的反向传播。当然即使只是推理也足够许多项目运行了,部署使用的工具有visua

2022-05-12 14:59:17 1491

转载 libtorch (pytorch c++) 教程(一)

前言本教程旨在教读者如何用c++写模型,训练模型,根据模型预测对象。为便于教学和使用,本文的c++模型均使用libtorch(或者pytorch c++ api)完成搭建和训练等。目前,国内各大平台似乎没有pytorch在c++上api的完整教学,也没有基于c++开发的完整的深度学习开源模型。可能原因很多:c/c++的深度学习已经足够底层和落地,商用价值较高,开发难度偏大,一般不会开源; 基于python训练,libtorch预测的部署形式足够满足大多数项目的需求,如非产品级应用,不会有人愿意研究

2022-05-12 14:48:30 2979 2

原创 常用的数学计算C++实现

1.判断三点顺序(顺时针或者逆时针)(模板)#include <bits/stdc++.h> using namespace std; int main() { double x1, y1, x2, y2, x3, y3; while(cin>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4){ //分别输入A,B,C三点的坐标 ..

2022-04-30 09:01:54 381

迪米特法则LoD.zip

迪米特法则LoD.zip

2021-01-10

接口隔离原则ISP.zip

接口隔离原则ISP.zip

2021-01-10

单一原则SRP.zip

单一原则SRP.zip

2021-01-10

开闭原则OCP.zip

开闭原则OCP.zip

2021-01-10

里氏代换原则案例程序LSP.zip

里氏代换原则案例程序LSP.zip

2021-01-10

依赖倒转原则例子程序DIP.zip

依赖倒转原则例子程序DIP.zip

2021-01-10

gimp-master.zip|gimp-master.zip

GIMP对应源代码,里面有很多图像算法,如果想了解其中相关原理,可以参考学习一下,对大家肯定有帮助的

2020-10-17

CCD图像传感器及其视频信号处理电路的应用

CCD图像传感器及其视频信号处理电路的应用

2015-08-09

Altera FPGA应用设计》配套资料

学习FPGA必须看的书,请下载吧,Altera FPGA应用设计》配套资料

2015-08-09

数字信号处理的FPGA实现_第三版中文及英文版

数字信号处理的FPGA实现_第三版中文及英文版,好书

2015-08-09

shell脚本学习指南

shell脚本学习指南,非常适合初学者,进阶成高手。本书内容丰富,语言生动。

2014-05-08

Linux设备驱动开发详解_宋宝华

Linux设备驱动开发详解 第二版,非常适合学习LINUX驱动,讲解详细,内容生动。

2014-05-08

Linux_device_driver_src

宋宝华的《Linux设备驱动开发详解》第一版的源代码,人民邮电出版社,供有需要的同志使用。

2014-05-08

Linux设备驱动程序第三版(中文版+英文版+配套代.rar)

Linux设备驱动程序第三版(中文版+英文版+配套代)

2014-04-19

Linux设备驱动程序(第2版).pdf

Linux设备驱动程序(第2版),适合Linux2.4内核

2014-04-19

MSP430实现无线通信

好资料,大家来看看, ,,,,,,,,,,,,,,,,,,,,,,,,,,呵呵,关于MSP430实现短距离无线通信的

2009-03-24

空空如也

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

TA关注的人

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