基于ARM9的嵌入式Linux系统移植

                   这篇文章是我6个月前在老师的指导下写的论文,留在博客里,做个备份,那时我的系统环境是window 7虚拟机下的RedHat Enterprise Linux6.0 ,现在我的系统环境是Ubuntu13.04。讲的比较粗糙,有不正确的地方希望大家指出。

                    

        本文结合S3C2440处理器和GT2440开发板这个实验平台,进行了嵌入式Linux的移植Linux内核版本号为2.6.29通过本次实践,成功实现了Linux系统移植,从而为后续的Linux应用程序开发及设备驱动程序开发打下了基础,进而为ARM的实际工业自动化应用及其他应用打开一个良好的开端。

           

嵌入式系统是以应用为中心,软硬件可以裁剪,对功能、可靠性、成本、体积、功耗有严格的要求的系统。嵌入式系统的设计开发主要涉及嵌入式微处理器和嵌入式操作系统。处理器的选择是嵌入式系统的基础。目前,市场上的CPU种类繁多,包括X86系列、ARM系列、MIPS系列及其他一些专用的CPU,本文采用的CPUARM系列的S3C2440,它是三星的一款基于ARM920T内核开发的32嵌入式处理器,为手持设备和其它嵌入式应用提供了低功耗、低价格、高性能微控制器的解决方案

操作系统也是嵌入式系统的重要组成部分。目前的嵌入式操作系统有WindowsCELinuxuClinuxuC/OS-IIVxworks等,每种操作系统都有其各自的优点。本文选用的是现在比较流行应用广泛的Linux系统。它是以Unix为基础发展起来的一款开源的操作系统,是真正的多用户、多任务操作系统,具有极强的平台可伸缩性、丰富的图形用户界面及强大的网络功能。再加上它提供了强大的管理功能,因此,Linux系统非常适于嵌入式系统开发

        
  1. 系统引导程序及移植

    1. 构建交叉编译环境

                     

     嵌入式Linux的开发环境可以是PC机上直接安装Linux,也可以是Windows下在虚拟机上安装Linux。本文的实验环境是在Windows7下使用虚拟机安装RedHat Linux操作系统,主机与目标板的链接主要是通过USB口、串口、并口、以太网口建立联系的。PC机一般称为主机,目标板称为目标机。

在移植前首先要先构建交叉编译环境。交叉编译环境是指利用运行在机器上的编译器编译某个源程序,生成在另一台机器上运行的目标代码的过程[5]。主要的开发工具包括三个部分:arm-linux-gcc,arm-linux-objdump,arm-linux-readelf。其中arm-linux-gcc是编译工具,arm-linux-objdump是反汇编工具,arm-linux-readelfELF文件查看工具。

将已经制作好的交叉编译工具的安装包arm-linux-gcc-4.3.2.tar.gz通过vmwaretools工具从windows下挂载到Linux下的/mnt/hgfs/目录下,执行命令[root@localhosthgfs]# tar xvzf arm-linux-gcc-4.3.2.tar.gz -C /opt,将交叉编译工具解压到/opt,然后修改/etc/profile这个配置文件,通过vim编辑器进入文件中,添加export PATH=$PATH:/usr/local/arm/4.3.2/bin,最后关键的一步是执行source  /etc/profile,完成交叉编译环境的安装。


      

         2.bootloader引导程序及移植

引导加载程序是系统加电后运行的第一段代码,类似于PC机上的BIOS,它包括固化在固件(fireware)中的boot代码和bootloader两大部分。通过这段程序,可以初始化硬件设备、建立内存空间的映射图、为最终调用操作系统内核作好准备。Bootloader是依赖于硬件实现的,因此在嵌入式操作系统中建立一个通用的Bootloader是不可行的。大多数Bootloader都分为stage1stage2两大部分。依赖于cpu体系结构的代码,比如设备初始化代码等,通常都放在stage1中,而且通常都是汇编语言来实现,以达到短小精悍的目的。而stage2则通常用c语言来实现,这样可以实现更复杂的功能,而且代码会具有更好的可读性和克移植性[2]

Bootloaderstage1上电启动后通常按以下步骤执行:首先初始化硬件设备,如:CPU内部寄存器、内存等。然后是为加载Bootloaderstage2准备RAM空间,接着拷贝Bootloaderstage2RAM空间中,然后设置好堆栈,最后跳转到stage2c入口点。

Bootloaderstage2通常按以下步骤执行:初始化本阶段要使用的硬件设备,如:串口、网卡等,然后将内核映像和根文件系统映像从flash上读到RAM空间中,最后调用内核。

U-boot是一种通用引导程序,能够支持像ARM,X86,XS-cale等多个处理器系列,支持LinuxVxwork等多个嵌入式操作系统,具有可靠性和稳定性强的特点,拥有丰富的设备驱动源代码,拥有强大的网络支持和大量的开发调试文档。U-boot作为一种源码开放的引导程序,源代码采用模块化编程,能够很好的在各种硬件平台上实现方便移植。本文选用的是GT2440开发板作为Linux操作系统移植的硬件平台,完成U-boot的移植的步骤如下:

