uclinux教程_uclinux - CSDN
精华内容
参与话题
  • uClinux 启动过程详细分析(一)

    千次阅读 2008-05-29 09:12:00
    <!--google_ad_client = "pub-2299987709779770";/* 728x90, 创建于 08-5-27 */google_ad_slot = "2248241756";google_ad_width = 728;google_ad_height = 90;//--> <script type="text/javascript"src
     <script type="text/javascript"
    src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
    </script>

    uclinux启动的详细过程有着诸多的信息可以给我们巨大的启发,我们在这里讨论的就是要 对这些信息做一个具体细致的分析,通过我们的讨论,大家会对uclinux启动过程中出现的、以前感觉熟悉的、但却又似是而非的东西有一个确切的了解,并 且能了解到这些输出信息的来龙去脉。

    uclinux的启动过程,它是一幅缩影图,对它有了一个详细的了解后,有助于指导我们更加深入地了解uclinux的核心。

    大家对uclinux的启动应该都比较熟悉,作为一名嵌入系统开发者,你一定遇到过下面的情景:
    在某论坛上看到一篇帖子,上面贴着uclinux开发板启动时的一堆信息,然后大家在帖子里讨论着这个启动过程中出现的问题,随机举例如下:

     
    Linux version 2.4.20-uc1 (root@Local) (gcc version 2.95.3 
    20010315 (release)(ColdFire patches - 20010318 from http://f
    (uClinux XIP and shared lib patches from http://www.snapgear.com/)) #20 三 6月 1
    8 00:58:31 CST 2003
    Processor: Samsung S3C4510B revision 6
    Architecture: SNDS100
    On node 0 totalpages: 4096
    zone(0): 0 pages.
    zone(1): 4096 pages.
    zone(2): 0 pages.
    Kernel command line: root=/dev/rom0
    Calibrating delay loop... 49.76 BogoMIPS
    Memory: 16MB = 16MB total
    Memory: 14348KB available (1615K code, 156K data, 40K init)
    Dentry cache hash table entries: 2048 (order: 2, 16384 bytes)
    Inode cache hash table entries: 1024 (order: 1,
    Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
    Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes)
    Page-cache hash table entries: 4096 (order: 2, 16384 bytes)
    POSIX conformance testing by UNIFIX
    Linux NET4.0 for Linux 2.4
    Based upon Swansea University Computer Society NET3.039
    Initializing RT netlink socket
    Starting kswapd
    Samsung S3C4510 Serial driver version 0.9 (2001-12-27) with no serial options en
    abled
    ttyS00 at 0x3ffd000 (irq = 5) is a S3C4510B
    ttyS01 at 0x3ffe000 (irq = 7) is a S3C451
    Blkmem copyright 1998,1999 D. Jeff Dionne
    Blkmem copyright 1998 Kenneth Albanowski
    Blkmem 1 disk images:
    0: BE558-1A5D57 [VIRTUAL BE558-1A5D57] (RO)
    RAMDISK driver initialized: 16 RAM disks of 1024K size 1024 blocksize
    Samsung S3C4510 Ethernet driver version 0.1 (2002-02-20) <mac@os.nctu.edu.tw>
    eth0: 00:40:95:36:35:34
    NET4: Linux TCP/IP 1.0 for NET4.0
    IP Protocols: ICMP, UDP, TCP
    IP: routing cache hash table of 512 buckets, 4Kbytes
    TCP: Hash tables configured (established 1024 bind 1024)
    VFS: Mounted root (romfs
    Freeing init memory: 40K

    上面的这些输出信息,也可能包括你自己正在做的uclinux开发板的输出信息,其中的每一行,每一个字的含义,你是否深究过,或者说大部分的含义你能确切地知道的?本人想在这里结合本人在实践中一些体会来和广大uclinux的开发者一起读懂这些信息。

    我们在这里将以一个真实的uclinux系统的启动过程为例,来分析这些输出信息。启动信息的原始内容将用标记标出,以区别与注释。

    uclinux的启动主要分为两个阶段:

    • ① 第一部分bootloader启动阶段
    • ② 第二部分linux 内核初始化和启动阶段
      • 第一节:start_kernel
      • 第二节:用户模式( user_mode )开始,start_kernel结束
      • 第三节:加载linux内核完毕,转入cpu_idle进程

    第一部分 : bootloader启动


    图 1:uclinux启动状态转移示意图
    uclinux启动状态转移示意图
    Boot loader v0.12
    NOTE: this boot loader is designed to boot kernels made with the
    2.4.xx releases
    bootloader for XV
    Built at Nov 20 2005 10:12:35

    Bootloader头信息,版本,编译时间等,这个因不同的bootloader的设计而有所不同,由此你能看出bootloader的版本信息,有很多使用的是通用的bootloader,如u-boot,redboot等。

    Loaded to 0x90060000

    将bootloader加载到内存ram中的0x90060000处,即将bootloader加载到内存的高端地址处。

    Linux内核将被bootloader加载到0x90090000处。

    Found boot configuration

    查找到了启动boot的配置信息。

    Booted from parallel flash

    <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

    从flash中启动代码,此处的flash为并行闪存。

    注意:任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。

    从上面的信息,我们可以对flash类型特点有个比较明确的了解。

    CPU clock rate: 200 MHz

    开发板上所使用的CPU的主频为200MHZ。

    DRAM size is 128MB (128MB/0MB)

    动态内存ram大小为128M。

    在嵌入式系统中使用DRAM内存的设计比较广泛。

    在uclinux的系统中,系统运行时间较长后,会出现内存碎片的问题,导致再分配大块内存时会失败。这是在uclinux系统中经常遇到的问题,解决的办法通常有使用静态内存、应用程序启动时预先分配大内存、使用内存池等。

    地址辅助说明:

    先说明一下内存地址数字情况,主要是为了方便记忆。

    可以访问的内存为4G。
    0x40000000是1GB处;
    0x00040000是256K处,
    0x00020000是128K处,
    0x90000000是2GB多的地方。
    1M->0x00100000,
    2M->0x00200000,
    8M->0x00800000,
    16M->0x01000000,
    32M->0x02000000,
    256M->0x10000000,
    64K->0x00010000,

    注意:rootfs并不是一个具体的文件系统类型,如jffs。它只是一个理论上的概念。在具体的嵌入系统实例中,可以将某种具体的文件系统设置为根文件系统rootfs,如我们可以设置romfs为根文件系统,也可以设置jffs为根文件系统。

    这里的ROMFS只读文件系统只是一种具体的文件系统类型,也是在嵌入系统中经常使用到的类型。

    看完了上面的内容,以后你对出现的类似“kernel Panic:VFS:Unable to mount root fs on 0:00”的含义应该已经了解了。其中“VFS:”就是虚拟文件系统管理器操作时的输出信息了。

    File linux.bin.gz found

    linux kernel内核文件名,它是在只读文件系统romfs上的一个组成部分。

    Unzipping image from 0x4639DE60 to 0x90090000, size = 1316021

    将romfs中的linux kernel解压缩到0x90090000,之后会从这个内存地址启动内核。romfs为压缩格式文件,使用压缩的只读文件系统,是为了保持制作出来的整 个系统所占用的flash空间减小。这个内核的大小为1.3M左右,这也是目前大多数嵌入系统所使用的方法。

    Inptr = 0x00000014(20)
    Inflating....

    释放……

    Outcnt = 0x0030e7c8(3205064)
    Final Inptr = 0x001414ad(1316013)
    Original CRC = 0xcbd73adb
    Computed CRC = 0xcbd73adb

    做释放后的CRC检查。

    Boot kernel at 0x90090000 with ROMFS at 0x46040000

    kernel已经被从romfs中释放到内存地址0x90090000处,可以跳转到此处启动kernel了,这里是指定的kernel的起始地址。

    Press 'enter' to boot

    系统等待启动,后面将看到linux kernel的启动过程了。


    4K->0x00001000

    这个是个快速记忆的方法,你可以根据地址中1的位置和其后0的个数来快速知道换算后的地址是在多少兆的地方。比如,1的后面5个0,代表1M的大小,6个0,代表16M,以此类推。

    ROMFS found at 0x46040000, Volume name = rom 43f291aa

    romfs,只读文件系统所在的地址为:0x46040000 (flash映射后的第3分区)。卷名为rom。

    romfs 和rootfs概念上有所区别。flash在内存中的的起始地址为0x46000000,而ROMFS在flash分区上的起始位置为 0x00040000,所以ROMFS在内存地址中的位置就为0x46040000。这个细节的部分可以参考flash分区时的地方,Creating 3 MTD partitions。

    romfs中包括kernel和app应用,不包括bootloader和firmware信息头。romfs只读文件系统里的内容有很多种分类方法,我们可以将kernel和app同时放里面,作为根文件系统下的一个文件,也可以在flash上另外划分区域来分别存放。

    <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
    展开全文
  • 搭建uClinux 开发环境

    2012-02-02 18:14:53
    最近,在搭建交叉环境碰到...uClinux-dist-20101026.tar.bz2"进行部署! 在执行完如下指令后: #make xconfig #make dep #make 提示:没有找到“arm-linux-tools”文件夹,孰,拷贝“arm-linux-gcc-3.4...

    最近,在搭建交叉环境碰到了若干问题,使用google搜索,查看了若干文章。无果!-_-

    没有办法,只能使用官网 上的"uClinux-dist-20101026.tar.bz2"进行部署!

    在执行完如下指令后:

    #make xconfig #make dep #make

    提示:没有找到“arm-linux-tools”文件夹,孰,拷贝“arm-linux-gcc-3.4.1.tar.tar” 到根目录,执行解压命令。

    再重新执行,通过!

    然后,执行“arm-elf-tools-20030314.sh”。

    至此,开发环境完成。

    展开全文
  • STM32 ucLinux环境搭建

    千次阅读 2015-12-14 19:18:41
    ucLinux用到的资源https://github.com/jserv/stm32f429-linux-builderhttps://github.com/ntfreak/openocd1、usblib安装./configure --disable-udevmakesudo make install2、OPEN OCD 安装sudo apt-get ...
    ucLinux用到的资源
    https://github.com/jserv/stm32f429-linux-builder
    https://github.com/ntfreak/openocd

    1、usblib安装
    ./configure --disable-udev
    make
    sudo make install

    2、OPEN OCD 安装
    sudo apt-get install libtool autoconf automake texinfo
    ./configure --prefix=/usr/local --enable-jlink --enable-ulink --enable-stlink
    echo -e "all:\ninstall:" > doc/Makefile
    make
    sudo make install

    3、genromfs-0.5.2安装
    make
    sudo make install


    4、arm-2010q1安装
    gedit ~/.bashrc
    加 export PATH=/home/build/tools/arm-2010q1/bin:$PATH
    解压,设置环境变量

    5、ST-Link/V2不能挂载到VirtualBox的解决办法
    VirtualBox从ST-Link/V2读到的序列号是乱码,在虚拟机设置中将ST-Link/V2添加到USB设备筛选器中,并编辑该筛选器将其序列号清空,就可以解决这个问题。

    6、添加usb访问权限
    sudo gedit /etc/udev/rules.d/50-myusb.rules
    增加 SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", GROUP="build", MODE="0666"

    展开全文
  • 开发软件在uclinux操作系统下进行,本文详细介绍了uclinux开发环境的建立及编译运行、RS232串口模块和以太网模块的软件设计。 本文是基于嵌入式系统ARM9平台的设计,并得到了重庆大学创新实验室的资助,其系统设计及...
    本文研究的是基于ARM9的32位高端嵌入式微处理器和嵌入式操作系统内核,设计新型数据采集系统平台,是得到重庆大学创新实验室资助的研发项目。开发软件在uclinux操作系统下进行,本文详细介绍了uclinux开发环境的建立及编译运行、RS232串口模块和以太网模块的软件设计。 
     本文是基于嵌入式系统ARM9平台的设计,并得到了重庆大学创新实验室的资助,其系统设计及网络软件编程均经过实践检验,具有较强的通用性,部分功能的改变只需添加或删除相关的代码,不必对整个系统进行大改动,提供的实验步骤具有可操作性。本文是研发小组在研发过程中进行的软件部分总结而编写的。     

      1 嵌入式数据采集平台整体设计      

      一个完整的嵌入式数据采集平台系统包括硬件和软件两部分。在硬件方面,由于ARM9芯片本身集成的接口比较多,而ARM7本身集成的接口较少,从整个系统的成本来看,选择ARM9与选择ARM7作为控制器的系统总体成本基本上相差不大;而从效果来看,由于ARM9大多数接口都在芯片内部集成,对硬件设计和调试来说,都方便了很多,因此我们采用三星的ARM9芯片S3C2410。由于ARM9芯片的封装基本上都采用BGA封装格式,电路板的设计、制作以及芯片的焊接都比较麻烦,因此采用核心板的方式,这样底板就可以使用两层板,可以节省电路板的制作费用(BGA封装的芯片一般必须使用多层板,制板费比较贵),并且核心板可以重复利用,只要接口相同,同一块核心板可以在不同的底板上使用。

      2 嵌入式数据采集平台硬件 

      Embest Arm EduKit II 开发板是实验系统的主要硬件平台,它是英蓓特公司开发的一款全功能ARM开发板,基于Samsung 公司的S3C2410x处理器(ARM920T),资源丰富,特别集成了可连接多种液晶控制器及串行USB主/从控制器单元。硬件系统包含了嵌入式系统开发应用所需的
     大部分设备,如串口、以太网口、USB口、音频输出、LCD及TSP触摸屏、5*4的小键盘、大容量的FLASH和SDRAM等等,完全自主设计的软硬件系统,可以支持使用Embest 或ARM JTAG 仿真器的开发调试[1]。      

      由ARM完成了数据包的预处理功能,包括数据包类型的读取;源IP地址,目的IP地址的读取、比较;数据包协议类型的提取;IP数据包头的奇偶校验;TCP/UDP数据包端口提取,检测等。特征值的数据采样也由ARM完成[3]。      

      3 嵌入式数据采集平台软件设计      

      3. 1 建立uclinux开发环境      

      为了实现基于uclinux的应用系统的开发和研究,就必须建立一个完备的 uclinux开发环境。基于uclinux系统的应用开发环境一般是由目标板和宿主PC机所构成。目标板用于运行操作系统和系统应用程序,而目标板所用到的操作系统的内核编译、应用程序的开发和调试则需要通过宿主PC机来完成。双方之间一般通过串口和以太网口建立连接。     

      3.1.1 宿主机安装uclinux-Cygwin软件      

      Cygwin软件是一个运行于windows下的Linux模拟环境。它由二部分组成: 其一:动态链接库Cygwin.dll。作为Windows环境下的Linux模拟层,提供标准的Linux API函数。 其二:一组Linux 工具集。使用户可以在Windows环境下使用Linux 环境所提供的各种工具。      

      Cygwin提供的一组功能强大的工具,包括大多数GNU软件(如gcc,gdb,xfree86,bash,tetex,opengl,perl,python等),可以将应用程序从Linux移植到Windows平台。 Cygwin对于学习掌握Linux操作环境,或者进行某些特殊的开发工作,尤其是使用GNU工具集在Windows上进行嵌入式系统开发,非常有用[3]。      

      3.1.2 宿主机安装开发工具链       

     (1)工具链源代码

      工具链源代码从uclinux官方网站下载,下载地址为http://www.uclinux.org/pub/uClinux/arm-elf-tools/tools-20030314       

     (2)工具链的安装
      Win2000系统Cygwin环境的工具链安装软件和Linux系统下的工具链安装解压包:arm-elf-compiler.tar.gz ,linux系统下工具链安装解压包,在控制台使用以下命令安装 
           tar xvzf arm-elf-compiler.tar.gz ,安装arm-elf-tools-cygwin.sh 。 
           Win2000下工具链安装脚本文件,在Cygwin下使用以下命令安装 ,
    ./arm-elf-tools-cygwin.sh ,显示提示信息后直接按回车键安装,工具链将被安装到 /usr/local/armtools目录。

           3.1.3编译运行uClinux

           uClinux源代码包,文件名为uClinux-dist.tar.gz。 
           解压uCLinux源代码包,执行命令: 
           mkdir /usr/local/src, 
           cd /usr/local/src , 
           tar xzvf /tmp/uclinux-dist/uclinux-dist.tar.gz ,解压完毕后,在/usr/local/src下面会有一个文件夹uclinux-dist存放源代码,以后的操作均在此目录下进行。       

      3.1.4 配置uClinux  

     执行 make xconfig 命令后弹出配置窗口。点击 Target Platform Selection(目标平台选择),弹出窗口,用户根据要求进行设置。       

      3.1.5 用户程序配置      

      在上节的目标平台配置过程中,选择定制用户程序后将弹出用户程序配置窗口,该窗口详细列出了用户程序配置选项,用户根据应用的需求进行选择,选中的用户程序最终将出现在文件系统中并影响文件系统的大小,用户需要考虑系统是否有相当的资源。在配置过程中不涉及修改的选项采用默认设置。
    编译uClinux ,在Cygwin中依次执行以下命令完成uClinux的编译过程:
    cd /usr/local/src/uclinux-dist , make dep , make clean ,PATH=”/usr/local/armtools/
    bin:$PATH” , make lib_only , make user_only ,make romfs ,make image ,最终在images目录下生成2个文件: zImage( uClinux 内核2.4.x的压缩方式可执行映像文件)、romfs.img (文件系统的映像文件)。      

      3.1.6 运行uClinux      

      烧写映像文件 使用Embest Flash Programmer 和Embest ARM 仿真器或者其他烧写工具      

      将启动软件映像文件bootloader.bin、自己编译生成的内核映像文件zImage、文件系统映像文件romfs.img 烧写到扇区。 然后配置并启动超级终端,启动Win2000下超级终端软件,并设置超级终端为115200 波特率,无校验,1 位停止位,无数据流控制。运行uClinux ,复位系统,在超级终端将显示提示信息,在出现命令提示符“/>”后可输入uclinux各类命令进行操作。      

      3.2 以太网模块软件设计       

      Linux Socket是通过标准的UNIX文件描述符和其它程序通信的一个方法,其实质是提供了一个进程的端点,可以看作是一种特殊的管道。每个套接字都有一个半相关描述协议,本地地址、本地端口,或者一个全相关描述协议,本地地址、本地端口、远程地址、远程端口。每一个套接字都有一个本地的由操作系统分配的唯一的套接字号。本文采用的流式Socket提供可靠的、面向连接的通信流,并使用TCP协议,从而保证了数据传输的正确性。Socket是最为通用的一种基于TCP/IP的网络通信编程机接口,也是在Internet上进行应用程序开发最为通用的一种API。嵌入式Socket通信所要调用的主要库函数有:Socket()函数、 bind()函数、connect()函数、listen()函数、accept()函数、send()和receive()函数、 receive()函数。       

      3.3 网络协议分析及socket编程相关原理      

      uCLinux 下的 TCP/IP 网络协议栈的各层之间是通过一系列互相连接层的软件来实现 Internet 地址族的。其中 BSD socket 层由专门用来处理 BSD socket的通用套接字管理软件来处理,它由 INET socket 层来支持。INET socket 为基于 IP 的协议 TCP 和 UDP 管理传输端点。UDP(用户数据报协议)是一个无连接协议,而 TCP(传输控制协议)是一个可靠的端对端协议。传输 UDP 包的时候,uCLinux 不知道也不关心它们是否安全到达了目的地。TCP 则不同。在 TCP 连接的两端都需要加上一个编号,以保证传输的数据被正确接收。在IP 层,实现了 Internet 协议代码,这些代码要给传输的数据加上一个 IP 头,并且知道如何把传入的 IP 包送给 TCP 或者 UDP 协议。在 IP 层以下,就是网络设备来支持所有的 uCLinux 网络工作,如 PLIP、SLIP 和以太网。      

      网络的 socket 数据传输是一种特殊的 I/O,socket 也是一种文件描述符,也具有一个类似文件的函数调用 socket()。该函数返回一个整型的 socket 描述符,随后的连接建立、数据传输等操作都是通过该 socket 函数实现的。常用的socket 类型有两种:流式 socket 和数据报式 socket。两者的区别在于:前者对应于 TCP 服务,后者对应于 UDP 服务。       

      3.4 实现步骤与结果        

      基于uClinux下的网络接口编写应用程序,要求实现一个简单的客户机/服务器应用,服务器程序接收客户机发送来的字符串并回传给客户端,同时将接收到的字符串打印到串口终端。在uClinux系统下映射主机目录进行程序的调试[3]。       

      本节由两部分组成:(1) 开发板做客户端,PC机做服务器;(2)开发板做服务器,PC机做客户端。

      3.4.1 开发板做客户端,PC机做服务器
      首先在写字板上编写客户端程序client.c完成以后将其拷贝到工作目录

           f/cygwin/usr/local/src/uclinux-dist/user/app中在cygwin软件中执行以下操作:
    cd /, ls , export PATH=/usr/local/armtools/bin:$PATH(设置路径),
    cd /usr/local/src/uclinux-dist/user/app(进入工作目录),
    ls, arm-elf-gcc –o client client.c –elf2flt,生成二进制client 并复制到目录f/cygwin/usr/local/src/uclinux-dist/romfs/bin中,
    gcc –o client client.c ,cd ..,cd ..,退回到目录usr/local/src/uclinux-dist中,
    make image,生成镜像文件zImage在f/cygwin/usr/local/src/uclinux-dist/image中
      下面我们要做的就是将这个生成的镜像文件烧写到开发板的flash中,步骤如下:
      打开英倍特软件进行配置,最后点击按钮programm进行烧写。
      打开 /开始/程序/附件/通信/超级终端,设置串口设置,在超级终端执行以下指令: 
           ifconfig eth0 192.168.1.200,//修改开发板的IP为192.168.1.200
    cd /bin,./client 192.168.105(服务器IP),//运行 client 并修改服务器IP
      结果显示send to server...default test string字样。       

      在另一PC机上打开tcp&udp测试工具,并进行以下设置 :创建服务器—端口统一设置为8000,本地端口设置为8000,选择TCP方式,设置好后点击连接,连接成功后即可向服务器发送数据。       

      3.4.2 开发板做客户端,PC机做服务器
      首先在写字板上编写服务器程序server.c。完成以后将其拷贝到工作目录f/cygwin/usr/local/src/uclinux-dist/user/app中在cygwin软件中执行以下操作:
    cd /,ls,export PATH=/usr/local/armtools/bin:$PATH(设置路径),cd /usr/local/src/uclinux-dist/user/app(进入工作目录),ls,arm-elf-gcc –o server server.c –elf2flt,生成二进制server 将其复制到目录f/cygwin/usr/local/src/uclinux-dist/romfs/bin中,gcc –o server server.c,cd ..,cd ..,退回到目录usr/local/src/uclinux-dist中,make image,生成镜像文件zImage在f/cygwin/usr/local/src/uclinux-dist/image中。     

      下面我们要做的就是将这个生成的镜像文件烧写到开发板的flash中,步骤如下:
      打开英倍特软件进行配置,方法同上。最后点击按钮programm进行烧写。烧写需要一段时间,烧写完成后,打开开始/程序/附件/通信/超级终端,重新启动开发板。
    ifconfig eth0 192.168.1.200,修改开发板的IP为192.168.1.200,cd bin,进入目录bin
    ./server ,运行server。显示server listening...wait for cnnect…开发板进入查询等待状态。

      在另一PC机上打开tcp&udp测试工具,并进行以下设置 :创建服务器—端口统一设置为8000,本地端口设置为8000,选择TCP方式,目标板IP:192.168.1.200(即服务器地址)设置好后点击连接,连接成功。

      在建立连接的过程中间,会出现各种设置都正确的情况下建立连接失败的问题,这个时候应该点击“开始”按钮,打开“运行”看两台PC机能否PING通,如果互相不能PING通,要看IP设置是否在同一网段,若已经在同一网段,试着取消PC机的防火墙,这样应该可以建立连接了。

      4 总结   

      本文作者创新点是研究了数据采集平台涉及的关键技术,系统运行的硬软件平台,完成了uclinux开发环境的建立及编译运行,在此基础上进行了网络通信的软件设计。通过应用程序的编写与调试,总结了网络通信的调试方法及步骤,具有指导实际开发的意义。

      参考文献

      [1]田泽. ARM7嵌入式开发实验与实践 .北京:北京航空航天大学出版社,2006-9 
      [2]田泽.ARM7 Clinux开发实验与实践.北京:北京航空航天大学出版社,2006-11 
      [3]李铁峰,林白,李鸥. 基于FPGA的网络应用硬件开发平台的实现,微计算机信息,2005,(05) 
      [4]田泽.嵌入式系统开发与应用教程 .北京:北京航空航天大学出版社,2006-10 
      [5]田泽.嵌入式系统开发与应用实验教程.北京:北京航空航天大学出版社,2004,136-143

      作者简介:冷建筑(1974-),男(汉族),四川成都市人,重庆大学通信工程学院, 电路与系统专业,硕士,主要从事嵌入式硬软件开发和网络编程。

      通信地址:(400044 重庆市沙坪坝区 重庆大学通信工程学院A区主楼2311室) 冷建筑 

    展开全文
  • lpc2210 uclinux

    千次阅读 2009-03-05 10:03:00
    摘 要:EasyARM2200开发板仅有512KB RAM和2MB FLASH存储器资源,能否运行uClinux以及如何运行 uClinux,是喜爱这款开发板的技术人员一个共同的心声。本文通过分析uClinux的内存管理和内核引导机制,介绍了uClinux2.4...
  • uclinux编译 心得一

    千次阅读 2018-06-20 15:59:24
    uClinux作为针对没有MMU的嵌入LINUX重要分支,因此也想一鼓作气,编译一个平台来试试。心酸啊,没有想到遇到许多的问题,花了很多的时间才搞定了一个平台。零零碎碎的将我的心路历程写出来。因为是事后凭借回忆写的...
  • SkyEye详细安装使用指南 Ver 0.4

    千次阅读 2007-05-10 23:45:00
    SkyEye详细安装使用指南 Ver 0.4陈 渝2003-01-22 一 在windows环境下安装SkyEye1. 安装 cygwin2. 安装skyeye3. 建立源码调试环境4. 执行调试程序5. 从源码生成ucosii的执行码5.1 建立arm-tools in cygwin 环境...
  • uCLinux的编译

    千次阅读 2010-11-19 11:36:00
    uCLinux的编译其实挺容易的。下面列下步骤1、配置交叉编译环境 将arm-elf-tools-20030314.sh拷贝到/home/wjb/下(目录可以自己随便选了),运行安装: #sh arm-elf-tools-20030314.sh 注:其实这一步我在之前编译u-...
  • uClinux 在EasyARM2200开发板上的运行[ 2006-12-7 17:33:00 | By: MCUBLOG ] 摘 要:EasyARM2200开发板仅有512KB RAM和2MB FLASH存储器资源,能否运行uClinux以及如何运行 uClinux,是喜爱这款开发板的技术人员一...
  • uClinux的编译与运行详解-转

    千次阅读 2008-03-25 18:08:00
    uClinux的编译与运行详解按常规编译完成后应该生成image.bin linux linux.data linux.text romfs.img这5个文件,不过我只有linux/boot.rom(=romfs.img),今天上网查了查它们的定义。 romfs.img:这个文件是通过...
  • uclinux + nios (UCLinux在NIOS上的移植)

    千次阅读 2014-04-11 15:41:30
    1. 环境 在Linux下,或至少 windows + vmware player,不建议直接使用 Windows(懒得尝试)。 使用 Linux 哪个 Distro 不重要,本文使用的是 Archlinux。和 Windows 共享等问题本文不涉及。所有操作都是在 ...
  • ARM模拟器-skyeye(天目)的安装和使用 SkyEye是一个可以运行嵌入式操作系统的硬件仿真工具,这样就可以在没有硬件条件下来进行嵌入式系统的开发。 以下操作均在Fedora Core 1.0里通过。 文档摘要: ...
  • 嵌入式毕业设计昨天该成做网站了,

    千次阅读 2007-05-21 17:44:00
    昨天去找带毕业设计的老师,老师突然对我最近给别人做的网站感兴趣,我打开给他看了,他问我这个网站有没有人用,我告诉他没有人用,然后他就和我商量着,把我的毕业设计该成这个,我毕业设计本来要做的是基于WEB的嵌入式...
  • uClinux+S3C44B0X驱动编写总结

    千次阅读 2009-09-21 10:41:00
    uClinux驱动开发总结弄了几天,终于成功实现了uClinux下的驱动,喜悦中……有收获了就应该总结一下,以便能给日后的工作提供一个参考,并且和想要写uClinux驱动的朋友们分享一下。 使用uClinux-2.4 + S3C44B0X + ...
  • arm-linux-gcc工具链下载

    千次阅读 2010-03-11 14:01:00
    http://www.handhelds.org/download/projects/toolchain/http://ftp.arm.linux.org.uk/pub/armlinux/toolchain/http://so.hustonline.net/list.aspx?word=arm-linux-gcc-4.1.2&schoolInput=%CB%F9%D3%D0%D1%A7%D0%A3
  • 基于S3C44B0微处理器的uClinux内核引导剖析姜江E-mail:jznsmail@tom.comBlog:http://blog.csdn.net/jznsmail摘 要:本文采用三星公司的S3C44B0微处理器,对uClinux操作系统内核的引导过程进行了剖析。关键字:S3C44...
  • 基于arm+uClinux的嵌入式系统的开发

    千次阅读 2009-07-14 15:58:00
    前些日子基于arm+uClinux开发了一个网络监控系统,眼看项目马上要做完了,终于松了一口气,于是整理了一些笔记和心得想和大家针对这种开发模式进行一些探讨,希望对各位有所帮助。 按照我的开发过程想分以下几部分...
  • STM32F103 ucLinux开发BOOT

    2020-01-06 11:33:59
    STM32F103 ucLinux开发BOOT:https://www.cnblogs.com/fozu/p/3618076.html 如何在STM32上移植Linux:http://www.sohu.com/a/253118552_464086 stm32在linux下开发:https://blog.csdn.net/yanchanchu9519/artic...
  • 安装arm-elf-tools时出错的解决办法

    千次阅读 2009-06-30 09:28:00
    1# 大 中 小 发表于 2009-4-17 14:56 只看该作者 安装arm-elf-tools时出错在uclinux.org下载的arm-elf-tools-20030314.sh,在ubuntu8.04下执行:sudo ./arm-elf-tools-20030314.sh,结果显示:tail: cannot open `+...
1 2 3 4 5 ... 20
收藏数 748
精华内容 299
关键字:

uclinux教程