网站导航: 首页 > 设计参考 > 正文 文章搜索
基于s3c2410的ARMer9开发平台的使用
 
文章编号:
081211163658
文章分类: 单片机 ARM
点 击:
...
关 键 词: s3c2410,开发平台
文章来源:
网络,作者:韩海锋
摘 要:

我的宿主机操作系统是RedHat9.0(建议安装的时候选择“完全安装”)
一个嵌入式Linux系统从软件的角度来看,分为四个层次:

  1. Boot Loader. 包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两大部分。
  2. Linux kernel. 特定于嵌入式板子的定制内核以及内核的启动参数。
  3. File system. 包括根文件系统和建立于 Flash 内存设备之上的文件系统。通常用 ramdisk 来作为root fs。
  4. User application. 特定于用户的应用程序。有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。常用的嵌入式 GUI 有:MicroWindows 和 MiniGUI 等等。

以下是开发环境搭建过程中涉及到的知识点

一. minicom的使用
minicom是Linux OS下功能强大的串口终端程序。具体使用方法在此不详述,有很多相关资料可供查阅。
NOTE:在minicom的设置中,波特率要设置正确(否则,终端上是乱码),软件流控制和硬件流控制都应设置为“无”或“NO”。
minicom的设置被保存到文件/etc/minirc.dfl中。
进入有颜色的minicom界面:# minicom -m8 -c on

二. 配置tftp服务器
在这里,我是通过网络下载kernel image和root fs到开发板的。
tftp服务器是由超级守护进程xinetd运行的,这使得tftp服务器的配置操作比独立运行守护进程的服务器(如 vsftpd)简单得多。一般,修改文件/etc/xinetd.d/tftp,当然,只有安装了tftp服务器,才会有这个文件。把“disable = yes”改成“disable = no”,然后保存,退出。重新启动超级守护进程xinetd,# service xinetd restart.把要下载的文件放到根目录下的tftpboot子目录中就ok了。
NOTE:在控制台终端输入“setup”,选中system services,回车进入系统服务选项菜单,选中[*] tftp(如果没有tftp服务,说明RedHat9.0安装的时候没有选择tftp服务,可以去安装包映像或安装光盘中找到相应的rpm包安装,ok),保存,退出setup界面。

三. 建立NFS文件系统
NFS是由SUN公司发展出来的分散式文件系统。可以让用户通过连接的网络,将其他电脑所共享的文件目录,映射到自己的系统下。用户在操作这些文件和目录时,感觉如同存储在本机上一样。共享出目录的一方称为NFS服务端,另一端称为NFS客户端。这里,当然是在开发板和宿主机之间建立NFS共享。
NOTE:首先确认宿主机上安装了NFS(查看目录/etc/xinetd.d/下是否存在nfs文件)。
NFS服务器端操作如下:

  1. 配置宿主机的以太网口
    # ifconfig eth0 down
    # ifconfig eth0 192.168.1.1 up
  2. 在宿主机上建立目录/home/emdeder/nfs
  3. 编辑/etc/exports文件如下:
    /home/embeder/nfs 192.168.1.2(rw,sync,no_root_squash)
    允许IP为192.168.1.2的ARMer9开发系统将宿主机上的/home/embeder/nfs这个目录mount到开发系统下,即,ARMer9开发系统可以通过网络访问宿主机上的/home/embeder/nfs目录。
  4. 执行/etc/init.d目录下的程序nfs,重启NFS Server
    # cd /etc/init.d
    # exportfs -rav
    # ./nfs restart

NFS客户端的操作如下:

  1. 启动ARMer9开发系统上的Linux系统。
  2. 配置ARMer9开发系统上的以太网口
           # ifconfig eth0 down
           # ifconfig eth0 192.168.1.2 up
  3. ping一下宿主机,看ARMer9开发系统和宿主机的网络是否相通
           # ping -c 5 192.168.1.1
  4. 在ARMer9开发系统中建立目录/tmp/nfs
           # mkdir /tmp/nfs
  5. 若相通,则将宿主机上的目录/home/embeder/nfs mount到ARMer9开发系统下的目录/tmp/nfs上。
           # mount -t nfs -o nolock 192.168.1.1:/home/embeder/nfs /tmp/nfs
  6. 进入目录/tmp/nfs,查看该目录下的内容,是否和宿主机上的目录/home/embeder/nfs中的内容一样?^_^,应该是一样的。

      下面就可以用这种方式在开发板上调试自己的应用程序了。

三. 编译内核
这里,我已经有了目标开发系统的Linux移植源代码,否则,移植是一项烦杂的事情,有时间的话,这也是一件很值得尝试的事情。
编译内核的软件环境是KBuild系统,泛指构建一个完整并能够运行的Linux内核所需要的一切资源。这些资源包括构建程序,脚本,中间件,配置文件和Makefile。依次进行以下操作:
       # make menuconfig     进入Linux内核配置界面。
NOTE:在block device中选上ramdisk的支持并且根据需要修改ramdisk的默认大小,并且选上initrd的支持。还有,在file system中选上自己文件系统所用格式的相应支持(这里是ext3),否则,kernel将不能正确引导文件系统(一般出现kernel panic提示信息)。
我在这里静态编译进了目标开发板的声卡驱动,即Philip uda1341,在sound选项里面,当然,也可以用module的方式编译。
       # make dep
kbuild调用中间件Script/mkdep来生成描述与核心文件形成依赖关系的.h文件(绝大多数)列表。这个列表保存在 .depend 中。用户即使不执行这一步,kbuild也会执行的。
       # make clean
