随笔分类 - 嵌入式
摘要:Ramdisk根文件系统生成在哪里?可以参考一下linux/usr/Makefile, 会调用scripts/gen_initramfs_list.sh根据变量CONFIG_INITRAMFS_SOURCE指定(定义为./root),调用usr/ gen_init_cpio工具,来生成cpio格式的压缩的根文件系统镜像initramfs_data.cpio.gz,然后链接到Kernel映像中。./usr/Makefile:initramfs:= $(CONFIG_SHELL) $(srctree)/scripts/gen_initramfs_list.sh./usr/.initramfs_da
阅读全文
摘要:1, 顶层Makefile跟踪:找到vmlinux目标# vmlinux image - including updated kernelsymbolsvmlinux: $(vmlinux-lds) $(vmlinux-init)$(vmlinux-main) $(kallsyms.o) FORCEifdef CONFIG_HEADERS_CHECK $(Q)$(MAKE)-f $(srctree)/Makefile headers_checkendif $(callif_changed_rule,vmlinux__) $(Q)$(MAKE)-f $(srctree)/scripts/Make
阅读全文
摘要:基于Linux的嵌入式系统全程喂狗策略 引 言 在嵌入式系统中,为了使系统在异常情况下能自动恢复,一般都会引入看门狗电路。看门狗电路其实就是一个计数器。当看门狗启动后,计数器开始自动计数,经过一定时间计数器溢出就会对CPU产生一个复位信号使系统重启。系统正常运行时,需要在看门狗允许的时间间隔内对看门狗计数器清零也即喂狗,不让复位信号产生。 当前在带Linux操作系统的嵌入式系统中,由于Linux操作系统加载时间较长(如lO~30 s),一般都超过看门狗的时间间隔(典型值为1.6 s);而如果不采取特殊措施,则系统在Linux操作系统加载过程中复位,Linux操作系统永远无法加载成功。为了
阅读全文
摘要:转自 板子的硬件信息: Flash :8M Byte NOR Flash ...
阅读全文
摘要:转自: 下载busybox 1.00 http://busybox.net/downloads/busybox-1.00.tar.bz2 # tar jxvf busybox-1.00.tar.bz2 # cd busybox-1.00 # make defconfig # make menuconfig 配置 # make # make install 需要cp到ramdisk的文件在_ins...
阅读全文
摘要:[经典]Linux内核中ioremap映射的透彻理解 几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种: (1)I/O映射方式(I/O-mapped) 典型地,如X86处理器为外设专门实现了一个单独的地址空间,称为"I/O地址空间"或者"I/O端口空间",CPU通过专门的I/O指令(如X86的IN和OUT指令)来访问这一空间中的地址单元。 (2)内存映射方式(Memory-mapped) RISC指令系统的CPU(如ARM、PowerPC等)通常只实现一个
阅读全文
摘要:另一篇文章:http://crackerlee.blog.sohu.com/119243440.html SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS:意为IC之间总线) UART(Universal Asynchronous Receiver Transmitter:通用异步收发器) SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现 多个SPI设备互相连接。提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(S
阅读全文
摘要:如何读懂电路图1--元器件(转) 2009-11-25 16:42 电子设备中有各种各样的图。能够说明它们工作原理的是电原理图,简称电路图。 电路图有两种, 一种是说明模拟电子电路工作原理的。它用各种图形符号表示电阻器、电容器、开关、晶体管等实物,用线条把元器件和单元电路按工作原理的关系连接起来。这种图长期以来就一直被叫做电路图。 另一种是说明数字电子电路工作原理的。它用各种图形符号表示门、触发器...
阅读全文
摘要:般而言,一个程序包括只读的代码段和可读写的数据段。在ARM的集成开发环境中,只读的代码段和常量被称作RO段(ReadOnly);可读写的全局变量和静态变量被称作RW段(ReadWrite);RW段中要被初始化为零的变量被称为ZI段(ZeroInit)。对于嵌入式系统而言,程序映象都是存储在Flash存储器等一些非易失性器件中的,而在运行时,程序中的RW段必须重新装载到可读写的RAM中。这就涉及到程...
阅读全文
摘要:之所以要介绍S3C2410 DMA,因为它对性能太重要了!只有活用了DMA,CPU的性能才能上去!S3C2410有四个DMA,每个DMA支持工作方式基本相同,但支持的source Dest可能略有不同,具体见Datasheet。 这里具体DMA CONTROL寄存器(DCON)的配置说明,进而引出DMA的各种工作方式。 Atomic transfer:指的是D...
阅读全文
摘要:我们知道MMU存在的原因是为了支持虚拟存储技术,但不知道你发现了没有,虚拟存储技术的使用会降低整个系统的效率,因为与传统的存储技术相比,虚拟存储技术对内存的访问操作多了一步,就是对地址进行查表(查找映射关系),必须先从虚拟地址中分解出页号和页内偏移,根据页号对描述符进行索引(这就是一个查表过程)得到物理空间的首地址,这样做的代价是巨大的(其实这也正是时间效率与空间效率之间矛盾的一个体现),对某些嵌...
阅读全文
摘要: MMU,全称Memory Manage Unit, 中文名——存储器管理单元。 许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难...
阅读全文
摘要: 作者:蔡于清 ARM920T的异常向量表(Exception Vectors)简介: 有两种存放方式,一种是低端存放(从0x00000000处开始存放),另一种是高端存放(从0xfff000000处开始存放)。关于为什么要分两种方式进行存放参考MMU的文章,本文采用低端模式...
阅读全文

浙公网安备 33010602011771号