自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

韩大卫@blog

梦想像是一块瑰丽至极的宝石,它发出美丽灼耀的光芒吸引着人一路而寻,没人知道一个灵魂要走多远才会和它相遇, 但如果得到它,生命中所有的痛苦都会得到释放,快乐和爱会充满你的世界

  • 博客(29)
  • 资源 (21)
  • 收藏
  • 关注

原创 uboot 和linux 下flash 写入速度差异分析

韩大卫@吉林师范大学2015.1.27. 转载请表明出处*********************************************uboot 和linux 下flash 的写入速度不一样, 主要原因是两者使用的延迟最小延时时间不一样. linux比较大. 原因如下:flash 芯片手册中有两个重要的时间参数:

2015-01-27 22:23:22 3079

原创 Uboot下的Nor Flash的驱动以及使用

Uboot 下 CFI Nor Flash 的使用韩大卫@吉林师范大学2015.1.23Flash : Micron Technology. 32MB.Uboot: 2_3_0CPU平台: Cavium Inc交叉编译器: mips64-octeon-linux-gnu-gcc (Cavium Inc. Version: 2_3_0 build 128) 4.3.3

2015-01-23 18:36:34 8983

原创 根据epc 定位linux kernel panic 位置

关于内核报错 “Unable to handle kernel paging request at virtual address” 的问题, 绝大多数都是由于程序使用了不可用的指针而引起的, 定位这类问题的办法很简单,也希望我的描述足够简单实用

2014-12-10 15:02:14 14760 1

原创 修复mac 下 make menuconfig 的bug以及自定义make menuconfig界面

自定义make menuconfig界面

2014-12-08 15:13:34 4243

原创 Linux环境下libpcap库源代码分析

linux环境下libpcap 源代码分析韩大卫@吉林师范大学libpcap 源代码官方下载地址:git clone https://github.com/the-tcpdump-group/libpcap.gittcpdumpm源代码官方下载地址:git clone git://bpf.tcpdump.org/tcpdumptcpdump.c使用libpcap里的pcap

2013-10-17 10:53:18 4479 2

原创 linux环境下tcpdump源代码分析

Linux 环境下tcpdump 源代码分析韩大卫@吉林师范大学tcpdump.c 是tcpdump 工具的main.c, 本文旨对tcpdump的框架有简单了解,只展示linux平台使用的一部分核心代码。Tcpdump 的使用目的就是打印出指定条件的报文,即使有再多的正则表达式作为过滤条件。所以只要懂得tcpdump -nXXi eth0 的实现原理即可。进入main之前,先

2013-10-11 13:13:02 5748

原创 Linux 下访问PHY芯片寄存器

Linux 下smi/mdio总线通信韩大卫@吉林师范大学下面代码是在用户层访问smi/mdio总线, 读写phy芯片寄存器的通用程序。Linux内核2.6以上通用。将下面代码编译后,将可执行文件a.out 重命名为mdiomdio eth0 1 读取phy寄存器1的数值mdio eth0 0 0x1120 将0x1120写入 phy寄存器1eth0 为m

2013-07-23 19:00:43 18278

原创 Linux下SMI总线驱动

Linux下smi/mdio总线驱动韩大卫@吉林师范大学MII(媒体独立接口), 是IEEE802.3定义的以太网行业标准接口, smi是mii中的标准管理接口, 有两跟管脚, mdio 和mdc ,用来现实双向的数据输入/输出和时钟同步。mdio主要作用用来配置/读取phy的寄存器, 实现监控作用。 Smi总线也就是mdio总线。 以mips 架构的caium octeon 处理器

2013-07-22 12:35:40 5552

原创 cavium octeon 处理器启动总线Bootbus 简介

cavium octeon 处理器启动总线Bootbus 简介: 韩大卫@吉林师范大学 Boot-bus(启动总线)是cavium octeon处理器的一种用于启动系统的硬件. CPU通过boot bus和非易失性设备相连, 比如NOR/NAND flash, CF卡, ROM等, 这些设备可以作为CPU的初始化引导地址. Boot bus总线协议是灵活的,