清除上次编译生成的 .o 文件。
       # make zImage
构建内核映像
       # make modules
编译被配置为模块的内核组件
       # make modules_install
把编译好的内核模块按照功能copy到/lib/modules/2.4.23目录下
编译后,可安装模块将被存放的宿主机目录是:
/tmp/lib/modules/2.4.18-rmk7-pxa1/
驱动模块所在目录 /tmp/lib/modules/2.4.18-rmk7-pxa1/kernel/driver

四. kernel和ramdisk的U-Boot可启动映像文件的制作
uboot源代码的 tools/ 目录下有mkimage工具,这个工具可以用来制作不压缩或者压缩的多种可启动映象文件。
mkimage在制作可启动映象文件的时候,是在原来的可执行映象文件的前面加上一个0x40字节的头,记录 mkimage 的参数所指定的信息,这样uboot才能识别这个映象是针对哪个CPU体系结构的,哪个OS的,哪种类型,加载到内存中的哪个位置,入口点在内存中的哪个位置以及映象名是什么。
       root@Glym:/tftpboot# ./mkimage
       Usage: ./mkimage -l image
          -l ==> list image header information
              ./mkimage -A arch -O os -T type -C comp -a addr -e ep -n name -d data_file[:data_file...] image
          -A ==> set architecture to 'arch'
          -O ==> set operating system to 'os'
          -T ==> set image type to 'type'
          -C ==> set compression type 'comp'
          -a ==> set load address to 'addr' (hex)
          -e ==> set entry point to 'ep' (hex)
          -n ==> set image name to 'name'
          -d ==> use image data from 'datafile'
          -x ==> set XIP (execute in place)
       参数说明:
       -A 指定CPU的体系结构: 
       取值              表示的体系结构
       alpha             Alpha              
       arm               ARM              
       x86               Intel x86
       ia64               IA64
       mips              MIPS
       mips64          MIPS 64 Bit
       ppc               PowerPC
       s390              IBM S390
       sh                  SuperH
       sparc             SPARC
       sparc64         SPARC 64 Bit
       m68k            MC68000 

       -O 指定操作系统类型,可以取以下值:
       openbsd、netbsd、freebsd、4_4bsd、linux、svr4、esix、solaris、irix、sco、
       dell、ncr、lynxos、vxworks、psos、qnx、u-boot、rtems、artos 

       -T 指定映象类型,可以取以下值:
       standalone、kernel、ramdisk、multi、firmware、script、filesystem 

       -C 指定映象压缩方式,可以取以下值:
       none   不压缩
       gzip   用gzip的压缩方式
       bzip2  用bzip2的压缩方式 

       -a 指定映象在内存中的加载地址,映象下载到内存中时,要按照用mkimage制作映象时,这个参数所指定的地址值来下载 

       -e 指定映象运行的入口点地址,这个地址就是-a参数指定的值加上0x40(因为前面有个mkimage添加的0x40个字节的头) 

       -n 指定映象名 

       -d 指定制作映象的源文件

例:制作PowerPC体系结构,vxworks操作系统的不压缩kernel映象,准备下载到内存地址0x800000位置,映象名称为vxworks.image:
       root@Glym:/tftpboot# ./mkimage -A ppc -O vxworks -T kernel -C none -a 0x800000 -e 0x800040 -n vxworks.image -d vxWorks image
最后会生成一个文件名称为image的映象文件,这个文件就是我们所需要的了。请注意-n参数中指定映象名不是生成的映象文件地文件名,映象名是记录在0x40个字节的头部信息中的。 

 
相关文章:
s3c2410 Timer工作原理[图]
虚拟SPI时序在TC77与S3C2410通信中的应用[图]
s3c2410 MMU(存储器管理单元)讲解[图]
s3c2410 CACHES,WRITE BUFFER讲解[图]
S3C2410中的脉宽调制定时器(PWM)
S3C2410 中断程序的实现
s3c2410 watchdog详解
s3c2410 中断异常处理[图]
基于ARM9芯片S3C2410a的GPRS数据终端设计
ARM系统中DMA方式在数据采集中的应用[图]
AD7888与S3C2410的SPI接口及Linux下嵌入式驱动的实现[图]
ARM S3C2410硬件手册重点
基于ARM S3C2410与TMS320C6416的接口设计[图]
S3C2410上Jffs2的移植
ARM S3C2410驱动TFT-LCD的研究[图]
MINIGUI在S3C2410开发板的移植
mplayer在S3C2410上的移植
在S3C2410上移植yaffs2文件系统
S3C2410 bootloader(vivi)阅读笔记
s3c2410 LCD图片显示
S3C2410 LCD 驱动程序移植及GUI程序编写[图]
S3C2410X开发总结及心得
U-Boot在S3C2410开发板上的移植
S3C2410初始化
S3C2410通过IIS总线与音频芯片UDA1380进行通信
在S3C2410上移植bluetooth(蓝牙)
S3c2410软件调试总结
S3C2410上触摸屏的应用实例
S3c2410的触摸屏及模数转换
S3C2410的快速启动技术
基于嵌入式linux和s3c2410平台的视频采集
S3c2410 LCD驱动学习心得
s3c2410移植MPlayer到linux2.6

12 下一页
 
最新开源项目
 
 
  查看更多...  
 
本站相关产品   淘宝网店
 




 
  查看更多...  

 

本站程序由百合电子工作室开发和维护
Copyright @ baihe electric studio
渝ICP备09006681号-4