- 博客(73)
- 资源 (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
380
原创 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
4852
原创 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
718
原创 如何移植sg3_utils到andriod系统中
sg3_utils包含各种可以从用户空间发命令到scsi设备, 这篇文章主要告诉大家如何移植sg3_utils到ARM平台上。 之前我们主要用sg3_utils是在台式机或者直接复制它到目标机上去编译, 但对于大多数嵌入式设备来说, 我们需要交叉编译,尤其是对于android系统, 如果external下面没有所需要的工具包时, 我们必须对它进行交叉编译。为什么要把sg3-utils的交叉编译写一篇文章呢?只要是在我自己交叉编译的过程中,发现了一些问题,这里只是作一个总结,以帮助后来者少走弯路。
2017-12-13 00:21:34
2213
原创 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
1206
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
2791
转载 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
1387
转载 linux内核kallsyms机制分析
一、前言Linux内核是一个整体结构,而模块是插入到内核中的插件。尽管内核不是一个可安装模块,但为了方便起见,Linux把内核也看作一个模块。那么模块与模块之间如何进行交互呢,一种常用的方法就是共享变量和函数。但并不是模块中的每个变量和函数都能被共享,内核只把各个模块中主要的变量和函数放在一个特定的区段,这些变量和函数就统称为符号。因此,内核也有一个module结构,叫做kernel_module
2015-02-28 16:01:03
1314
原创 关于 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
3904
原创 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
978
原创 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
1737
原创 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
822
原创 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
1189
原创 关于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
944
原创 关于nand flash 特殊 features的一点点
关于nand的特性这里就不说了,这一节主要针对nand的新feature的说明。一、Copyback Operations CopyBack功能,简单的说就是,将一个页的数据,拷贝到另一个页。如果没有CopyBack功能,那么正常的做法就是,先要将那个页的数据拷贝出来放到内存的数据buffer中,读出来之后,再用写命令将这页的数据,写到新的页里面。 而CopyBack功能的好处在于
2015-01-16 16:33:54
4028
原创 关于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
2586
原创 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
3540
原创 老版本的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
2406
原创 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
699
原创 新内核 中关于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
4488
原创 关于uboot下data abort的问题
在uboot下,经常会出现一些非常让人揪心的问题。解决这些问题的关键就是方法与方向,把握好这两点,一切问题都可以迎刃而解。同时也要自信。如下关于data abort的问题。有时我们会遇到如下的出错信息,这时CPU会reboot,
2014-06-27 15:02:38
7594
原创 如果在你的ubuntu在只有一个网卡的前提下增加一个IP,让开发板来与此相连
之前一直是把PC放到自己的办公桌前,这样方便开发板与此相连,但这有一个问
2014-05-16 16:19:57
1180
原创 cfi_cmdset_0002.c中关于等待队列的使用
1、linux下等待队列的基本概念在内核里面,等待队列是有很多用处的,尤其是在中断处理、进程同步、定时等场合。可以使用等待队列在实现阻塞进程的唤醒。它以队列为基础数据结构,与进程调度机制紧密结合,能够用于实现内核中的异步事件通知机制,同步对系统资源的访问等。
2014-05-06 09:20:56
1603
翻译 怎么样通过使用git来创建并提交你的第一个linux内核patch
原文地址:HOWTO: Create and submit your first Linux kernel patch using GIT
2014-05-05 22:18:17
1203
原创 linux下cfi_cmdset_0002中关于timeout探究
这里有一个关于cfi_cmdset_0002http://lists.infradead.org/pipermail/linux-mtd/2013-April/046446.html
2014-05-04 16:48:23
1933
翻译 如何从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
2954
原创 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
13725
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
10408
1
原创 linux下启动参数大杂烩
之前移植linux,对启动参数一直理解的不是很透彻,今天以别人的一篇文稿为开始(原文出处不详),来一步一步说说它具体的实现与每一个参数的意思.u-boot的环境变量是使用u-boot的关键,它可以由你自己定义的,但是其中有一些也是大家经常使用,约定熟成的有一些是u-boot自己定义的,更改这些名字会出现错误下面的表中我们列出了一些常用的环境变量, 环境变量
2014-04-02 08:35:25
1251
原创 intel xscale PXA270 porting :unsupported machine ID大杂烩
在移植linux kernel时,输出booting the kernel,就再也没有输出信息问题解决。
2014-03-04 16:44:02
1419
原创 Astyle使用方法
在Source Insight集成Astyle下载地址: Windows平台下也有好多人都喜欢用SourceInsight编辑C/C++程序,但是SourceInsight没有提供对代码格式化的功能,如果将Artistic Style集成到SourceInsight中,那就可以为它扩展出代码格式化的功能了。 假定AStyle.exe的目录是“C:\Artisti
2014-02-21 13:20:04
14913
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
1726
原创 关于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
4020
翻译 监控 Linux 性能的 18 个命令行工具
对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作。在IT领域作为一名Linux系统的管理员工作5年后,我逐渐认识到监控和保持系统启动并运行是多么的不容易。基于此原因,我们已编写了最常使用的18个命令行工具列表,这些工具将有助于每个Linux/Unix 系统管理员的工作。这些命令行工具可以在各种Linux系统下使用,可以用于监控和查找产生性能问题的原因。这个命令行工具列
2014-02-18 19:55:26
842
自动规范代码格式工具Astyle
2014-02-21
PDF.Password.Remover.v3.0
2010-08-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人