2013-07-04 11:02:54 3578

原创 Linux 获取设备树源文件(DTS)里描述的资源

Linux 获取设备树源文件(DTS)里的资源韩大卫@吉林师范大学在linux使用platform_driver_register() 注册 platform_driver 时, 需要在 platform_driver 的probe() 里面知道设备的中断号, 内存地址等资源。这些资源的描述信息存放在 resource 数据结构中, 相同的资源存放在一个树形树形数据结构中,

2013-07-03 16:06:09 7064

原创 Ubuntu 一键安装Adobe Flash Player

Adobe Flash Player 下载链接:http://get.adobe.com/cn/flashplayer/进入下载页面后, 选择要下载的版本, 比如ubuntu 环境可下载 .tar.gz 文件。之后adobe会该根据你的操作系统环境下载相应的压缩文件,我下载后的是: install_flash_player_11_linux.x86_64.tar.gz

2013-06-05 13:43:13 1720

原创 Linux系统建立Nor Flash分区

Linux建立Nor Flash分区韩大卫@吉林师范大学接上文章系统Nor Flash芯片初始化及驱动>>, 当Nor Flash 芯片在flash芯片驱动器链表chip_drvs_list中找到并调用名为”cfi_probe”的驱动后, 完成芯片初始化阶段, 接着进入linux对Flash建立分区阶段.在 arch/mips/cavium-octeon/flash_setup.c

2013-04-22 15:02:28 3872

原创 Linux初始化Nor Flash芯片及驱动

Linux 系统初始化NOR FLash芯片及驱动 韩大卫@吉林师范大学本文旨在解析linux系统下, Nor Flash芯片的初始化大致过程, 和cfi标准类型的Flash芯片在linux系统中的底层驱动何如实现, 如何找到并调用其提供的write/read/ioctl实现函数. 在明确了上述关系后, 可用通过一个用户层的程序, 向Nor Flash芯片指

2013-04-18 15:15:21 4823 2

原创 linux下CPU注册i2c控制器(adapter)过程

无论是三星的s3c2410, 还是cavium 的octeon, AMD的amd8111等等, 任何处理器在linux下添加自己的adapter都是大致的方法, 都是实现自己的driver, 最后调用i2c-core提供的API完成整个注册. 广泛地讲, linux将任何类型的设备, 任何类型的总线等都作为文件来处理, 只不过使用了不同的数据结构的driver和device.

2013-03-14 15:17:56 3894

原创 Marvell 交换芯片DSA(分布式交换架构)功能介绍