1.在顶层的Makefile中为开发板添加新的配置选项[4]

2.board目录中创建一个属于新开发板的目录,并添加文件:

         mkdir  -p  board/gt2440

         cp -rf   board/smkd2440 board/gt2440

3.为开发板添加新的配置文件,先复制参考开发板的配置文件,再修改。

        cp  include/configs/smdk2440.h   include/configs/gt2440.h

4.配置开发板:

make  gt2440_config具体的配置需要根据自己的开发板硬件资源的功能和应用作选择。

5.编译U-boot

make CROSS_COMPILE= arm-linux-,编译成功可以得到U-boot映像。

6.U-boot映像通过JTAG烧写的到GT2440开发板的NANDFlash的根文件分区中。

  1. 嵌入式linux系统移植

    1. 配置编译内核文件

      将Linux源码linux-2.6.29.tar.gz通过vmwaretools工具从windows下挂载到Linux下的/mnt/hgfs/目录下,执行命令[root@localhosthgfs]# tar xvzf   linux-2.6.29.tar.gz -C / 解压到你指定的目录。接下来配置步骤如下:

1.清除原有的配置与中间文件:make  distclean

2.配置内核:make menuconfig ARCH=arm 具体的内核配置应根据硬件平台和应用需要进行选择

3.编译内核:make Image ARCH=arm CROSS_COMPILE= arm-linux-

编译成功后会在arch/<cpu>/boot/目录下看到uImage内核

    1. Linux内核的移植

连接并启动开发板,通过setenv命令设置ethaddr, ipadder, serverip等参数,再通过saveenv命令保存设置。其中ethaddr是网卡地址,ipadder是开发板的ip地址,serveriptftp服务器的地址。

最后把目录下的uImage通过tftp读入到起始地址为0nandflash[5]U-boottftp 22200000 uImage

U-bootnand write 22200000 0 200000

    1. 根文件系统的制作

根文件系统是Linux启动时使用的第一个文件系统。没有根文件系统,Linux将无法正常启动。根文件系统由一系列目录组成,目录中包含了应用程序,c库,以及相关的配置文件。通过如下步骤制作根文件系统

1.创建根文件系统的目录:

mkdir  rootfs

cd   rootfs

mkdir  bin  dev  etc lib  proc sbin  sys  usr  mnt  tmp var

mkdir  usr/bin   usr/lib   usr/sbin  lib/modules

2.创建设备文件:

cd  dev                              /先进入cdev目录

   mknod   -m 666 console c 5 1

   mknod   -m 666 null c 1 3

注意Linux系统正常启动必须要有这两个设备文件

3.安装/etc:

tar etc.tar.gz -C /XXX/rootfs

etc目录下放置了很多的配置文件,包括与系统启动、关闭有关的配置文件,这些配置 文件非常重要,没有它,系统不能正常启动。

4.编译内核模块:进入Linux内核目录

make modules ARCH=arm CROSS_COMPILE= arm-linux

5.安装内核模块

make modules_install ARCH=arm INSTALL_MOD_PATH=/XXX/rootfs

实际上安装内核模块就是把它从内核代码拷贝到指定的位置。

6.配置busybox    具体的配置需要根据自己的应用需求选择

7.编译安装busybox:

  make ARCH=arm CROSS_COMPILE= arm-linux-

make install

  busybox是嵌入式开发中的瑞士军刀:小巧、功能强大,提供了几乎所有你需要的命令。

然后使用mkyaffs2image工具(同时也是一个命令)制作成映像文件rootfs.yaffs(注意此处是制作成适合于NandFlashyaffs型根文件系统),并将其通过串口下载到NandFlash的根文件分区中。

最后,利用终端仿真程序DNWBootloader引导程序通过串口把内核镜像uImage下载到GT2440S3C2440上。完成后重新启动开发板,通过超级终端可以看到系统正常启动。这时,就可以像在虚拟机上操作安装的Linux系统一样,可以在超级终端上输入命令,来控制目标板(GT2440)上的移植的Linux系统。


3.结束语

本文结合嵌入式Linux系统和GT2440平台,研究并实现了Linux操作系统向S3C2440平台的移植,成功搭建了基于ARM9的嵌入式系统开发平台,这对嵌入式Linux的开发有很大的帮助,为后续的驱动器程序和应用程序的开发也奠定了基础。构建嵌入式系统是一项比较复杂的过程,其系统的稳定性,安全性,可靠性等都要使用者详细考虑。虽然本文嵌入式系统的构建是建立在Linux操作系统和S3C2440目标板上的,但是对于其他的操作系统和目标板来说,其原理是一样的。



  • 1
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
第一部分 前言....................................................................................................................................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).................................................................................141 工具介绍....................................................................................................................................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 装载过程.....................................................................................................................162.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/中建立配置头文件......................................................................423.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 <n>........................................................................................................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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值