logo资料库

u-boot及linux2.6.14内核移植.pdf

第1页 / 共95页
第2页 / 共95页
第3页 / 共95页
第4页 / 共95页
第5页 / 共95页
第6页 / 共95页
第7页 / 共95页
第8页 / 共95页
资料共95页,剩余部分请下载后查看
第一部分 前言
1 硬件环境
1.1主机硬件环境
1.2 目标板硬件环境
1.3工具介绍
2软件环境
2.1主机软件环境
2.1.1 Windows 操作系统
2.1.2 Linux操作系统
2.1.3 目标板最后运行的环境
2.2 Linux下工作用户及环境
2.2.1 交叉工具的安装
2.2.2 u-boot移植工作目录
2.2.3 内核及应用程序移植工作
2.3 配置系统服务
2.3.1 tftp服务器的配置
2.4 工具使用
2.4.1 minicom的使用
3 作者介绍
3.1 策划, 组织, 指导, 发布者
3.2 ADS bootloader部分
3.3 交叉工具部分
3.4 uboot部分
3.5 内核部分
3.6 应用程序部分
3.7 Nand Flash 驱动部分
第部分 系统启动bootloader的编写(ADS)
1 工具介绍
1.1 ADS 命令行命令介绍
1.1.1 armasm
1.1.2 armcc, armcpp
1.1.3 armlink
2 基本原理
2.1 可执行文件组成及内存映射
2.1.1 可执行文件的组成
2.1.2 装载过程
2.1.3 启动过程的汇编部分
2.1.4 启动过程的C部分
3 AXD的使用以及源代码说明
3.1 源代码说明
3.1.1 汇编源代码说明
3.1.2 C语言源代码说明
3.2 AXD的使用
3.2.1 配置仿真器
3.2.2 启动AXD 配置开发板
第三部分 GNU交叉工具链
1 设置环境变量,准备源码及相关补丁
1.1 设置环境变量
1. 2 准备源码包
1.2.1 binuils
1.2.2 gcc
1.2.3 glibc
1.2.4 linux kernel
1.3 准备补丁
1.3.1 ioperm.c.diff
1.3.2 flow.c.diff
1.3.3 t-linux.diff
1.4 编译 GNU binutils
1.5 准备内核头文件
1.5.1 使用当前平台的gcc编译内核头文件
1.5.2 复制内核头文件
1.6 译编glibc头文件
1.7 编译gcc第一阶段
1.8 编译完整的glibc
1.9 编译完整的gcc
2 GNU交叉工具链的下载
2.1 ARM官方网站
3 GNU交叉工具链的介绍与使用
3.1 常用工具介绍
3.2.1 arm-linux-gcc的使用
3.2.2 arm-linux-ar 和 arm-linux-ranlib的使用
3.2.3 arm-linux-objdump的使用
3.2.4 arm-linux-readelf的使用
3.2.6 arm-linux-copydump的使用
4 ARM GNU常用汇编语言介绍
4.1 ARM GNU常用汇编伪指令介绍
4.2 ARM GNU专有符号
4.3 操作码
5 可执行生成说明
5.1 lds文件说明
5.1.1 主要符号说明
5.1.2 段定义说明
第四部分 u-boot的移植
1 u-boot的介绍及系统结构
1.1 u-boot介绍
1.2 获取u-boot
1.3 u-boot体系结构
1.3.1 u-boot目录结构
2 uboot的启动过程及工作原理
2.1 启动模式介绍
2.2 阶段1介绍
2.2.1 定义入口
2.2.2 设置异常向量
2.2.3 设置CPU的模式为SVC模式
2.2.4 关闭看门狗
2.2.5 禁掉所有中断
2.2.6 设置以CPU的频率
2.2.7 设置CP15
2.2.8 配置内存区控制寄存器
2.2.9 安装U-BOOT使的栈空间
2.2.10 BSS段清0
2.2.11 搬移Nand Flash代码
2.2.12 进入C代码部分
2.3 阶段2的C语言代码部分 
2.3.1调用一系列的初始化函数
2.3.2 初始化网络设备
2.3.3 进入主UBOOT命令行
2.4 代码搬运
3 uboot的移植过程
3.1 环境
3.2 步骤
3.2.1 修改Makefile
3.2.2 在board子目录中建立crane2410
3.2.3 在include/configs/中建立配置头文件
3.2.4 指定交叉编译工具的路径
3.2.5 测试编译能否成功
3.2.6 修改lowlevel_init.S文件
3.2.9 UBOOT的Nand Flash移植
3.2.8重新编译u-boot
3.2.9 把u-boot烧入flash
4 U-BOOT命令的使用
4.1 U-BOOT命令的介绍
4.1.1 获得帮助信息
4.2 常用命令使用说明
4.2.1 askenv(F)
4.2.2 autoscr
4.2.3 base
4.2.4 bdinfo
4.2.5 bootp
4.2.8 tftp(tftpboot)
4.2.9 bootm
4.2.10 go
4.2.11 cmp
4.2.12 coninfo
4.2.13 cp
4.2.14 date
4.2.15 erase(F)
4.2.16 flinfo(F)
4.2.17 iminfo
4.2.18 loadb
4.2.19 md
4.2.20 mm
4.2.21 mtest
4.2.22 mw
4.2.23 nm
4.2.24 printenv
4.2.25 ping
4.2.26 reset
4.2.27 run
4.2.28 saveenv(F)
4.2.29 setenv
4.2.30 sleep
4.2.31 version
4.2.32 nand info
4.2.33 nand device
4.2.34 nand bad
4.2.35 nand read
4.2.36 nand erease
4.2.37 nand write
4.3 命令简写说明
4.4 把文件写入NandFlash
5 参考资料
第五部分 linux 2.6内核的移植
1 内核移植过程
1.1 下载linux内核
1.2 修改Makefile
1.3 设置flash分区
1.3.1指明分区信息
1.3.2 指定启动时初始化
1.3.3 禁止Flash ECC校验
1.4 配置内核
1.4.1 支持启动时挂载devfs
1.4.2配置内核产生.config文件
1.4.3编译内核
1.4.4 下载zImage到开发板
1.5 Linux 下cs8900a的移植说明
1.5.1 为cs8900a建立编译菜单
1.5.2 修改S3C2410相关信息
2 创建uImage
2.1 相关技术背景介绍
2.2 在内核中创建uImage的方法
2.2.1 获取mkimage工具
2.2.2 修改内核的Makefile文件
3追加实验记录
3.1移植linux-2.6.15.7
3.2移植linux-2.6.16.21
3.3 移植linux-2.6.17
4 参考资料
第六部分 应用程序的移植
1构造目标板的根目录及文件系统
1.1 建立一个目标板的空根目录
1.2 在my_rootfs中建立Linux目录树
1.3 创建linuxrc文件
2 移植Busybox
2.1 下载busybox
2.3 编译并安装Busybox
3 移植TinyLogin
3.1 下载
3.2 修改tinyLogin的Makefile
3.3 编译并安装
4 相关配置文件的创建
4.1 创建帐号及密码文件
4.2 创建profile文件
4.4 创建fstab文件
4.5 创建inetd.conf配置文件
5 移植inetd
5.1 inetd的选择及获取
5.1.1 获取inetd
5.2 编译inetd
5.2.1 修改configure文件
5.2.2 编译
5.3 配置inetd
5.3.1 拷贝inetd到根文件系统的usr/sbin目录中
6 移植thttpd Web服务器
6.1 下载
6.2 编译thttpd
6.3 配置
6.3.1 拷贝thttpd二进制可执行文件到根文件系统/usr/sbin/目录中
6.3.2 修改thttpd配置文件
6.3.3 转移到根文件系统目录,创建相应的文件
7 建立根目录文件系统包
7.1 建立CRAMFS包
7.1.1 下载cramfs工具
7.1.2 制作cramfs包
7.1.3 写cramfs包到Nand Flash
8 参考资料
第七部分 Nand flash驱动的编写与移植
1 Nand flash工作原理
1.1 Nand flash芯片工作原理
1.1.1 芯片内部存储布局及存储操作特点
1.1.2 重要芯片引脚功能
1.1.3 寻址方式
1.1.4 Nand flash主要内设命令详细介绍
1.2 Nand Flash 控制器工作原理
1.2.1 Nand Flash控制器特性
1.2.2 Nand Flash控制器工作原理
1.3 Nand flash 控制器中特殊功能寄存器详细介绍
1.4 Nand Flash 控制器中的硬件ECC介绍
1.4.1 ECC产生方法
1.4.2 ECC生成器工作过程
1.4.3 ECC的运用
2 在ADS下flash烧写程序
2.1 ADS下flash烧写程序原理及结构
2.2 第三层实现说明
2.1.1 特殊功能寄存器定义
2.1.2 操作的函数实现
2.3 第二层实现说明
2.3.1 Nand Flash 初始化
2.3.3 获取Nand flash ID
2.3.4 Nand flash写入
2.3.5 Nand flash读取
2.3.6 Nand flash标记坏块
2.3.7 Nand Flash检查坏块
2.3.8 擦除指定块中数据
2.4 第一层的实现
3 在U-BOOT对Nand Flash的支持
3.1 U-BOOT对从Nand Flash启动的支持
3.1.1 从Nand Flash启动U-BOOT的基本原理
3.1.2 支持Nand Flash启动代码说明
3.2 U-BOOT对Nand Flash命令的支持
3.2.1 主要数据结构介绍
3.2.2 支持的命令函数说明
4 在Linux对Nand Flash的支持
4.1 Linux下Nand Flash调用关系
4.1.1 Nand Flash设备添加时数据结构包含关系
4.1.2 Nand Flash设备注册时数据结构包含关系
4.2 Linux下Nand Flash驱动主要数据结构说明
4.2.1 s3c2410专有数据结构
4.2.2 Linux 通用数据结构说明
4.3.1 注册driver_register
4.3.2 探测设备probe
4.3.3 初始化Nand Flash控制器
4.3.4 移除设备
4.3.5 Nand Flash芯片初始化
4.3.6 读Nand Flash
4.3.7 写Nand Flash
Linux 系统移植 目 录 第一部分 前言....................................................................................................................................8 1 硬件环境......................................................................................................................................8 1.1 主机硬件环境.......................................................................................................................8 1.2 目标板硬件环境...................................................................................................................8 1.3 工具介绍...............................................................................................................................8 2 软件环境.......................................................................................................................................8 2.1 主机软件环境.......................................................................................................................8 2.1.1 Windows 操作系统.......................................................................................................8 2.1.2 Linux 操作系统 .......................................................................................................8 2.1.3 目标板最后运行的环境...............................................................................................9 2.2 Linux 下工作用户及环境....................................................................................................9 2.2.1 交叉工具的安装...........................................................................................................9 2.2.2 u­boot 移植工作目录....................................................................................................9 2.2.3 内核及应用程序移植工作...........................................................................................9 2.3 配置系统服务.....................................................................................................................10 2.3.1 tftp 服务器的配置.......................................................................................................10 2.4 工具使用.............................................................................................................................12 2.4.1 minicom 的使用..........................................................................................................12 3 作者介绍....................................................................................................................................13 3.1 策划, 组织, 指导, 发布者...................................................................................................13 3.2 ADS bootloader 部分..........................................................................................................13 3.3 交叉工具部分.....................................................................................................................13 3.4 uboot 部分...........................................................................................................................13 3.5 内核部分.............................................................................................................................13 3.6 应用程序部分.....................................................................................................................13 3.7 网卡驱动部分.....................................................................................................................13 3.8 Nand Flash 驱动部分.........................................................................................................13 第二部分 系统启动 bootloader 的编写(ADS).................................................................................14 1 工具介绍....................................................................................................................................14 1.1 ADS 命令行命令介绍........................................................................................................14 1.1.1 armasm........................................................................................................................14 1.1.2 armcc, armcpp.............................................................................................................14 1.1.3 armlink.........................................................................................................................14 2 基本原理....................................................................................................................................15 2.1 可执行文件组成及内存映射.............................................................................................15 2.1.1 可执行文件的组成.....................................................................................................15 2.1.2 装载过程.....................................................................................................................16
2.1.3 启动过程的汇编部分.................................................................................................17 2.1.4 启动过程的 C 部分.....................................................................................................17 3 AXD 的使用以及源代码说明...................................................................................................18 3.1 源代码说明.........................................................................................................................18 3.1.1 汇编源代码说明.........................................................................................................18 3.1.2 C 语言源代码说明......................................................................................................23 3.1.3 源代码下载.................................................................................................................23 3.2 AXD 的使用.......................................................................................................................23 3.2.1 配置仿真器.................................................................................................................23 3.2.2 启动 AXD 配置开发板...............................................................................................23 第三部分 GNU 交叉工具链.............................................................................................................25 1  设置环境变量,准备源码及相关补丁...................................................................................25 1.1 设置环境变量.....................................................................................................................25 1. 2 准备源码包............................................................................................................................25 1.2.1 binuils..........................................................................................................................25 1.2.2 gcc...............................................................................................................................25 1.2.3 glibc.............................................................................................................................25 1.2.4 linux kernel..................................................................................................................26 1.3 准备补丁.............................................................................................................................26 1.3.1 ioperm.c.diff................................................................................................................26 1.3.2 flow.c.diff....................................................................................................................26 1.3.3 t­linux.diff....................................................................................................................26 1.4   编译 GNU binutils...........................................................................................................26 1.5 准备内核头文件.................................................................................................................26 1.5.1 使用当前平台的 gcc 编译内核头文件......................................................................26 1.5.2 复制内核头文件.........................................................................................................27 1.6   译编 glibc 头文件.............................................................................................................27 1.7   编译 gcc 第一阶段............................................................................................................27 1.8   编译完整的 glibc..............................................................................................................27 1.9  编译完整的 gcc.................................................................................................................28 2 GNU 交叉工具链的下载...........................................................................................................28 2.1 ARM 官方网站...................................................................................................................28 2.2 本文档提供的下载.............................................................................................................28 3 GNU 交叉工具链的介绍与使用...............................................................................................29 3.1 常用工具介绍.....................................................................................................................29 3.2.1 arm­linux­gcc 的使用.................................................................................................29 3.2.2 arm­linux­ar 和 arm­linux­ranlib 的使用..................................................................30 3.2.3 arm­linux­objdump 的使用.........................................................................................30 3.2.4 arm­linux­readelf 的使用............................................................................................31 3.2.6 arm­linux­copydump 的使用......................................................................................32 4 ARM GNU 常用汇编语言介绍.................................................................................................32 4.1 ARM GNU 常用汇编伪指令介绍.....................................................................................32
4.2 ARM GNU 专有符号.........................................................................................................33 4.3 操作码.................................................................................................................................33 5 可执行生成说明........................................................................................................................33 5.1 lds 文件说明.......................................................................................................................33 5.1.1 主要符号说明.............................................................................................................33 5.1.2 段定义说明.................................................................................................................34 第四部分 u­boot 的移植...................................................................................................................35 1 u­boot 的介绍及系统结构.........................................................................................................35 1.1 u­boot 介绍.........................................................................................................................35 1.2 获取 u­boot.........................................................................................................................35 1.3 u­boot 体系结构.................................................................................................................35 1.3.1 u­boot 目录结构..........................................................................................................35 2 uboot 的启动过程及工作原理...................................................................................................36 2.1 启动模式介绍.....................................................................................................................36 2.2 阶段 1 介绍.........................................................................................................................36 2.2.1 定义入口.....................................................................................................................36 2.2.2 设置异常向量.............................................................................................................37 2.2.3 设置 CPU 的模式为 SVC 模式..................................................................................37 2.2.4 关闭看门狗.................................................................................................................37 2.2.5 禁掉所有中断.............................................................................................................37 2.2.6 设置以 CPU 的频率....................................................................................................37 2.2.7 设置 CP15...................................................................................................................37 2.2.8 配置内存区控制寄存器.............................................................................................38 2.2.9 安装 U­BOOT 使的栈空间........................................................................................38 2.2.10 BSS 段清 0................................................................................................................38 2.2.11 搬移 Nand Flash 代码...............................................................................................39 2.2.12 进入 C 代码部分.......................................................................................................39 2.3 阶段 2 的 C 语言代码部分 .............................................................................................39 2.3.1 调用一系列的初始化函数.........................................................................................39 2.3.2 初始化网络设备.........................................................................................................41 2.3.3 进入主 UBOOT 命令行..............................................................................................41 2.4 代码搬运.............................................................................................................................41 3 uboot 的移植过程.......................................................................................................................42 3.1 环境.....................................................................................................................................42 3.2 步骤.....................................................................................................................................42 3.2.1 修改 Makefile..............................................................................................................42 3.2.2 在 board 子目录中建立 crane2410.............................................................................42 3.2.3 在 include/configs/中建立配置头文件......................................................................42 3.2.4 指定交叉编译工具的路径.........................................................................................42 3.2.5 测试编译能否成功.....................................................................................................42 3.2.6 修改 lowlevel_init.S 文件...........................................................................................43
3.2.9 UBOOT 的 Nand Flash 移植......................................................................................45 3.2.8 重新编译 u­boot..........................................................................................................45 3.2.9 把 u­boot 烧入 flash....................................................................................................45 4  U­BOOT 命令的使用................................................................................................................46 4.1 U­BOOT 命令的介绍.........................................................................................................46 4.1.1 获得帮助信息.............................................................................................................46 4.2 常用命令使用说明.............................................................................................................47 4.2.1 askenv(F).....................................................................................................................47 4.2.2 autoscr.........................................................................................................................47 4.2.3 base   ...........................................................................................................................47 4.2.4 bdinfo...........................................................................................................................47 4.2.5 bootp............................................................................................................................47 4.2.8 tftp(tftpboot)................................................................................................................48 4.2.9 bootm...........................................................................................................................48 4.2.10 go...............................................................................................................................48 4.2.11 cmp   .........................................................................................................................48 4.2.12 coninfo  .....................................................................................................................48 4.2.13 cp...............................................................................................................................48 4.2.14 date............................................................................................................................49 4.2.15 erase(F)......................................................................................................................49 4.2.16 flinfo(F).....................................................................................................................49 4.2.17 iminfo........................................................................................................................49 4.2.18 loadb..........................................................................................................................49 4.2.19 md..............................................................................................................................49 4.2.20 mm ............................................................................................................................50 4.2.21 mtest   .......................................................................................................................50 4.2.22 mw.............................................................................................................................50 4.2.23 nm   ...........................................................................................................................50 4.2.24 printenv......................................................................................................................50 4.2.25 ping  ..........................................................................................................................51 4.2.26 reset...........................................................................................................................51 4.2.27 run   ...........................................................................................................................51 4.2.28 saveenv(F).................................................................................................................51 4.2.29 setenv.........................................................................................................................51 4.2.30 sleep...........................................................................................................................51 4.2.31 version.......................................................................................................................51 4.2.32 nand info....................................................................................................................51 4.2.33 nand device ........................................................................................................51 4.2.34 nand bad....................................................................................................................51 4.2.35 nand read...................................................................................................................52 4.2.36 nand erease................................................................................................................52 4.2.37 nand write..................................................................................................................52 4.3 命令简写说明.....................................................................................................................52
4.4 把文件写入 NandFlash.......................................................................................................53 4.5 下载提供.............................................................................................................................53 5 参考资料....................................................................................................................................53 第五部分 linux 2.6 内核的移植.......................................................................................................53 1 内核移植过程............................................................................................................................53 1.1 下载 linux 内核...................................................................................................................53 1.2 修改 Makefile.....................................................................................................................53 1.3 设置 flash 分区...................................................................................................................54 1.3.1 指明分区信息.............................................................................................................54 1.3.2 指定启动时初始化.....................................................................................................56 1.3.3 禁止 Flash ECC 校验 ................................................................................................56 1.4 配置内核.............................................................................................................................56 1.4.1 支持启动时挂载 devfs................................................................................................56 1.4.2 配置内核产生.config 文件.........................................................................................57 1.4.3 编译内核.....................................................................................................................58 1.4.4 下载 zImage 到开发板................................................................................................58 2 创建 uImage................................................................................................................................61 2.1 相关技术背景介绍.............................................................................................................61 2.2 在内核中创建 uImage 的方法...........................................................................................61 2.2.1 获取 mkimage 工具.....................................................................................................61 2.2.2 修改内核的 Makefile 文件.........................................................................................61 3 追加实验记录.............................................................................................................................62 3.1 移植 linux­2.6.15.7..............................................................................................................62 3.2 移植 linux­2.6.16.21............................................................................................................62 3.3 移植 linux­2.6.17................................................................................................................62 4 参考资料....................................................................................................................................62 第六部分 应用程序的移植..............................................................................................................63 1 构造目标板的根目录及文件系统.............................................................................................63 1.1 建立一个目标板的空根目录.............................................................................................63 1.2 在 my_rootfs 中建立 Linux 目录树...................................................................................63 1.3 创建 linuxrc 文件................................................................................................................63 2 移植 Busybox.............................................................................................................................64 2.1 下载 busybox......................................................................................................................64 2.3 编译并安装 Busybox..........................................................................................................65 3 移植 TinyLogin...........................................................................................................................66 3.1 下载.....................................................................................................................................66 3.2 修改 tinyLogin 的 Makefile................................................................................................66 3.3 编译并安装.........................................................................................................................66 4 相关配置文件的创建................................................................................................................66 4.1 创建帐号及密码文件.........................................................................................................66 4.2 创建 profile 文件................................................................................................................67
4.4 创建 fstab 文件...................................................................................................................67 4.5 创建 inetd.conf 配置文件...................................................................................................67 5 移植 inetd....................................................................................................................................67 5.1 inetd 的选择及获取............................................................................................................67 5.1.1 获取 inetd....................................................................................................................67 5.2 编译 inetd............................................................................................................................67 5.2.1 修改 configure 文件....................................................................................................67 5.2.2 编译 ...........................................................................................................................68 5.3 配置 inetd............................................................................................................................68 5.3.1 拷贝 inetd 到根文件系统的 usr/sbin 目录中.............................................................68 6 移植 thttpd Web 服务器.............................................................................................................69 6.1 下载.....................................................................................................................................69 6.2 编译 thttpd...........................................................................................................................69 6.3 配置.....................................................................................................................................69 6.3.1 拷贝 thttpd 二进制可执行文件到根文件系统/usr/sbin/目录中...............................69 6.3.2 修改 thttpd 配置文件..................................................................................................69 6.3.3 转移到根文件系统目录,创建相应的文件.............................................................69 7 建立根目录文件系统包............................................................................................................70 7.1 建立 CRAMFS 包...............................................................................................................70 7.1.1 下载 cramfs 工具........................................................................................................70 7.1.2 制作 cramfs 包............................................................................................................70 7.1.3 写 cramfs 包到 Nand Flash.........................................................................................70 8 参考资料....................................................................................................................................70 第七部分 Nand flash 驱动的编写与移植........................................................................................71 1 Nand flash 工作原理..................................................................................................................71 1.1 Nand flash 芯片工作原理..................................................................................................71 1.1.1 芯片内部存储布局及存储操作特点.........................................................................71 1.1.2 重要芯片引脚功能.....................................................................................................71 1.1.3 寻址方式.....................................................................................................................71 1.1.4 Nand flash 主要内设命令详细介绍...........................................................................72 1.2 Nand Flash 控制器工作原理.............................................................................................72 1.2.1 Nand Flash 控制器特性..............................................................................................72 1.2.2 Nand Flash 控制器工作原理......................................................................................72 1.3 Nand flash 控制器中特殊功能寄存器详细介绍 ............................................................72 1.4 Nand Flash 控制器中的硬件 ECC 介绍............................................................................73 1.4.1 ECC 产生方法............................................................................................................73 1.4.2 ECC 生成器工作过程................................................................................................74 1.4.3 ECC 的运用................................................................................................................74 2 在 ADS 下 flash 烧写程序.........................................................................................................74 2.1 ADS 下 flash 烧写程序原理及结构...................................................................................74 2.2 第三层实现说明.................................................................................................................74
2.1.1 特殊功能寄存器定义.................................................................................................74 2.1.2 操作的函数实现.........................................................................................................74 2.3 第二层实现说明.................................................................................................................75 2.3.1 Nand Flash 初始化......................................................................................................75 2.3.3 获取 Nand flash ID......................................................................................................75 2.3.4 Nand flash 写入...........................................................................................................76 2.3.5 Nand flash 读取...........................................................................................................77 2.3.6 Nand flash 标记坏块...................................................................................................78 2.3.7 Nand Flash 检查坏块..................................................................................................79 2.3.8 擦除指定块中数据.....................................................................................................79 2.4  第一层的实现....................................................................................................................80 3 在 U­BOOT 对 Nand Flash 的支持............................................................................................82 3.1 U­BOOT 对从 Nand Flash 启动的支持.............................................................................82 3.1.1 从 Nand Flash 启动 U­BOOT 的基本原理................................................................82 3.1.2 支持 Nand Flash 启动代码说明.................................................................................82 3.2 U­BOOT 对 Nand Flash 命令的支持.................................................................................84 3.2.1 主要数据结构介绍.....................................................................................................84 3.2.2 支持的命令函数说明.................................................................................................85 4 在 Linux 对 Nand Flash 的支持.................................................................................................87 4.1 Linux 下 Nand Flash 调用关系..........................................................................................87 4.1.1 Nand Flash 设备添加时数据结构包含关系..............................................................87 4.1.2 Nand Flash 设备注册时数据结构包含关系..............................................................87 4.2 Linux 下 Nand Flash 驱动主要数据结构说明..................................................................88 4.2.1 s3c2410 专有数据结构...............................................................................................88 4.2.2 Linux 通用数据结构说明..........................................................................................89 4.3.1 注册 driver_register....................................................................................................94 4.3.2 探测设备 probe...........................................................................................................94 4.3.3 初始化 Nand Flash 控制器.........................................................................................94 4.3.4 移除设备.....................................................................................................................94 4.3.5 Nand Flash 芯片初始化..............................................................................................94 4.3.6  读 Nand  Flash............................................................................................................95 4.3.7  写 Nand Flash.............................................................................................................95 第八部分 Cs8900a 网卡驱动的编写与移植...................................................................................95 1 Cs8900a 工作原理......................................................................................................................95 2 在 ADS 下 cs8900a 的实现........................................................................................................95 2.1 在 cs8900a 下实现的 ping 工具.........................................................................................95 3 在 u­boot 下 cs8900a 的支持......................................................................................................96 3.1 u­boot 下 cs8900a 的驱动介绍...........................................................................................96 3.2 u­boot 下 cs8900a 的移植说明...........................................................................................96 4 在 linux 下 cs8900a 驱动的编写与移植....................................................................................96 4.1 Linux 下 cs8900a 的驱动说明............................................................................................96
4.2 Linux 下 cs8900a 的移植说明...........................................................................................96 4.2.1 为 cs8900a 建立编译菜单..........................................................................................96 4.2.2 修改 S3C2410 相关信息............................................................................................97 该文档的目的是总结我们在工作中的一些经验,并把它们分享给喜欢 ARM 和 Linux 的朋友, 如有错误 之处,请大家多多指点. 同样, 我们也希望更多人能把自己的工作经验和体会加入该文档,让大家共同进步. 该文档是一份交流性文档, 只供个人学习与交流,不允许公司和企业用于商业行为. 序 第一部分 前言 1 硬件环境 1.1 主机硬件环境 开发机:Pentium-4 CPU 内存: 512MB 硬盘: 60GB 1.2 目标板硬件环境 CPU: S3C2410 SDRAM: HY57V561620 Nand flash: K9F1208U0B(64MB) 以太网芯片:CS8900A (10M/100MB) 1.3 工具介绍 仿真器:Dragon-ICE 电缆:串口线,并口线 2 软件环境 2.1 主机软件环境 2.1.1 Windows 操作系统 ADS 编译工具:ADS1.2 仿真器软件: Dragon-ICE daemon 程序 2.1.2 Linux 操作系统 GNU 交叉编译工具: 2.95.3: 作用:编译 u-boot 3.3.2, 3.4.4: 作用:编译内核和应用程序 其它工作:
分享到:
收藏