Marvell DSA(分布式交换架构) by 韩大卫@吉林师范大学***************请参见 Marvell Prestera/Cheetah/xcat/lion 系列交换芯片手册获取更详细的说明Marvell DSA(分布式交换

2013-03-10 11:39:59 13789 5

原创 Marvell 千兆PHY芯片88E1340S/88E1340/88E1322

<!--@page {margin:2cm}pre.western {font-family:"DejaVu Sans",sans-serif}pre.cjk {font-family:"DejaVu Sans",sans-serif}pre.ctl {font-family:"DejaVu Sans Mono",monospace}p {margin-bo

2013-01-30 18:44:00 7428

原创 Ubuntu/linux在未知root密码的情况下修改root密码

在未知root密码的情况下修改root密码.Ubuntu/linux. 史上最简单实用的一种办法By 韩大卫@吉林师范大学大致上分为两步: 一, 进入可读写的root用户模式. 二, 修改root密码.开机按 F12 (或长按Shift), 进入GRUB界面.一, 选择 Advanced options for Ubuntu二, 可以看到两个模式, 1, Ubu

2013-01-22 15:23:45 2710

原创 基于交换芯片的五元组过滤功能

基于交换芯片的五元组的PCL规则过滤功能作者: 韩大卫@吉林师范大学2012.12.10Not Approved by Document ControlReview Copy Only基于Marvell 98DX51xx/81xx交换芯片的五元组等的策略规则(PCL)过滤功能.现将部分的功能的底层实现予以简单介绍.Contact author for detailed i

2012-12-14 11:23:44 4398

原创 嵌入式系统烧写uboot/bootloader/linux内核的一般方法

******************* **********作者: 韩大卫@吉林师范大学[email protected]************* *******************烧写uboot/kernel本文介绍了在嵌入式系统中烧写uboot/bootloader/kernel 的一般方法,以及如果uboot或者内核出现错误,引导

2012-11-06 14:31:07 5413 1

原创 Marvell 98DX51xx / 98DX81xx 系列交换芯片 内部初始化

//以下仅是本人的一些的理解/* Marvell 98DX51xx / 98DX81xx 系列交换芯片 内部初始化现在一些高端防火墙,流量管理等工业级网络设备使用的交换芯片几乎都来自于broadcom或marvell公司,一些高端的交换芯片售价高达数千美金,再加上几颗专用于处理报文业务的CPU(多核),还要有一颗用于管理控制系统资源(承载linux)的CPU, 这就是系统的核心的架构,

2012-09-27 18:43:15 7425 3

原创 openwrt下面创建/添加package----Makefile模版

openwrt下面创建/添加package----Makefile模版by:韩大卫@吉林师范大学**********************进入 openwrt/package/,mkdir eep以eep为示例cd eepmkdir src把代码放在src下面, src 中中的makefile 是用特定的交叉编译器编译自己的代码

2012-09-03 19:43:59 7933

原创 Linux 下 i2c switch(选路芯片mux) --- pca9548

<!--@page {margin:2cm}pre {font-family:"DejaVu Sans",sans-serif}p {margin-bottom:0.21cm}-->Linux 下 i2c switch pca9548驱动作者: 韩大卫 @吉林师范大学 现有的关于 i2c switch 资料非常少。即使阅读完官方的data

2012-08-23 09:16:00 13506 1

原创 linux设备驱动之API的实现

Linux 下API的实现作者: 韩大卫@ 吉林师范大学驱动工程师工作内容之一就是向上层应用端提供API,这个API完成并封装了全部的与硬件芯片的I/O操作。本问简单的说明了一个实现API函数的全部过程。总体上看分为:1,用户API2,用户中间层(与底层通信)3,底层中间层(寻找对应的驱动函数)4,驱动函数5,  CPU读写I/O端口。

2012-08-20 21:04:00 2027

原创 linux下通过i2c总线读写EEPROM

by 韩大卫@吉林师范大学[email protected]转载请务必表明出处。我的上篇文章《Linux下使用I2C总线读写 EEPROM(读写i2c从设备通用程序)》给出了通过IIC总线,如何读写EEPROM相应位置的内容。 但是有一些功能没有实现:比如:  只能单独操作一个寄存器地址,不能一次性写入大量内容;    只能读一个寄存器的数值,不能可选择性地一

2012-07-23 16:45:28 3033

原创 Linux下使用I2C总线读写 EEPROM(读写i2c从设备通用程序)

<!--@page {margin:2cm}pre {font-family:"DejaVu Sans",sans-serif}p {margin-bottom:0.21cm}--> Linux下使用IIC总线 读写i2c从设备寄存器by 韩大卫 @吉林师范大学[email protected]

2012-07-23 11:06:10 7377

原创 linux下的i2c与时钟芯片pcf8563通信(三)

2012/7/19                    linux下的i2c与时钟芯片pcf8563通信              by: 韩大卫 @吉林师范大学1,本程序增加了对星期寄存器(wday)的写操作。2,  本程序将i2c-test 改为rtdate 命令,并将rtdate作为最终命令发布。3,在linux下,成功地在用户层操作了时钟芯片pcf8563

2012-07-19 19:59:26 3645

原创 linux下i2c与时钟芯片pcf8563通信(二)

linux 下 i2c 的驱动 以及 与时钟芯片 pcf8563之间的通信(二)<!--@page {margin:2cm}pre {font-family:"DejaVu Sans",sans-serif}p {margin-bottom:0.21cm}--> 2012/7/10linux下i2c驱动与通信(二)by:韩大卫 @吉林师范大学

2012-07-13 18:19:38 3573

原创 linux下i2c与时钟芯片pcf8563的通信

linux下的i2c驱动以及与时钟芯片pcf8563通信过程              为更深入的了解linux下的i2c总线驱动以及通信原理,可以用一个用户程序模拟,这个程序,可以使用一个addr, 一个offset,对i2c的从设备地址为addr,寄存器地址为offset的寄存器读写操作。  在我们的版卡上时钟芯片pcf8563的i2c地址为0x51  , pcf8

2012-07-06 18:15:18 5163

原创 网络间通信socket传输任意格式任意大小的文件

最近看到很多网友写的socket程序,试验了几个,发送"Hello,world"时都没有问题,但在传输较大文件,比如一个200M的文件时,都不能成功,即使成功了,server端也存在保存的问题, 有的是乱码,也有文件大小不对的情况,这两天工作不忙,我也草草写了一些代码,实现了可以传输任意格式任意大小的文件,几位同事帮我一起做了测试,传送几百M的文件速度还是很快的,而且也没有丢数据的问题。  代

2012-04-25 14:55:43 2630

uboor 下Nor flash的驱动以及使用

uboot 下nor flash 的驱动写得很简单易懂. 也提供了擦除, 烧些等使用范例. 可以作为参考

2015-01-24

根据epc 报错定位linux kernel panic位置

关于内核报错 “Unable to handle kernel paging request at virtual address” 的问题, 绝大多数都是由于程序使用了不可用的指针而引起的, 定位这类问题的办法很简单,也希望我的描述足够简单实用. 由韩大卫@吉林师范 提供, 0分资源共享!

2014-12-10

binutils-2.16.1.tar.bz2

binutils-2.16.1.tar.bz2 , objdump 的源代码, 软件工程师必备, 0分资源共享

2014-12-09

Android Developer Tools(ADT)

Android Developer Tools(ADT) 压缩包

2014-09-11

libpcap源代码

libpcap源代码。 网络抓包API库, 网络流处理强大的库,0分分享!

2013-10-15

tcpdump 源代码分析

linux环境下的tcpdump 4.0.0 源代码分析

2013-10-11

tcpdump 源代码

tcpdump 运用libpcap进行网络报文信息处理,linux下经典又优秀的工具。强烈推荐源代码共享!

2013-10-11

linux下vim配置文件

vim编译器好用, 使用, 最为经典的配置文件

2013-05-31

linux系统Nor Flash芯片初始化及驱动

linux系统Nor Flash芯片初始化及驱动

2013-04-24

linux建立MTD分区

学习linux下建立mtd分区必须的资料

2013-04-24

在未知root密码的情况下修改root密码,ubuntu,linux.

在未知root密码的情况下修改root密码.Ubuntu/linux. 史上最简单实用的一种办法 大致上分为两步: 一, 进入可读写的root用户模式. 二, 修改root密码.

2013-01-22

交换芯片实现五元组过滤

一般来讲,ACL是用户层上下发的规则, 最终通过交换芯片或CPU来实现的,是一种用户层上定义的规则.PCL是底层的概念, 是交换芯片内部对此功能的定义,驱动工程师在操作系统底层软件提取出此交换芯片的PCL过滤功能(比如根据五元组,根据VLAN-ID, 根据是否ARP报文等等),封装成API类库供用户层使用, 用户层就可以综合使用这些API做成一条条过滤规则.

2012-12-14

烧写uboot/kernel

本文介绍了在嵌入式系统中烧写uboot/bootloader/kernel 的一般方法,以及如果uboot或者内核出现错误, 引导失败等情况时如何重新烧写uboot/kernel.

2012-11-06

Marvell 98DX51xx / 98DX81xx 系列交换芯片 内部初始化

仅是本人的一些浅陋的理解,有经验的驱动工作者请勿浪费您宝贵时间于此

2012-09-27

linux下i2c switch -- pca9548

现有的关于 i2c switch 资料非常少。即使阅读完官方的datasheet.也不能写出完全正确的操作。 因为内核中的驱动本身不是那么完善的。还有一些资料是单片机编程的,可惜在linux上并不能成功执行.但是在现有的pca954x 驱动函数中,没有实现自动对内部控制寄存器进行相应配置,这样的话就需要额外的写一个附加的配置函数,实现这种功能

2012-08-23

linux设备驱动之API的实现

本文简单的说明了一个实现API函数的全部过程。 总体上看分为: 1,用户API 2,用户中间层(与底层通信) 3,底层中间层(寻找对应的驱动函数) 4,驱动函数 5, CPU读写I/O端口。 我们主要的工作就是这个驱动部分

2012-08-21

linux下使用IIC总线读写EEPROM

1,本文给出了linux 下使用IIC总线读写EEPROM 的实现程序。 2, 本文给出了在编程中遇到的几种非常隐蔽的错误的解决方法。 3,本文的读写程序非常通用: i2c -d /dev/i2c-1 -s 0x51 0x05 18 -----Write 18 to the register: 0x05 of the i2c-slave address: 0x51 i2c -d /dev/i2c-10 0x57 0x05 ------Read the register: 0x05 of the i2c-slave address: 0x57 i2c 0x40 0x0f ----- 在默认路径下读 i2c 从设备地址为0x40的 0x0f的地址(或寄存器地址)

2012-07-23

linux下i2c总线与时钟芯片pcf8563通信(三)

1,本程序增加了对星期寄存器(wday)的写操作。 2, 本程序将i2c-test 改为rtdate 命令,并将rtdate作为最终命令发布。 3,在linux下,成功地在用户层操作了时钟芯片pcf8563的寄存器。 4,本程序考虑到了不同的系统中的rtc时钟芯片挂在不同的i2c bus的位置。、 比如:如果挂在 /dev/i2c-0 下,那么就只能打开/dev/i2c-0 进行操作,否则的话read/write 均会失败,那么这样就需要我们手动的传入参数,这需在程序中加入相应的判断条件。同时为了最大程度上做到便捷,如果不使用路径参数的话,那么程序中给出了默认路径/dev/i2c-1, 我们这样就可以直接 #rtdate -s 2012.7.19-19.36.00 修改硬件时间。 #rtdate -s 19.36.00 修改硬件时间 #rtdate -r 显示硬件时间 #rtdate -l 显示系统时间 需要手动加路径的话: #rtdate -d /dev/i2c-10 -s 18:20:30 这样可以做到在不同的嵌入式系统中,不修改代码的情况下操作时钟芯片读写硬件时间,强化了软件的健壮性

2012-07-19

linux下的i2c驱动以及与时钟芯片pcf8563通信(二)

在上篇文章的基础上,本此给出了实现完整功能的代码。 使用 -r 查询pcf8563寄存器显示rtc时间,-l显示系统时间, -s 2012.5.15-13:30:00 或者 使用-s 13:30:00 一次性向rtc写入时间。以及在写代码时候容易出现的问题,和解决办法。希望能提供给大家以帮助。by:韩大卫@ 吉林师范大学

2012-07-13

linux下的i2c驱动以及与时钟芯片pcf8563通信

为更深入的了解linux下的i2c总线驱动以及通信原理,可以用一个用户程序模拟,可以使用一个addr, 一个offset,对i2c的从设备地址为addr,寄存器地址为offset的寄存器读写操作。

2012-07-09

空空如也

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

TA关注的人

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