摘要:
内核启动信息,NAND部分:
S3C24XX NAND Driver, (c) 2004 Simtec Electronics
s3c2440-nand s3c2440-nand: Tacls=2, 20ns Twrph0=3 30ns, Twrph1=2 20ns
NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit)
Scanning device for bad blocks
Creating 3 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x00000000-0x00040000 : "boot"
0x0004c000-0x0024c000 : "kernel"
0x0024c000-0x03ffc000 : "yaffs2" 阅读全文
摘要:
DM9000(A)是一个全集成、功能强大、性价比高的快速以太网MAC控制器,它带有一个通用处理器接口、EEPROM接口、10/100 PHY和16KB的SRAM(13KB作为接收FIFO,3KB作为发送FIFO)。它采用单电源供电,可兼容3.3V、5V的IO接口电平。
DM9000(A)同样支持MII(Media Independent Interface 介质无关)接口,连接到HPNA(Home Phone-line Networking Alliance 家用电话网络联盟)设备上或其它支持MII的设备。
DM9000(A)包含一系列可被访问的控制状态寄存器,这些寄存器是字节对齐的,他们在硬件或软件复位时被设置成初始值。 阅读全文
摘要:
GPIO,英文全称为General-Purpose IO ports,也就是通用IO口。嵌入式系统中常常有数量众多,但是结构却比较简单的外部设备/电路,对这些设备/电路有的需要CPU为之提供控制手段,有的则需要被CPU用作输入信号。而且,许多这样的设备/电路只要求一位,即只要有开/关两种状态就够了,比如灯亮与灭。对这些设备/电路的控制,使用传统的串行口或并行口都不合适。所以在微控制器芯片上一般都会提供一个“通用可编程IO接口”,即GPIO。 阅读全文
摘要:
设备驱动分类:字符设备,块设备,网络设备
在/dev目录下使用ls –l 命令可以查看各个设备的类型,主从设备号
cat /proc/devices可以查看系统中所有设备对应的主设备号
设备文件:
设备类型、主从设备号是内核与设备驱动程序通信时使用的
应用程序使用设备文件节点访问对应设备
Linux 2.4引入了设备文件系统(devfs)所有的设备文件作为一个可以挂载的文件系统 阅读全文
摘要:
7种工作模式:
User 用户模式 正常程序执行
FIQ 快速中断模式 高优先级中断
IRQ 外部中断模式 通常中断处理
Surpervisor 管理模式 复位或软中断
Abort 中止模式 存取异常
Undefined 未定义模式 执行未定义指令
System 系统模式 特权级的 阅读全文
摘要:
UNIX领域的圣经:《UNIX环境高级编程》第二版 手头上要有本《UNIX程序员手册》
1、《跟我一起写Makefile》
2、《C程序设计语言》K&R 潭浩强的书《潭浩强C语言程序设计》可替代 顺便找本数据结构的书来看
3、《Advanced Programing in Unix Envirement》简称《APUE》国内的翻译的《UNIX环境高级编程》
4、《Unix Network Programing》简称《UNP》国内是清华翻译得《Unix网络编程》
5、《TCP/IP详解》
6、《用TCP/IP进行网际互连》第一卷非常经典
7、《Operating System - Design and Implement》国内翻译的是《操作系统设计与实现》
8、《Linux Device Driver》3e 应先看些《计算机原理》《计算机体系结构》 阅读全文
摘要:
第一步:先会使用它。连Linux 是什么、基本操作都不会就去研究内核,纯属扯淡,“门”都没有。
第二步:看懂内核源码需要一些操作系统、C 语言等的基础。
第三步:找本合适的内核参考书,让它帮助你对内核有个整体的理解和认识,
第四步:要能够动手配置编译内核,还要基本看得懂内核中的Kconfig 和Makefile 文件。 阅读全文
摘要:
优秀的代码风格如同一身得体的打扮,能够给人以良好的印象。
初学程序设计,首先必须建立良好的编程习惯,这其中就包括代码风格。本文就代码风格中的几个重点问题进行了讨论,并在文后给出了一份优秀的代码作为风格模板。代码风格不必花费太多专门的时间研究,在使用中不断模仿模板代码,轻轻松松就能写出“专业的代码”。 阅读全文
摘要:
第一部分 Linux下ARM汇编语法尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针、设置页表、操作 ARM的协处理器等。初始化完成后就可以跳转到C代码执行。需要注意的是,GNU的汇编器遵循AT&T的汇编语法,可以从GNU的站点(www.gnu.org)上下载有关规范。
一. Linux汇编行结构
任何汇编行都是如下结构:
[:] [} @ comment
[:] [} @ 注释
Linux ARM 汇编中,任何以冒号结尾的标识符都被认为是一个标号,而不一定非要在一行的开始。 阅读全文