linux
文章平均质量分 65
BeanHuo
linkedin.com/in/bean-huo-8299b759
展开
-
使用shmget在进程共享内存
用于Linux进程通信(IPC Inter-Process-Communication)中,共享内存作为一种方便而且有效的手段, 我们在程序中经常看到。其中共享内存函数由shmget、shmat、shmdt、shmctl四个函数组成,其中shmget用来创建一个共享内存对象。 #include <sys/ipc.h> #include <sys/s...原创 2018-10-08 20:07:31 · 318 阅读 · 0 评论 -
老版本的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 · 2307 阅读 · 0 评论 -
关于6410中4bit s3c_nand_read_page_4bit函数疑问
对于s3c2410/6410都是大家所熟习的开发板和学习板,最近看nand的ecc,看了6410的硬件ecc,其它没有什么问题,我之前看的2410的没有多大的区别,可是对于读,就是一直不明白为什么在读完data后,有一个write_buf的操作,如下:static int s3c_nand_read_page_4bit(struct mtd_info *mtd, struct nand原创 2015-01-27 16:19:47 · 923 阅读 · 0 评论 -
新内核 中关于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 · 4409 阅读 · 0 评论 -
latest kernel platform register
在内核中,对于platform的注册有了很大变化原创 2014-06-18 15:24:56 · 929 阅读 · 0 评论 -
Zynq的中断号在dts中的表示
关于zynq的中断述,在网上和原创 2014-06-13 14:56:38 · 6064 阅读 · 0 评论 -
xcale blob移值小节
前一段时间一直在xscale平台上作相关的validation工作,发原创 2014-05-29 15:44:05 · 1024 阅读 · 0 评论 -
怎么样通过使用git来创建并提交你的第一个linux内核patch
原文地址:HOWTO: Create and submit your first Linux kernel patch using GIT翻译 2014-05-05 22:18:17 · 1167 阅读 · 0 评论 -
如果在你的ubuntu在只有一个网卡的前提下增加一个IP,让开发板来与此相连
之前一直是把PC放到自己的办公桌前,这样方便开发板与此相连,但这有一个问原创 2014-05-16 16:19:57 · 1148 阅读 · 0 评论 -
git不同linux版本说明
在确保你安装好git后,我们就可以通过git来下载不同版本的linux kernel了,这时要先说一下原创 2014-05-15 09:02:37 · 2054 阅读 · 0 评论 -
intel xscale PXA270 porting :unsupported machine ID大杂烩
在移植linux kernel时,输出booting the kernel,就再也没有输出信息问题解决。原创 2014-03-04 16:44:02 · 1386 阅读 · 0 评论 -
linux下启动参数大杂烩
之前移植linux,对启动参数一直理解的不是很透彻,今天以别人的一篇文稿为开始(原文出处不详),来一步一步说说它具体的实现与每一个参数的意思.u-boot的环境变量是使用u-boot的关键,它可以由你自己定义的,但是其中有一些也是大家经常使用,约定熟成的有一些是u-boot自己定义的,更改这些名字会出现错误下面的表中我们列出了一些常用的环境变量, 环境变量原创 2014-04-02 08:35:25 · 1193 阅读 · 0 评论 -
如何从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 · 2881 阅读 · 0 评论 -
share 【详解】如何编写Linux下Nand Flash驱动
写的很好,详细地址:http://www.crifan.com/files/doc/docbook/linux_nand_driver/release/html/linux_nand_driver.html原创 2014-12-08 13:58:02 · 672 阅读 · 0 评论 -
关于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 · 2492 阅读 · 0 评论 -
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 · 4695 阅读 · 1 评论 -
如何移植sg3_utils到andriod系统中
sg3_utils包含各种可以从用户空间发命令到scsi设备, 这篇文章主要告诉大家如何移植sg3_utils到ARM平台上。 之前我们主要用sg3_utils是在台式机或者直接复制它到目标机上去编译, 但对于大多数嵌入式设备来说, 我们需要交叉编译,尤其是对于android系统, 如果external下面没有所需要的工具包时, 我们必须对它进行交叉编译。为什么要把sg3-utils的交叉编译写一篇文章呢?只要是在我自己交叉编译的过程中,发现了一些问题,这里只是作一个总结,以帮助后来者少走弯路。原创 2017-12-13 00:21:34 · 2118 阅读 · 0 评论 -
how to create and submit kernel patch through git step by step
this paper is to tell you how to submit your linux kernel patch to limux community原创 2017-04-28 16:20:03 · 1013 阅读 · 1 评论 -
mtd-utils编译过程
一.mtd-utils编译过程下载:sun@ubuntu:/work/6410/tools$ git clone git://git.infradead.org/mtd-utils.git修改Makefilesun@ubuntu:/work/6410/tools/mtd-utils$ vi common.mk 1 CROSS=arm-none-linux-gnueabi-转载 2015-06-11 08:41:49 · 2729 阅读 · 0 评论 -
S3C6410使用---30让ubifs作rootfs
by wangcong02345 欢迎转载,但请注明出处 http://blog.chinaunix.net/blog/post/id/3862627.html一.mtd-utils编译过程下载:sun@ubuntu:/work/6410/to转载 2015-03-03 13:54:43 · 1353 阅读 · 0 评论 -
关于 insmod Unknown symbol error
分享是一种快乐。 好久没有写字ko模块驱动,今天写了一个简单的确nand驱动,在做成KO模块,insmod时,出现了下面的问题:micronlld_nand: module license 'unspecified' taints kernel.Disabling lock debugging due to kernel taintmicronlld_nand: Unknown symbol原创 2015-02-28 15:47:40 · 3840 阅读 · 0 评论 -
linux内核kallsyms机制分析
一、前言Linux内核是一个整体结构,而模块是插入到内核中的插件。尽管内核不是一个可安装模块,但为了方便起见,Linux把内核也看作一个模块。那么模块与模块之间如何进行交互呢,一种常用的方法就是共享变量和函数。但并不是模块中的每个变量和函数都能被共享,内核只把各个模块中主要的变量和函数放在一个特定的区段,这些变量和函数就统称为符号。因此,内核也有一个module结构,叫做kernel_module转载 2015-02-28 16:01:03 · 1210 阅读 · 0 评论 -
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 · 942 阅读 · 0 评论 -
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 · 1693 阅读 · 0 评论 -
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 · 1148 阅读 · 0 评论 -
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 · 796 阅读 · 0 评论 -
cfi_cmdset_0002.c中关于等待队列的使用
1、linux下等待队列的基本概念在内核里面,等待队列是有很多用处的,尤其是在中断处理、进程同步、定时等场合。可以使用等待队列在实现阻塞进程的唤醒。它以队列为基础数据结构,与进程调度机制紧密结合,能够用于实现内核中的异步事件通知机制,同步对系统资源的访问等。原创 2014-05-06 09:20:56 · 1563 阅读 · 0 评论 -
linux MTD partitions方法大杂烩
一、总述在linux中,我们一般会对flash进行一个分区,不同的地址空间存放不同的内容。一般我们只需要分3-4个区,第一个为boot区,一个为boot参数区(传递给内核的参数),一个为内核区,一个为文件系统区。而对于bootloader中只要能将内核下载到A~B区的A地址开始处就可以,C~D区的C起始地址下载文件系。这些起始地址在MTD的分区信息中能找到。所以bootloader对分区的概念原创 2014-04-02 16:49:48 · 10035 阅读 · 1 评论 -
linux下cfi_cmdset_0002中关于timeout探究
这里有一个关于cfi_cmdset_0002http://lists.infradead.org/pipermail/linux-mtd/2013-April/046446.html原创 2014-05-04 16:48:23 · 1883 阅读 · 0 评论 -
DM9000网卡驱动分析
DM9000网卡驱动分析#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include转载 2013-03-09 21:59:07 · 2310 阅读 · 0 评论 -
DM9000的DM9161的比较
DM9000的DM9161的比较DM9000是将以太网媒体接入控制器(MAC)和物理接口收发器(PHY)整合进同一芯片,它包含OSI七层参考模型中第二层数据链路层(MAC)和第一层物理层(PHY)。这样能去掉许多外接元器件。这种方案可使MAC和PHY实现很好的匹配,同时还可减小引脚数、缩小芯片面积;DM9161是物理层接口收发器(PHY),其只包含OSI七层参考模型中的第一层物理层(PHY)。原创 2013-03-09 21:56:37 · 6038 阅读 · 0 评论 -
对于ARM加载文件系统出现 Kernel panic - not syncing: Attempted to kill init!
有时加载文件系统时,会出现下面的错误:VFS: Mounted root (nfs filesystem) on device 0:12.Freeing init memory: 124KKernel panic - not syncing: Attempted to kill init!从上面看,文件系统已经加载成功,但还是不能正常启动init进程,这是什么原因了?大多数是因原创 2013-02-26 10:57:27 · 2311 阅读 · 0 评论 -
ulimit使用
功能说明:控制shell程序的资源。Linux对于每个用户,系统限制其最大进程数,为提高性能,可以根据设备资源情况,设置个Linux用户的最大进程数,一些需要设置为无限制(ulimit -? unlimited).语 法:ulimit [-aHS][-c ][-d ][-f ][-m ][-n ][-p ][-s ][-t ][-u ][-v ]补充说明:ulimit为she翻译 2013-01-22 14:48:03 · 786 阅读 · 0 评论 -
Powerpc汇编学习之一
POWER5 处理器是一款应用广泛的 64 位高性能处理器。具备双核和对称多线程功能。这使单独一个芯片能够同步处理 4 个线程!不仅如此,各线程在每个时钟周期内还可执行一组指令(最多可达到 5 条)。PowerPC 指令集广泛应用于 IBM 和其他厂商提供的多种芯片,而不仅仅是 POWER 系列。它用在服务器、工作站和高端嵌入式环境之中(设想数字摄像机和路由器,而不是移动电话)。Gekko转载 2013-01-21 13:50:12 · 3205 阅读 · 0 评论 -
DTS草稿之一
一、DTS文件综述 最新的UBOOT代码支持OF(Open Firmware)结构的扁平设备树(flattened device-tree),目前还没有对OF结构的用户接口API进行支持。因此,在U-boot向Linux内核跳转的时候需要向内核传递一张描述整个硬件系统扁平设备树的的表,来描述设备、总线以及中断的信息等等。这个表被称为设备树块(device-tree block),也就是我原创 2013-01-21 10:15:38 · 6197 阅读 · 2 评论 -
DTS草稿之三
三、8572 DTS文件情景分析1.根节点 为了更清晰的说明怎样针对硬件平台编写一个dts文件,下面我们从8572的dts文件入手,进行一下仔细分析。dts的语法有些类似C语言的语法,我们在下面将看到这种相似性。首先看到的是第12行有个“/ {”的标志,我们在dts文件的最后一行还会看到一个“};”,这里定义的就是我们前面提到的根节点,它定义的是单板级。“model”指定单板原创 2013-01-21 10:18:01 · 5663 阅读 · 2 评论 -
DTS草稿之二
二、DTS文件编译 Dts文件需要最后通过工具dtc(device tree compiler)编译生成UBOOT所需的dtb二进制文件。Dtc工具的一般命令行格式是: dtc[-I ] [-O ] [-o output-filename] [-Voutput_version] input_filename我们常用的命令如:dtc -I dts -O dtb -R 4原创 2013-01-21 10:16:30 · 2565 阅读 · 0 评论 -
linux 下制作可启动 img/iso 文件
linux 下制作可启动 img/iso 文件总的来说,制作镜像文件有三种方法,cp, cat, dd 和其它专用工具。cp ,cat 和 dd都可以从设备复制文件来创建镜像。而 dd 命令更为强大,可以通过指定块大小,块多少来直接创建镜像。IMG 文件:因为cp, cat 只能从设备来制作镜像,但又没有专用工具来做 IMG 文件,故这里用 dd 命令来制作 IMG 文件。转载 2013-01-16 16:02:43 · 1235 阅读 · 0 评论 -
Uboot启动参数说明
bootcmd=cp.b 0xc4200000 0x7fc0 0x200000 ; bootm// 倒计时到 0 以后,自动执行的指令bootdelay=2//倒计时时间为2Sbaudrate=115200// 串口波特率,一般使用115200ethaddr=08:00:3e:26:0a:5cbootfile="uImage"ethact=lan911xserv转载 2013-01-16 16:55:33 · 849 阅读 · 0 评论 -
Linux下PCI设备驱动程序开发——总述
肖文鹏 (xiaowp@263.net), 硕士研究生, 北京理工大学计算机系简介: PCI是一种广泛采用的总线标准,它提供了许多优于其它总线标准(如EISA)的新特性,目前已经成为计算机系统中应用最为广泛,并且最为通用的总线标准。Linux的内核能较好地支持PCI总线,本文以Intel 386体系结构为主,探讨了在Linux下开发PCI设备驱动程序的基本框架。转载 2013-01-15 10:21:00 · 1026 阅读 · 0 评论