自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (7)
  • 收藏
  • 关注

转载 struct inode 和 struct file

1、struct inode──字符设备驱动相关的重要结构介绍内核中用inode结构表示具体的文件,而用file结构表示打开的文件描述符。Linux2.6.27内核中,inode结构体具体定义如下:struct inode {struct hlist_node    i_hash;struct list_head    i_list;struct list_head

2017-06-26 10:45:20 385

转载 linux内核链表实现

linux内核链表实现  内核实现的是双向循环链表,提供了链表操作的基本功能。(1)初始化链表头结点#define LIST_HEAD_INIT(name) { &(name), &(name) }#define LIST_HEAD(name) \ struct list_head name = LIST_HEAD_INIT(name)static inli

2017-06-20 11:28:24 325

原创 dlopen 介绍

dlopen 介绍#include void *dlopen(const char *filename, int flag);char *dlerror(void);void *dlsym(void *handle, const char *symbol);int dlclose(void *handle);打开一个动态链接库,并返回动态链接库的句柄。flag:

2017-06-19 11:25:54 1624

原创 glob和snprintf

glob函数        用于linux文件系统中路径名称的模式匹配。#includeint glob(const char *pattern, int flages, int (*errfunc)(const char* epath, int errno), glob_t *pglob);void globfree(glob_t *pgl

2017-06-16 11:24:31 578

原创 linux复用技术:poll

12#include int poll(struct  pollfd  *fds,  nfds_t   nfds,   int   timeout);总的来说,Poll机制会判断fds中的文件是否可读,如果可读则会立即返回,返回的值就是可读fd的数量,如果不可读,那么就进程就会休眠timeout这么长的时间,然后再

2017-06-16 11:24:00 324

原创 Udp 并发问题分析与总结

一、tcp并发与udp并发的区别       无论是epoll还是select,在观察有无数据就绪时,都是针对多个文件描述符。如果只有一个文件描述符,那么进程只要观察那一个文件描述符即可。在网络编程中,一个Socket对应一个文件描述符。Tcp协议的server在监听端口前初始化一个socket,每有一个新的连接,就新建一个socket。因此当tcp服务器面对高并发请求时,实际上有多个so

2017-06-14 09:44:07 6958

原创 守护进程和inetd超级服务器

13.1 概述守护进程(daemon)是在后台运行且不与任何控制终端关联的进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程常常在系统引导装入时启动,在系统关闭时终止。守护进程有多种启动的方法:1、在系统启动阶段,许多守护进程由系统初始化脚本启动。2、许多网络服务器将由inetd超级服务器启动。ine

2017-06-14 09:43:08 437

转载 Offsetof与container_of宏总结

1、前言  今天在看代码时,遇到offsetof和container_of两个宏,觉得很有意思,功能很强大。offsetof是用来判断结构体中成员的偏移位置,container_of宏用来根据成员的地址来获取结构体的地址。两个宏设计的很巧妙,值得学习。linux内核中有着两个宏的定义,并在链表结构中得到应用。不得不提一下linux内核中的链表,设计的如此之妙,只需要两个指针就搞定了。后续认

2017-06-13 20:03:01 304

原创 current宏

current         是指当前进程每个进程在内核态下都会开辟一个内核栈(8K或4K),一般大小为8KB,一般每个任务的thread_info结构在它的内核栈的尾端分配。这个thread_info结构是指向task_struct的。thread_info的代码在struct thread_info { struct

2017-06-13 08:58:38 599

转载 僵尸进程与孤儿进程

在探讨这个问题之前,我们先来弄清什么是进程。 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。 进程是一个具有独立功能的程序关于某个数据集

2017-06-12 15:10:23 293

原创 ubuntu卸载多余的内核

​dpkg --get-selections | grep linux-imagesudo apt-get remove linux-image-3.0.0-12-generic然后修改 /boot/grub/grub.cfg文件

2017-06-12 11:23:26 1336

原创 ubuntu中CUDA 5.5安装

​安装CUDA需要在非图形界面下进行,首先切换到虚拟控制台(ctrl + alt + F1)停止图形界面服务的运行sudo stop lightdm切换到cuda安装包所在的目录下面(cuda-~.run)sudo sh cuda-~.run 就会弹出安装界面依次输入accept --> y --> y --> 回车键 --> y --> 回车键修改环境

2017-06-12 11:23:02 477

原创 linux内核的编译(2.6.39.4)

下载源码 linux-2.6.39.4.tar.bz2把源码包复制到/usr/src下,然后解压(tar -xvf linux-2.6.39.4.tar.bz2)进入解压后的的目录, make mrproper然后开始编译内核, make menuconfig 可能会出现缺少ncurses包apt-get install libncurses5-dev进入编

2017-06-12 11:22:09 888

原创 Ubuntu中安装Nvidia闭源驱动

安装图形驱动前,要安装好下面的这些依赖包和开发工具apt-get install build-essential pkg-configapt-get install freeglut3-dev libx11-dev libxmu-dev libxi-dev libgl1-mesa libgl1-mesa-dri (编译Sample时所需的依赖包)libglu1-mesa libglu1

2017-06-12 11:20:55 3226 2

原创 apt和dpkg简要使用参考表

apt-get install 下载以及所有依赖的包,同时进行包的安装或升级。如果某个包被设置了hold(停止标志)就会被搁在一边(即不会被升级),更多hold细节请看下面。apt-get remove [--purge] 移除以及任何依赖这个包的其它包。--purge指明这个包应该被完全清除(purged),更多信息请看dpkg -P。apt-get update升级

2017-06-12 11:20:02 995

原创 linux中的重定向

当我们在shell中执行命令的时候,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件。由于文件描述符不容易记忆,shell同时也给出了相应的文件名。下面就是这些文件描述符及它们通常所对应的文件名:文件描述符输入文件—标准输入0:它是命令的输入,缺省是键盘,也可以是文件或其他命令的输出。输出文件—标准输出1:它是命令的输出,缺省是屏幕,也可以是文件。错

2017-06-12 11:19:35 531

原创 Ubuntu修改提示符

修改提示符的颜色和内容:1、打开.bashrc文件        vi    ~/.bashrc2、找到    if [ "$color_prompt" = yes ];then        在这之前加上color_prompt = yes        然后修改下面相应的PS1的内容和颜色3、第二个 PS1 为 PS1=’${debi

2017-06-12 11:18:32 971

原创 apt-get update 出现错误

1.将 /var/lib/apt/lists/partial/下的所有文件删除,一般就可以解决了2.如果还是不能解决 那么在/etc/apt/apt.conf.d/00aptitude 文件中加上一行Acquire::CompressionTypes::Order "gz";3.如果是因为版本太老而出错的话,把/etc/apt/sources.list 中 所有的arc

2017-06-12 11:17:50 954 1

原创 OpenCL读取内核cl文件

普遍上的OpenCL编程都分为两个部分,一个为主机端代码,一个为设备端代码。主机端代码的作用是:主要是负责设置设备执行代码的环境,以及与设备端的通信。设备端代码的作用是:设备上所要执行的功能函数。在主机端和设备端通信的过程中,会有一个读取设备端代码的过程。通常就是读取cl文件。因为在创建程序对象program时,需要用到这个cl文件。创建程序对象就会把这

2017-06-11 13:17:19 5107

原创 OpenCL编程之同步问题:事件

事件(event)是OpenCL中传递命令状态的对象。命令队列中的命令会生成事件,其他命令在执行之前可能要等待这些事件。用户可以创建定制事件,在宿主机和计算设备之间提供额外的一层控制。在内核中,程序员利用时间可以允许数据的移动与这些数据的相关操作重叠进行。OpenCL事件是OpenCL中传递命令有关信息的对象。事件的状态描述了相关命令的状态。可以取一下状态值。CL_

2017-06-11 13:16:28 3626

原创 gcc g++版本降级

先安装低版本的gcc和g++然后    cd    /usr/bin            sudo    mv    gcc    gcc.bak            sudo    ln    -s    gcc-低版本    gcc            sudo    mv    g++    g++.bak

2017-06-11 13:15:34 1252

转载 与内存管理相关的几个宏

这几个宏把无符号整数转换成对应的类型#define __pte(x) ((pte_t) { (x) } )#define __pmd(x) ((pmd_t) { (x) } )#define __pgd(x) ((pgd_t) { (x) } )#define __pgprot(x) ((pgprot_t) { (x) } )根据x把它转换成对应的无符号整数#defin

2017-06-11 13:14:21 353

原创 逻辑地址、线性地址、物理地址

逻辑地址            包含在机器语言指令中用来指定一个操作数或一条指令的地址。每一个逻辑地址都由一个段和偏移地址组成。线性地址           线性地址也称虚拟地址。是一个32位无符号整数,可以用来表示高达4GB的地址。物理地址            用于内存芯片级内存单元寻址。他们与从微处理器的地址引脚发送到内存总线上的电信号相对应。物理地址有3

2017-06-11 13:13:17 725

翻译 Getting Started: Building and Running Clang

Getting Started: Building and Running Clang本页面为您提供最短路径检查Clang和演示几个例子。这应该能让最小的遇到麻烦和混乱来运行它。如何你得到了你想要的结果,请考虑参与Clang社团Building Clang and Working with the Code如果你要检查和编译Clang,具体步骤如下:获得所需

2017-06-11 13:10:52 312

翻译 Getting Started with the LLVM System

Overview欢迎到LLVM!为了开始,你首先需要知道一些基本的信息。首先,LLVM有三部分。第一部分是LLVM套件。这部分包含了使用LLVM所包含的所有工具,库和头文件。它包含汇编,反汇编,位码分析器和位码优化器。他也包含了基本的回归测试,可以用来测试LLVM工具和Clang前端。第二部分是Clang前端。此组件是把C,C++,C.obj,C++.obj编译成LLVM位

2017-06-11 13:10:12 530

原创 Ubuntu编译安装LLVM

每次开机的时候都要更新系统   sudo apt-get update!!准备工作1:首先,在官网下载llvm源码包,clang包和compile-rt包。 然后,用解压llvm, 然后把clang包解压到llvm的tools文件夹里  ,再把compil-rt解压到llvm中的projects文件夹下具体步骤:cd Downloads(

2017-06-11 12:11:20 3138

原创 NULL NUL \0 EOF

NULL:   定义为0或0L或(void *)0,用于指示一个指针值是空,即什么都不指;'/0':   用且只用字符串结束符;NUL :   0x00,0值字符,可以用于结束ASCII字符串,和'/0'类似,但是在c/c++中没有定义,如果要使用的话,需要自定义为 #define NUL '/0';EOF :  通常定义为-1, 文件结束符标志,一般是ctrl+z

2017-06-11 12:09:27 405

原创 在C语言中,double、long、unsigned、int、char类型数据所占字节数

在C语言中,double、long、unsigned、int、char类型数据所占字节数和机器字长及编译器有关系: 所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的):sizeof(short int)sizeof(int)short int至少应为16位(2字节)long int至少应为32

2017-06-11 12:07:29 830

原创 printf和scanf的返回值

scanf()的返回值为成功输入的数据个数12scanf("%d%d%s",&a,&b,s); //执行成功返回3.scanf("%d%d",&a,&b);//执行成功返回2.如果在输入的过程中scanf("%d%d",&a,&b);由于某种原因只有a输入成功了则返回1,a、

2017-06-11 12:05:16 419

原创 栈和队列

栈栈是一种后进先出(LIFO)的容器。栈限定了只能在栈顶进行插入或删除操作。跟栈相关的是递归操作。因为每次递归都会自动创建栈来保存当前的状态。也就是说,递归实现的算法都可以用栈来实现。栈的两种基本操作:Push:在栈顶插入一个元素。Pop:将栈顶元素弹出。栈的实现分为两种:顺序栈:使用数组来实现的栈。顺序栈的实现简单,但是会存在栈满的情况

2017-06-11 11:56:54 300

原创 centos7安装opencl环境

CentOS7+AMD+OpenCL环境搭建因为原来的SOC的除了问题,导致自己重新搭建环境。重新搭建环境时,遇到了不少问题。现在将过程整理成文档,以供自己以后参考。准备工作centos7镜像(CentOS-7.0-1406-x86_64-DVD.iso)amd显卡驱动包(radeon-crimson-15.12-15.302-151217a-297685e.zip)amd app sdk3.

2017-06-11 11:48:13 8512

mali dp550 datasheet

The Mali-DP550 is an advanced display processor intended for multimedia subsystems that run on operating systems This book is for system designers, system integrators, and verification engineers who are designing a System-on-Chip (SoC) device that uses the Mali-DP550 Display Processor

2024-05-15

91030M芯片设计文档

91030M 是一颗32G 带宽的二层以太网交换芯片。集成了8 路千兆电口PHY、2 路10G Serdes、4 路1G Serdes、2 路RGMII/GMII/MII 接口;内部集成了RISC_VCPU,主频400MHz,支持8/16bits DDR3 接口,最大2Gb 内存;支持2 路UART 接口、1 路JTAG 接口、2 路QSPI 和1 路I2C/MDIO 接口,最大支持24 路GPIO。 适合人群:芯片设计人群,芯片开发人群

2024-05-15

UEFI下图形驱动开发手册

This document lists required, recommended, and optional UEFI protocols and elements for graphics controller classes of device drivers. It also provides brief notes on design strategies and implementation for each protocol.

2023-11-27

FSL91030M datasheet

FSL91030M是一款32G带宽的二层以太网交换芯片,采用WireBond BGA676封装。 FSL91030M集成了8路千兆电口PHY,支持10/100/1000BASE-T及100BASE-FX功能;集成2路10G Serdes,可支持1000BASE-X、SGMII、QSGMII、O-USGMII和10G BASE-R功能;集成4路1G Serdes,可支持1000BASE-X和SGMII功能;4路1G Serdes及4路千兆电口PHY组合可配置成为4路Combo口。FSL91030M还支持2路RGMII/GMII/MII接口,作为可扩展管理接口。 FSL91030M集成了RISC_CPU,主频400MHz,支持8/16bits DDR3接口,最大支持2Gb DDR,速率1600MHz(时钟频率800MHz)内存;支持2路UART接口、1路JTAG接口、2路QSPI、1路I2C/MDIO接口和24路GPIO接口。

2023-11-27

Hi3531DV200 DDR3参数配置方法

Hi3531DV200 DDR3参数配置方法

2023-11-27

长工微is6608调试软件

IS6608A 是一款低压大电流且可以多相并联的DC-DC 电源芯片,该芯 片支持PMBUS 协议(IIC 协议的一种),因此需要一个上位软件与之通讯并加以 控制,IS6608A GUI 集成PMBUS 协议,用户可使用软件更为简易地更改内部配置, 并且可以对其就行烧录MTP,以到达调试芯片的目的,该软件至多可同时控制8 个不同的地址

2023-11-27

清华老师教你写文献综述.pdf

清华大学老师ppt课件。讲述如何一步一步好文献综述,详细具体的方法,整理了一套框架,帮助更好的理解文献综述的写法。

2020-03-08

基于单幅图像的快速去雾源码实现

基于单幅图像的快速去雾算法的源代码,可以直接运行的vs2010工程。去雾算法研究的同学可以看看。一种比较快速的图片去雾算法的工程实现。此算法耗时较小,去雾效果也不错。可以用于实时处理应用之中。

2017-08-09

单幅图像快速去雾算法

一种实时的图像去雾算法,速度快,效果好

2017-08-09

基于单幅图像的快速去雾

一种能够实时去雾技术的文章。去雾速度快,去雾效果好。

2017-08-09

OpenCL in action.pdf 英文,带书签

这是入门OpenCL最好的一本书。比OpenCL编程指南讲的好多了,而且每个程序都可以下载完整的代码。

2015-01-03

CUDA(深入浅出谈CUDA)

中文版本的CUDA介绍的电子书,是pdf格式的,希望对CUDA有兴趣的人有所帮助。

2014-08-04

空空如也

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

TA关注的人

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