自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Bean Huo

MicroSW, Linux kernel, IOKPP, Linux Block, IO Storage

  • 博客(66)
  • 资源 (10)
  • 收藏
  • 关注

原创 使用shmget在进程共享内存

用于Linux进程通信(IPC Inter-Process-Communication)中,共享内存作为一种方便而且有效的手段, 我们在程序中经常看到。其中共享内存函数由shmget、shmat、shmdt、shmctl四个函数组成,其中shmget用来创建一个共享内存对象。 #include <sys/ipc.h> #include <sys/s...

2018-10-08 20:07:31 429

原创 enum 类型到底有多大

这里有一个问题:#include typedef enum { CAN1 = 1, CAN2, CAN3, CAN4,} Enum_8bit;typedef enum { IP4 = 0x1234, IP5 = 0x444, IP6 = 0xffee,} Enum_16bit

2018-01-04 20:33:02 4913

原创 Automake 学习笔记之一:The Introduction / Example Of GNU Autoconf, Automake And Libtool

Autoconf/automake/libtool是GNU Autotools家族里用来自动生成makefile 和 configure的工具, 有了它, 我们就不用去写那么繁琐的各种角本文件,用它我们就可以自动生成各个角本文件,来管理和组织我们的代码项目。Autotools不但是一个工程建设系统,也可以用来做一些系统环境兼容性检测。正因为有了它, 我们可以用1. ./configure2. Make3. make install这三步曲去编译我们的项目。下面来用一个很简单的hello autoc

2018-01-03 23:53:12 748

原创 如何移植sg3_utils到andriod系统中

sg3_utils包含各种可以从用户空间发命令到scsi设备, 这篇文章主要告诉大家如何移植sg3_utils到ARM平台上。 之前我们主要用sg3_utils是在台式机或者直接复制它到目标机上去编译, 但对于大多数嵌入式设备来说, 我们需要交叉编译,尤其是对于android系统, 如果external下面没有所需要的工具包时, 我们必须对它进行交叉编译。为什么要把sg3-utils的交叉编译写一篇文章呢?只要是在我自己交叉编译的过程中,发现了一些问题,这里只是作一个总结,以帮助后来者少走弯路。

2017-12-13 00:21:34 2284

转载 linux内核kallsyms机制分析

一、前言Linux内核是一个整体结构,而模块是插入到内核中的插件。尽管内核不是一个可安装模块,但为了方便起见,Linux把内核也看作一个模块。那么模块与模块之间如何进行交互呢,一种常用的方法就是共享变量和函数。但并不是模块中的每个变量和函数都能被共享,内核只把各个模块中主要的变量和函数放在一个特定的区段,这些变量和函数就统称为符号。因此,内核也有一个module结构,叫做kernel_module

2015-02-28 16:01:03 1376

原创 ubifs挂载与写文件时的函数调用关系

对于ubifs文件系统,在做好attach与ubimkvol后,就是mount 与写了。 在mount时也有一个写的这过程,具体的函数调用过程: ubifs_write_node—->ubifs_leb_write—->ubi_leb_write—–>ubi_eba_write_leb这时才触发真正的写ubi_io_write在向ubifs的目录,写一个文件时的调用过程:ubifs_wbuf_w

2015-02-11 10:55:17 1003

原创 ubi patch for MLC nand power loss (1)

最近要出一个关于mlc nand 的powe loss的patch,我们知道,对于mlc nand,ubifs是没法用的,因为如果有powerloss出现,则必会破环原有的数据,如晨ubi的网站:UBIFS authors never tested UBI/UBIFS on MLC flash devices. Let's considersome specific aspects

2015-02-09 14:47:24 1766

原创 ubi 下ubi_ltree_entry获取与初始化过程

