自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

宽简厚重—博约

专注于Camera录像、拍照、图像融合、图像畸变校正

  • 博客(304)
  • 资源 (15)
  • 收藏
  • 关注

原创 Linux中块设备驱动程序分析

基于《Linux设备驱动程序》书中的sbull程序以对Linux块设备驱动总结分析。开始之前先来了解这个块设备中的核心数据结构:struct sbull_dev {        int size;                       /* Device size in sectors */        u8 *data;                       

2014-07-04 10:39:11 1809

转载 进程上下文和中断上下文、原子上下文的区别

内核空间和用户空间是现代操作系统的两种工作模式,内核模块运行在内核空间,而 用户态应用程序运行在用户空间。它们代表不同的级别,而对系统资源具有不同的访问权限。内核模块运行在最高级别(内核态),这个级下所有的操作都受系统信 任,而应用程序运行在较低级别(用户态)。在这个级别,处理器控制着对硬件的直接访问以及对内存的非授权访问。内核态和用户态有自己的内存映射,即自己的 地址空间。  系统的两种不同

2014-03-26 20:03:19 4573

转载 Linux内核设计与实现(8)---中断和中断处理

之前写过中断相关的文章了,详细分析过ARM底层中断实现过程,这篇文章着重从操作系统设计层面理解中断系统。1.中断中断:是外围设备产生的异步事件,不同设备,中断号不同;比如在经典PC上,IRQ 0是时钟中断,IRQ 1是键盘中断;对于连接于PCI总线上的设备,中断还可以是动态分配的。异常:与中断不同,异常的产生必须考虑与处理器时钟同步,比如除零,缺页,软中断等,都是由处理器自身产生的同步

2014-03-26 19:08:10 979

原创 Uboot移植之board.c中函数指针数组

typedef int (init_fnc_t) (void);    //int InitFunction() (void);此时表示申明了一个函数名为InitFunction的函数, 函数没有任何的形参,返回值类型为int型。对于 typedef int(init_fnc_t) (void); 就是对一个 int (void)类型的函数类型进行取别名init_fnc_t。 我们可以利用这个别名

2014-03-12 13:43:52 1370

原创 Linux下获取硬盘相关信息

熟悉Linux的都知道,Linux下硬盘的命名规则是had、hdb…sda、sdb之类的。但是,如何才能知道机器上到底有多少块硬盘呢?    刚开始,我以为/dev目录下会有所体现结果我发现设备文件存在并不代表这个设备。那么怎么办才好呢。后来我发现fdisk可以得到硬盘的数量。于是就阅读了一下fdisk的源代码。果然找到了Linux获取硬盘数量的方法。实例代码如下:    #include

2014-03-12 10:12:10 6002 1

原创 Uboot之u-boot.lds的链接脚本

OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")OUTPUT_ARCH(arm)ENTRY(_start)SECTIONS{ . = 0x00000000; . = ALIGN(4); .text : { cpu/arm920t/start.o

2014-03-12 10:11:36 2584

转载 Hadoop中TeraSort算法分析

1、概述1TB排序通常用于衡量分布式数据处理框架的数据处理能力。Terasort是Hadoop中的的一个排序作业,在2008年,Hadoop在1TB排序基准评估中赢得第一名,耗时209秒。那么Terasort在Hadoop中是怎样实现的呢?本文主要从算法设计角度分析Terasort作业。2、算法思想实际上,当我们要把传统的串行排序算法设计成并行的排序算法时,通常会想到分而治之的策略

2013-12-13 10:39:56 2838

转载 测试眼里的Hadoop系列 之Terasort

TeraSort是Hadoop的测试中很有用的一个工具,但以前只是粗略的知道它的功能和用法,简单的用它做了几个测试用例。实际上,对于这种比较通用的工具,如果能够了解它更多一些的话,对于理解Hadoop是很有帮助的,同时也可以更好的利用它来帮助测试。最近有点时间,就了解了一些它的背景,代码实现原理等等,就先记录下来吧。1. Hadoop与Sort BenchmarksSortBenchmar

2013-12-13 10:25:53 10174 4

原创 Shell中实现类似于结构体/数组功能的脚本

#!/bin/bash#ST1, ST2,ST3存放字符串,通过数组下标访问数据# Struct {#  STRING A#  STRING B#  STRING C# } Su;ST1="Quannan Jinlong Mujin Nanjing Longyuanba Bitou"ST2="Xiancheng Zheng Cun Zheng Zhe

2013-12-10 15:38:23 9863

原创 2014索尼校园招聘笔试

时间:2014-11-02地点:上海交通大学闵行校区下院考试时间:共2.5小时,前60分钟,基础题考试,后90分钟技术笔试1. 基础题考试       主要就考些很基础的东西,都是单项选择,前15题是英语的单项选择,考查英语的基本功—词汇。后面接着是逻辑推理题,包括数字部分和图形部分。接着是排列组合、比例题。最后是英语的阅读理解。2. 技术题(1). Linux中的

2013-11-26 14:45:24 1737

原创 常用的应用层整型编解码函数

int encode_unsigned16(    uint8_t * apdu,    uint16_t value){    apdu[0] = (uint8_t) ((value & 0xff00) >> 8);    apdu[1] = (uint8_t) (value & 0x00ff);    return 2;}int decode_unsig

2013-11-24 16:28:59 1464

原创 感受2014博通校园招聘

今年是博通第一次校园招聘,招聘职位两个,整个中国才招十几个人,所以竞争挺激烈的。宣讲会后直接接受简历,然后筛选简历,完了之后是直接面试,首面是HR面,然后才技术面。

2013-11-03 09:47:49 1471

转载 优秀程序员不知道的20个位运算技巧

一提起位运算,人们往往想到它的高效性,无论是嵌入式编程还是优化系统的核心代码,适当的运用位运算总是一种迷人的手段,或者当您求职的时候,在代码中写入适当的位运算也会让您的程序增加一丝亮点,最初当我读《编程之美》求“1的数目”时,我才开始觉得位运算是如此之美,后来读到 《Hacker's Delight》,感慨到Henry S.Warren把位运算运用的如此神出鬼没,很多程序都十分精妙,我觉得在一

2013-11-03 09:42:36 1035

转载 IT求职经验总结——面试和准备策略

风风火火的求职经历断断续续持续了大概2个月,最匆忙的时候,可以一天赶3个场子,有心灰意冷,也有身心俱疲。幸好最后结果还算好,所以写个东西,主要还是希望师弟师妹可以从中受到一些启发吧。首先,楼主的专业是计算机,所以这个求职经历主要也更加切合计算机类的求职无疑。(后记:十分荣幸这篇文章,被CSDN收录到热文当中,并且有很好的排名。这让我觉得受宠若惊,此文记录的基本就本人找工作总结的一些经验

2013-10-30 11:05:30 1003

原创 数据结构.二叉树的基本操作(C语言实现)

#include"bintree.h"#include#includevoid print(Item item){ printf("%d ",item);}BiTree InitBiTree(BiTNode *root){     BiTree tree = root;     return tree;}BiTNode *MakeNode(Item

2013-10-28 21:08:17 4324

原创 库实现之分配内存对齐的程序aligned_malloc和aligned_free函数

分配内存管理对齐的程序void *aligned_malloc(int size, int alignment){      void *ptr = (void*)malloc(size + alignment);      if (ptr)      {            void * aligned =(void *)(((long)ptr + alignment)

2013-10-28 08:51:13 9777 3

原创 2014英伟达校园招聘-上海

时间:2013-10-19地点:上海交通大学中院楼申请职位:嵌入式系统工程师1. 指针数组和数组指针、函数指针、指针函数2. 存储对齐3. Getmemory问题4. 6进制转换成10进制5.  时钟方向的矩阵6. 4*4键盘程序7. 模拟电路并画波形8.  图相关9.智力测试题10.Java垃圾回收机制11。 虚函数

2013-10-19 19:04:03 7366

原创 2014百度校园招聘-上海站

时间2013-10-13; 地点复旦大学第四教学楼;网申职位:软件开发工程师1、 描述OSI(开放系统互联基本参考模型)七层结构。2、 写出进程间数据共享的方式,至少三种。3、 描述TCP和UDP的区别,并各写出一个他们的上层协议。程序与算法设计1、 给出数组A={a_0,a_1,a_2,...,a_n}(n是可变的),打印出所有元素的组合2、 数组A中任意两个相邻

2013-10-16 14:25:21 2001

原创 数据结构.单链表(C语言实现)

#include#include#include#define TRUE    1#define FALSE    0#define OK    1#define ERROR    0#define    INFEASIBLE    -1#define    OVERFLOW    -2#define  Elemtype int typedef  

2013-10-16 10:56:37 1218

转载 高端内存和低端内存

高端内存是Linux中一个重要的概念,初涉Linux时曾经对这个概念非常迷惑。实际上这个概念比较简单,理解这个概念,需要追溯一下Linux的内存管理。          从前,CPU的地址总线只有32位,再早的就不再追溯了。32的地址总线无论是从逻辑上还是从物理上都只能描述4G的地址空间,在物理上理论上最多拥有4G内存(除了IO地址空间,实际内存容量小于4G),逻辑空间也只能描述4G的线性

2013-10-14 16:21:17 990

转载 网站日志HTTP返回代码解析

在网站日志中,我们经常会看到很多返回的http代码,如201、304、404、500等等。可是这些具体的返回的HTTP代码究竟什么含义呢,在此做一下知识普及吧,记不住不要紧,到时候看看就行了,但最主要的几个还要要清楚的。 一些常见的状态码为:  200 - 服务器成功返回网页  404 - 请求的网页不存在  503 - 服务器超时  下面提供 HTTP 状态码的完整列表。

2013-10-10 10:41:49 979

原创 数据结构.队列(C语言实现)

#include#include#include#define Status int#define OK    1#define ERROR    0#define    QElemType    inttypedef struct QNode {    QElemType    data;    struct     QNode    *next;

2013-10-01 15:02:15 987

原创 数据结构.循环队列(C语言实现)

#include#include#include#define Status int#define OK    1#define ERROR    0#define    QElemtype    int#define MAXSIZE    100typedef struct {    QElemtype    *base;    int    fr

2013-10-01 15:00:08 1018

原创 数据结构.栈(C语言实现)

#include#include#include#include#define Status int#define OK    1#define ERROR    0#define    SElemtype    int#define STACK_INIT_SIZE    100#define STACKINCREMENT    10#defin

2013-10-01 14:58:20 1031

原创 基于X86平台装有Linux的中找出vmlinux

在/boot目录下没有vmlinux-2.6.xxx文件,只有经过压缩的映像文件vmlinuz-2.6.xxx。我们需要带有调试信息和符号信息的vmlinux-2.6.xxx。所以可以采用以下方法试试:ls /usr/src查看此目录下安装了哪些module。应该会有linux-header-2.6.xxxx-comon等等文件。这时,可用aptitude search $(u

2013-09-21 18:58:00 2169

转载 struct stat结构体示例

//! 需要包含de头文件#include #include int stat(const char *filename, struct stat *buf); //! prototype,原型struct stat{    dev_t       st_dev;     /* ID of device containing file -文件所在设备的ID*/

2013-09-21 18:57:13 895

原创 进程调度、上下文切换

多道程序设计的目的:无论何时都有进程在运行,从而使CPU利用率达到最大化分时系统的目的:在进程之间快速切换CPU以便用户在程序运行时能与其进行交互。作业队列:进程进入系统时,包括系统中的所有进程就绪队列:驻留在系统内存中的就绪的、等待运行的进程设备队列:等到特定I/O设备的进程列表进程调度队列图:就绪队列————————————>CP

2013-09-16 11:10:15 2847

翻译 Shell脚本调试技术

一. 前言shell编程在unix/linux世界中使用得非常广泛,熟练掌握shell编程也是成为一名优秀的unix/linux开发者和系统管理员的必经之路。脚本调试的主要工作就是发现引发脚本错误的原因以及在脚本源代码中定位发生错误的行,常用的手段包括分析输出的错误信息,通过在脚本中加入调试语句,输出调试信息来辅助诊断错误,利用调试工具等。但与其它高级语言相比,shell解释器缺乏相应的调

2013-09-05 16:01:27 878

转载 The Linux SCSI Generic (sg) Driver(使用说明)

在工作中,由于要对写的代码进行测试,主要需要判断数据包返回值的正确性。测试命令如:SES,SPC,SSP,SMP中涉及到的命令。觉得上面的网址挺好的,现在就来看看,整理整理,以备后用。下面主要针对sg上面的三个命令集进行说明。1:Utilities: sg3_utils and sg_utilsThe sg3_utils package contains utilities that

2013-08-29 15:48:13 7855

转载 MACHINE_START分析

在友善mini2440提供的linux2.6.32.2内核中,有如下定义:MACHINE_START(MINI2440, "FriendlyARM Mini2440 development board").phys_io = S3C2410_PA_UART,.io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,.boot_pa

2013-08-12 13:32:54 1110

转载 shell脚本中的进度指示器

在脚本或者程序运行时间较长时,为终端用户提供反馈信息,表示脚本或程序在辛勤工作,是非常重要的。本文将介绍常见的两种进度指示器(一系列原点和一条旋转线)以及一些其他提供进度指示的工具。1. 使用一系列原点来指示进度?123456789101112131415161718#!/bin

2013-08-04 13:50:28 6754

原创 从命令行获取参数address_parse函数

从命令行获取参数,先看代码:static void address_parse(    BACNET_ADDRESS * dst,    int argc,    char *argv[]){    unsigned mac[6];    unsigned port;    int count = 0;    int index = 0;    if (ar

2013-07-28 13:47:55 1322

原创 获取磁盘块设备描述符bdget_disk和分区块设备描述符bdev

先看代码及注释:/** * bdget_disk - do bdget() by gendisk and partition number * @disk: gendisk of interest * @partno: partition number * * Find partition @partno from @disk, do bdget() on it. *

2013-07-27 21:57:04 2386

原创 ISCSI工作流程target和initiator

随着企业级的数据呈指数增长,传统的集中式存储方案已无法满足其存储要求,因而存储区域网(storage area network,SAN)技术被广泛应用,但其存在距离短、价格贵和构建复杂等不足。基于iSCSI协议的IP存储技术是一种新兴的网络存储技术,它将IP网络技术集成到存储I/O之中,在构建异构的存储网络方面具有其它数据访问协议无法比拟的优势?,已经成为当前网络存储技术的研究热点。使用i

2013-07-25 16:49:46 3912

原创 Linux下获取存储介质扇区大小

通过proc文件系统获得,在proc文件系统中有一个名为partitions的文件。这个文件中包含本地磁盘的硬盘及分区信 息。根据Linux下设备命名规则,如果设备名的最后一个字符是数字就应该是分区,否则就是硬盘。 根据这个文件,还可以知道硬盘设备名称以及每个硬盘中分区的数量和每个分区的设备名称。    获取硬盘扇区大小信息:/* get size in bytes */intbl

2013-07-21 10:33:54 4856 1

转载 linux中解析命令行参数(getopt_long用法)

getopt_long支持长选项的命令行解析,使用man getopt_long,得到其声明如下:  #include        int getopt_long(int argc, char * const argv[],                  const char *optstring,                  const struct option

2013-07-19 17:35:46 827

转载 以太网卡杂记之MAC和PHY

网卡工作在osi的最后两层,物理层和数据链路层。 物理层的芯片称之为PHY。物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。 以太网卡中数据链路层的芯片称之为MAC控制器, 数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。 MAC和PHY之间的关系是PCI总

2013-07-19 16:11:24 1021

原创 MIPS处理器上安装perf

在装有debianMIPS处理器中,安装perf工具时遇到的error描述如下:下载相应内核版本,进入tools/perf目录,首先大致看下Makefile的内容,是否支持MIPS平台,然后安装perf #makeMakefile:553: DWARF register mappings have not been defined for architecture mips, DWAR

2013-07-18 09:49:23 2340

原创 创建设备文件时遇到的error

最近在做BACnet协议栈开发,在做Linux设备驱动程序时需要使用GPIO口作为控制信号,于是Employing char device driver时遇到一些Bug,需要去Fix。#insmod s3c2440_gpf.ko  //安装模块#lsmod                   //查看主设备编号,假设为xxx.#mknod /dev/gpf c xxx 0

2013-07-06 22:09:55 1065

原创 Debian下的'aptitude update'失败处理

Hit http://ftp.us.debian.org squeeze/contrib amd64 PackagesHit http://download.proxmox.com squeeze/pve amd64 PackagesFetched 1,672 B in 0s (2,041 B/s)W: GPG error: http://ftp.us.debian.org s

2013-07-05 09:17:31 1735

atom-z36xxx-z37xxx-datasheet-vol-2-329518.pdf

Intel Baytrail平台 Z3735G/Z3735F系列的芯片手册卷2,总共4274页。里面包括了芯片的详细描述、寄存器访问方法、内存映射访问方法、SDIO、EMMC、GPIO、I2C、SPI、USB寄存器等描述

2020-03-31

Linphone-Qos技术.pdf

1、RTP统计:丢包、抖动、时延、使用带宽; 2、RTCP ; 3、TOS /DSCP; 4、RSVP资源预留; 5、Jitter buffer; 6、自适应抖动补偿; 7、自动调整发送比特率;

2020-03-21

ctxSip-master.zip

基于SIP.js的Javascript SIP客户端。 ctxSip是一个基于Javascript的SIP客户端,它使用WebRTC和WebSockets连接到您的SIP服务器

2019-08-18

I2C BUS Specs(I2C总线通信协议规格书)

I2C通信协议规格书 I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。 主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件.在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。如果主机要发送数据给从器件,则主机首先寻址从器件,然后主动发送数据至从器件,最后由主机终止数据传送;如果主机要接收从器件的数据,首先由主器件寻址从器件.然后主机接收从器件发送的数据,最后由主机终止接收过程。在这种情况下.主机负责产生定时时钟和终止数据传送。

2017-09-09

Z3735F/Z3735G芯片手册datasheet Vol.1(atom-z36xxx-z37xxx-datasheet-vol-1)

Z37XX系列的芯片手册

2017-07-01

Mysql 5.1参考手册(中文版)

Mysql 5.1参考手册(中文版),特别详细。

2017-02-06

ext4-util源代码——制作make_ext4fs和simg2img工具

使用该工具可以直接将image文件载入ext4分区,安卓刷机必备,android

2014-11-17

上海市三级计算机系统与网络技术模拟题

此乃上海市三级计算机系统与网络技术模拟题,里面有试题答案,考试大纲、网络模拟器等全部套件

2012-10-28

为mini2440开发板建立IAR+JTAG的调试环境

从厌倦了ADS环镜,尝试到IAR中开发,为mini2440开发板建立IAR+JTAG的调试环境

2012-09-25

C程序设计语言课后答案

这是K&R第二版的<C程序设计语言>,Good

2012-09-24

嵌入式Linux应用开发手册

这是完整的韦东山的<嵌入式lInux应用开发手册>里的学习笔记,经典!

2012-09-23

嵌入式Linux驱动开发路线

嵌入式Linux驱动开发路线,仔细讲述了Linux驱动原理,要认真的学习

2012-09-23

深入浅出Makefile

本文章比较详细的介绍了Linux中Makefile编写以及应用实例

2012-09-23

Bacnet Standard

BACnet必备,楼宇自动控制实验室必备

2012-04-07

空空如也

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

TA关注的人

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