u-boot/驱动开发
文章平均质量分 81
maopig
这个作者很懒,什么都没留下…
展开
-
使用Busybox构造cramfs根文件系统
使用Busybox构造cramfs根文件系统 11.1、下载Busybox,如果系统中没有mkcramfs工具则还要下载mkcramfs压缩工具。本文件系统使用Busybox-1.10.1,cramfs-1.1。压缩文件Busybox-1.10.1.tar.bz2,cramfs-1.1.tar.gz。22.解压文件:tar jxvf Busybox-1.10.1.tar.bz原创 2012-03-03 16:44:53 · 1527 阅读 · 0 评论 -
linux驱动中地址空间转换
在Linux kernel 中,物理地址是不能直接使用的,必须通过转换才可以。转换分为两种, 静态和动态。静态就是下面那种,不过,静态的地址转换,还需要在kernel 初始化的时候作映射。 动态映射是使用 ioremap 函数 。[cpp] view plain copy#define SL2312_GPIO_BASE 0x4D000转载 2017-01-19 14:42:59 · 359 阅读 · 0 评论 -
Linux下/proc目录简介
1. /proc目录Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文转载 2013-12-26 10:37:22 · 1576 阅读 · 0 评论 -
Nand分区及nand erase简解
我的nand flash 32M,kernel 2.6.18, rootfs is emb linux, cramfs.nand flash分区如下:static struct mtd_partition nand_partitions[] = { /* bootloader (UBL, U-Boot, BBT) in sectors: 0 - 14 */转载 2013-12-25 14:22:42 · 13957 阅读 · 1 评论 -
/dev/mtdN和/dev/mtdblockN的区别
1、/dev/mtdn是linux中的MTD架构中,系统自己实现的mtd分区所对应的字符设备,其里面添加了一些ioctl,支持很多命令,如MEMGETINFO,MEMERASE等。 而mtd-util中的flash_eraseall等工具,就是以这些ioctl为基础而实现的工具,实现一些关于flash的操作,比如,mtd工具中的flash_eraseall中的: if(ioc转载 2013-12-25 13:47:53 · 1665 阅读 · 0 评论 -
NAND 坏块管理
NAND的操作管理方式 NAND FLASH的管理方式:以三星FLASH为例,一片Nand flash为一个设备(device),1 (Device) = xxxx (Blocks),1 (Block) = xxxx (Pages),1(Page) =528 (Bytes) = 数据块大小(512Bytes) + OOB 块大小(16Bytes,除OOB第六字节外,通常至少把OOB的前转载 2013-12-25 10:55:08 · 1610 阅读 · 0 评论 -
kernel mtd 分区与UBOOT 分区的理解
今天做内核移植,准备添加NAND flash的驱动,做到MTD分区时,想起在一本书上看到的一句话,说的是分区时每个区之间没有间隙,前一个区的结束地址是后一个区的起始地址。可是当我看我的开发板的教程时,分区如下:static struct mtd_partition smdk_default_nand_part[] = { [0] = { .name转载 2013-12-12 16:53:23 · 5381 阅读 · 0 评论 -
NAND FLASH分区规划
由于BOOTLOADRER、PARAMS以及内核、文件系统都在NAND FLASH上,因此分区就得进行统一规划。系统的NAND FLASH分区依赖于u-boot和Linux内核两方面的设置。U-Boot中的NAND分区 文件:include/configs/开发板.h 这是Phy3250的参数,Phy3250采用32MB的NAND FLASH,扇区大小为16KB原创 2012-12-16 23:28:24 · 9220 阅读 · 0 评论 -
嵌入式系统系统升级内核双备份的实现方式
1.nand flash MTD分区 kernels/linux-2.6.31.1-cavm1/drivers/mtd/maps/xxxxx-flash.c /* MTD partitions: From CNW5602 32MB * mtd0: 0x000C0000 00020000 "bootloader" * mt转载 2012-12-16 22:54:42 · 3153 阅读 · 0 评论 -
ARM板子启动出现:crc error-- System halted
NAND read: device 0 offset 0x40000, size 0x800000Reading data from 0x83fe00 -- 100% complete. 8388608 bytes read: OKBoot with zImageStarting kernel ...Uncompressing Linux..............转载 2012-12-01 16:34:46 · 6321 阅读 · 1 评论 -
关于用户空间和内核空间
当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(内核态)。在内核态下,CPU可执行任何指令。当进程在执行用户自己的代码时,则称其处于用户运行态(用户态)。用户态不能访问内核空间,包括代码和数据。进程处于用户态时能访问的是用户空间,处于内核态时能访问的称为内核空间。CPU执行程序所访问的地址都是虚拟地址,MMU 必须通过读取控制寄存器CR3中的值作为当前页面转载 2012-03-06 23:40:59 · 1179 阅读 · 0 评论 -
u-boot nand flash read/write cmd
支援的命令函數說明1. nand info/nand device功能:顯示當前nand flash晶片資訊。函數調用關係如下(按先後順序):static void nand_print(struct nand_chip *nand) ;2. nand erase功能:擦除指定塊上的數據。函數調用關係如下(按先後順序):int nand_erase(stru原创 2012-03-05 23:07:25 · 1902 阅读 · 0 评论 -
DM365 u-boot 启动分析
第一阶段:汇编语言启动先看u-boot/board/davinci/dm365_ipnc/下的文件。u-boot.lds OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")OUTPUT_ARCH(arm)ENTRY(_start)SECTIONS{转载 2012-03-05 22:19:32 · 2028 阅读 · 0 评论 -
嵌入式根文件系统制作
1:文件系统分类: 基于flash的文件系统:flash有两种,一种是NOR,另一种NAND。NOR型 FLASH主要用于存放程序。NAND型 FLASH主要用于存放数据。NOR的特点是可在芯片内执行。这样应用程序可以直接在flash内存内运行,不必再把代码读到系统的RAM中。NOR的传输效率很高,但写入和擦除速度较低。而NAND结构能提供极高的单元密度。并且写入和擦除也很快。是提高数据存原创 2012-03-03 14:57:38 · 1319 阅读 · 0 评论 -
嵌入式linux系统中设备驱动程序
嵌入式linux系统中设备驱动程序是内核的一部分,完成对设备初始、读写操作和控制等功能。驱动程序隐藏了硬件设备的具体细节,对不同的设备提供一致的接口,这些接口通过file_Operation结构来定义,设计驱动程序的大部分工作就是根据硬件结构来“填写”结构体中定义的函数。主要的函数包括open(),read(),ioctl,release等。 Open函数的主要功能是提供给驱动程序初始原创 2012-03-03 18:51:22 · 1379 阅读 · 0 评论 -
arm-linux-gcc:Command not found的问题
标签: ubuntulinux2015-05-15 10:47 680人阅读 评论(0)收藏举报分类: Ubuntu(23) /etc/profile gcc(9) ARM汇编指令(4) 折腾了一天,终于搞定了。ubuntu没有root权限,刚开始用碰到很多麻烦,查了好多资料,终于把arm-Linux-gcc:Command转载 2017-01-19 20:32:18 · 3879 阅读 · 0 评论