在ubi中,每次写读一个volume是,都会对当期的这个volume进加锁。用到的就是rw_semaphore。关于读写锁可以查看一下网上别人写的东西。获取这个锁的函数(这里我主要以write为例来说明)是:/** * leb_write_lock - lock logical eraseblock for writing. * @ubi: UBI device descrip

2015-02-04 15:38:04 849

原创 linux 下,ubi获取write mutex的问题

在linux中有,对于互斥的操作,大多用到了mutex,今天发现一个问题,同一个进程内可以多次获取到。有点像vxworks中的量子锁一样。但是会有crash打出:=============================================[ INFO: possible recursive locking detected ]3.14.0-xilinx-00012-gfb

2015-02-02 16:42:04 1202

原创 关于nand flash 特殊 features的一点点

关于nand的特性这里就不说了,这一节主要针对nand的新feature的说明。一、Copyback Operations CopyBack功能,简单的说就是,将一个页的数据,拷贝到另一个页。如果没有CopyBack功能,那么正常的做法就是,先要将那个页的数据拷贝出来放到内存的数据buffer中,读出来之后,再用写命令将这页的数据,写到新的页里面。 而CopyBack功能的好处在于

2015-01-16 16:33:54 4222

原创 关于linux下mtd_oobtest.ko的一点点分析

最近在学习nand,写完nand controller的驱动后,随手也作了一下测试,发现mtd_oobtest老是出错,从这里开始,对它做一点点的分析:当我们加载mtd_oobtest.ko模块时,下面的函数就会调用:static int __init mtd_oobtest_init(void){ int err = 0; unsigned int i; uint64_

2015-01-09 15:40:40 2635

原创 uboot下关于quad spi nor 的一点点

一般情况下,我们现在大多会把bootloader、kernel存放在spi nor中,上电时会从它里面加载到ram,这就有一个问题,如果以spi的接口去读,会很慢,但是我查看了目前最新的uboot,还是没有spi nor的quad I/O mode的支持,上电时还是用的extended mode,但在内核中有相应的的接口中来使能quad I/O.是不是看走眼了呢?好像不是,之前一起用s

2014-12-24 12:48:28 3578

原创 老版本的linux内核中mtd test 出现 mtd_oobtest: error: verify failed at 0xXXXX 问题

最近在做parallel nor的东西,在用mtd/tests/下的mtd_oobtest时,老时有下面的打印:mtd_oobtest: error: verify failed at 0xXXXmtd_oobtest会对相关的device共作五步test,其中1,3,4过了,就是在2,5这两步是老是出现上面的错误,后来发现,其实这个问题只是在老版本的内核存在,在新内核中没有。

2014-12-22 10:31:54 2437

原创 新内核 中关于spi nor的注册

3.X的内核,对于platform_device的注册和platform data,全都放在dts文件中指定,对于spi nor来说,它的整个驱动包括了master driver,master device,spi nor driver 和spi nor device.

2014-11-26 14:00:26 4524

原创 关于uboot下data abort的问题

在uboot下,经常会出现一些非常让人揪心的问题。解决这些问题的关键就是方法与方向,把握好这两点,一切问题都可以迎刃而解。同时也要自信。如下关于data abort的问题。有时我们会遇到如下的出错信息,这时CPU会reboot,

2014-06-27 15:02:38 7681

原创 latest kernel platform register

在内核中,对于platform的注册有了很大变化

2014-06-18 15:24:56 975

原创 Zynq的中断号在dts中的表示

关于zynq的中断述,在网上和

2014-06-13 14:56:38 6188

原创 xcale blob移值小节

前一段时间一直在xscale平台上作相关的validation工作,发

2014-05-29 15:44:05 1068

原创 如果在你的ubuntu在只有一个网卡的前提下增加一个IP,让开发板来与此相连

之前一直是把PC放到自己的办公桌前,这样方便开发板与此相连,但这有一个问

2014-05-16 16:19:57 1202

原创 git不同linux版本说明

在确保你安装好git后,我们就可以通过git来下载不同版本的linux kernel了,这时要先说一下

2014-05-15 09:02:37 2221

原创 cfi_cmdset_0002.c中关于等待队列的使用

1、linux下等待队列的基本概念在内核里面,等待队列是有很多用处的,尤其是在中断处理、进程同步、定时等场合。可以使用等待队列在实现阻塞进程的唤醒。它以队列为基础数据结构,与进程调度机制紧密结合,能够用于实现内核中的异步事件通知机制,同步对系统资源的访问等。

2014-05-06 09:20:56 1623

原创 linux下cfi_cmdset_0002中关于timeout探究

这里有一个关于cfi_cmdset_0002http://lists.infradead.org/pipermail/linux-mtd/2013-April/046446.html

2014-05-04 16:48:23 1963

原创 u-boot下spi norflash驱动大杂绘

总述

2014-04-29 16:48:30 6587

翻译 如何从unix/linux文件中删除ctrl-m(^M)字符

Remove CTRL-M characters from a file in UNIXDescription How to remove CTRL-M characters from a file in UNIX.You may need to do this when you import a text file from MS-DOS (or MS-Windows), a

2014-04-22 09:04:40 2980

原创 objcopy转换elf文件为bin文件

objcopy转换elf文件为bin文件$arm-linux-objcopy -O binary -R .note -R .comment -S boot.elf boot.bin#接着将 boot.elf 转换为 boot.bin#使用 -O binary (或--out-target=binary) 输出为原始的二进制文件#使用 -R .note  (或--remove-sec

2014-04-14 19:36:03 13856 1

原创 linux MTD partitions方法大杂烩

一、总述在linux中,我们一般会对flash进行一个分区,不同的地址空间存放不同的内容。一般我们只需要分3-4个区,第一个为boot区,一个为boot参数区(传递给内核的参数),一个为内核区,一个为文件系统区。而对于bootloader中只要能将内核下载到A~B区的A地址开始处就可以,C~D区的C起始地址下载文件系。这些起始地址在MTD的分区信息中能找到。所以bootloader对分区的概念

2014-04-02 16:49:48 10565 1

原创 linux下启动参数大杂烩

之前移植linux,对启动参数一直理解的不是很透彻,今天以别人的一篇文稿为开始(原文出处不详),来一步一步说说它具体的实现与每一个参数的意思.u-boot的环境变量是使用u-boot的关键,它可以由你自己定义的,但是其中有一些也是大家经常使用,约定熟成的有一些是u-boot自己定义的,更改这些名字会出现错误下面的表中我们列出了一些常用的环境变量,  环境变量

2014-04-02 08:35:25 1273

原创 intel xscale PXA270 porting :unsupported machine ID大杂烩

在移植linux kernel时,输出booting the kernel,就再也没有输出信息问题解决。

2014-03-04 16:44:02 1432

原创 uboot学习之cp命令

uboot下cp下命令执行过程

2014-03-01 16:22:19 4903

原创 Astyle使用方法

在Source Insight集成Astyle下载地址:      Windows平台下也有好多人都喜欢用SourceInsight编辑C/C++程序,但是SourceInsight没有提供对代码格式化的功能,如果将Artistic Style集成到SourceInsight中,那就可以为它扩展出代码格式化的功能了。      假定AStyle.exe的目录是“C:\Artisti

2014-02-21 13:20:04 15044 1

原创 uboot 2012.10移植到at91sam9260ek草稿之一

准备:之前一直用的uboot是1.3的,由于去年的换工作,在新的岗位上,好多产口的uboot 已经不用1.3这样的老版本了,本着总结与学习的态度,我想把2012.10再移植一次,移植到at91sam9260ek的板子上,这前对于1.3.4可以直接在http://www.at91.com/linux4sam/bin/view/Linux4SAM/U-Boot上下载,同时也可以下载到补丁。这样可以

2014-02-19 22:34:13 1744

原创 关于uboot下cp.b如果两个地址同为flash地时,buffer无法正常写的原因

第一、cp.b命令说明cp [.b, .w, .l] source target count       - copy memorycp命令可以在内存中复制数据块,包括对Flash的读写操作。第1个参数source是要复制的数据块起始地址,可以是sdram的地址,也可以是norflash的址址。第2个参数target是数据块要复制到的地址。这个地 址如果在Flash中, 那么会直接调用写Flash的函数操作。所以

2014-02-19 22:32:20 4072

翻译 监控 Linux 性能的 18 个命令行工具

对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作。在IT领域作为一名Linux系统的管理员工作5年后,我逐渐认识到监控和保持系统启动并运行是多么的不容易。基于此原因,我们已编写了最常使用的18个命令行工具列表,这些工具将有助于每个Linux/Unix 系统管理员的工作。这些命令行工具可以在各种Linux系统下使用,可以用于监控和查找产生性能问题的原因。这个命令行工具列

2014-02-18 19:55:26 856

原创 ubuntu 下make menuconfig的支持

在ubuntu 12的版本,一般不会安装ncurses library库,而它正我们运行make  menuconfig正需要的一个库文件。所以下面我们来看看如何安装这库。在这之前我们一定要让我们的ubuntu支持apt-get。第一步:配置proxy在下面两个文件中增加下面的内容:1)#/.bashrc   export http_proxy=http://username:

2014-01-24 14:40:15 2488

转载 转载一篇关于 哈弗结构与冯诺依曼 的文章

二者的区别是冯诺伊曼结构的程序空间(地址空间)和数据空间不分开,而哈佛结构的程序空间分开。             哈佛结构强调了总体的系统速度以及通讯和处理器配置方面的灵活性,重在对效率的要求,似乎从这点就可以看到冯诺伊曼的局限性及不足,关于这个问题,有人说51地址线复用,就是冯诺依曼结构。       很多入门的书上基本上都说:由运算器、控制器、存储器、输入设备、输出设备组

2013-12-25 11:37:23 1966

原创 vxworks获取系统时间编程

#include //头文件unsigned int timeLen;struct timespec tp;struct tm timeBuffer;time_t nowSec;char datetime[64];/* prepare the time stamp */(void)clock_gettime(CLOCK_REALTIME, &

2013-12-12 10:05:54 8639

原创 Vxworks下flash驱动编写流程

Vxworks下flash系统结构图:作为BSP开发人员,我们要实现的是MTD和socket两块,其它的是由文件系统自己守成的。  MTD层 该层提供Flash 设备识别,读写,擦除,地址映射函数的具体实现。该层实现由 Flash 驱动开发人员完成。该层将实现在BSP 下tffsConfig.c 以及 tffsXXX.c 文件中。其中tffsConfig.c定义有MTD

2013-11-22 17:12:55 2632

转载 利用udev、sys动态创建linux设备结点

利用udev、sys动态创建linux设备结点作者:刘洪涛,华清远见嵌入式学院讲师。在Linux2.6内核中,devfs被认为是过时的方法,并最终被抛弃,udev取代了它。Devfs的一个很重要的特点就是可以动态创建设备结点。那我们现在如何通过udev和sys文件系统动态创建设备结点呢?下面通过一个实例,说明udev、sys动态创建设备结点的方法。注意代码中红色的部分是为了实现动态创建

2013-08-16 14:25:01 845

原创 2.6.33中关于at91sam9260的i2c controller驱动的问题

在为at91sam9260移植2.6.33内核的I2C时,直接用driver/bus/i2c-at91.c这个iic的adapter驱动是不能用的,而且在makemenuconfig时,在devicedriver/i2c菜单下是看不到它的选项的。这是为什么呢?

2013-08-12 14:41:53 2207

转载 Linux驱动--定时器timer小记

内核中定时器是一个基础的功能,很多的驱动程序都会用到定时器进行定时或延时,当然比较短的延时也可以使用ndelay和udelay这样的函数,但是这些函数都是以浪费机器周期来获得延时的,所以还是应该避免使用。下面介绍一下定时器的内容:#include  //头文件//主要的结构体文件struct timer_list {  struct list_hea

2013-07-03 18:07:29 1636

si4431布板技术要求

si4431布板技术要求 si4431布板技术要求 教你进行RF的布线技术

2010-07-24

PDF.Password.Remover.v3.0

PDF.Password.Remover.v3.0.rarPDF.Password.Remover.v3.0.rarPDF.Password.Remover.v3.0.rarPDF.Password.Remover.v3.0.rar

2010-08-13

自动规范代码格式工具Astyle

之前一直找一个可以自动规范代码格式工具,用了很多,本人觉的还是这个好用,简单还是开源的,里面有源代码,有需要的同学可以看看。   同时可以在Source Insight集成Astyle

2014-02-21

华为射频基础知识培训

华为射频基础知识培训华为射频基础知识培训华为射频基础知识培训华为射频基础知识培训华为射频基础知识培训华为射频基础知识培训

2010-07-26

嵌入式系统设计师历年试题

嵌入式系统设计师历年试题,嵌入式系统设计师历年试题

2009-07-14

linux0.11内核源码及详解

linux0.11内核源码及详解 kernel 0.11

2009-10-15

C语言实战105例:TP312C W375

C语言实战105例 随书资源 linux c

2009-10-15

PDF密码破解工具

PDF文档破解工具,绿色的,决对好用.pdf password recover 3.0

2013-08-04

protues_ARM7

protues下ARM7实验,ARM7 iic

2009-10-15

空空如也

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

TA关注的人

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