微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于ARM和Linux的嵌入式平台的构建

基于ARM和Linux的嵌入式平台的构建

时间:02-03 来源:互联网 点击:

lt_nand_part[] ={

  [0] = {

  .name=U-boot,

  .offset= 0,

  .size= 0x00040000,

  }

其中name 是分区的名字,offset 是偏移的开始地址,size是分区的大小, 其余部分的分区与此类似。

②下面代码是添加Nand Flash 的设置表, 因为板子上只有一片Nand Flash, 因此也就只有一个设置表。

  static struct s3c2410_nand_set mini2440_nand_sets[] = {

  [0] = {

  .name= NAND,

  .nr_chips= 1,

  .nr_partitions=

  ARRAY_SIZE(mini2440_default_nand_part),

  .partitions= mini2440_default_nand_part,

  }

  }

③上面的设置完成后, 还需要将Nand Flash 设备注册到系统中。下面这段代码就是将Nand Flash 设备添加到开发板的设备列表结构。

  static struct platform_device *mini2440_devices [] __initdata

  = {

  s3c_device_nand,

  }

④在mini2440_machine_init 函数中添加平台的数据信息。

  static void __init mini2440_machine_init(void){

  s3c_device_nand.dev.platform_data=mini2440_nand_info;

  }

现在可以进入kernel/linux-2.6.32.2/arch/arm/boot 目录,然后执行下面的命令, 就会在该目录下生成uImage.img格式的、U-Boot 可以引导的内核镜象。

  Mkimage – n ‘linux-2.6.32.2 ’ –A arm – O linux–T kernel –C none – a 0x30008000 – e 0x30008000 –d zImage uImage.img

至此, 可以把生成的uImage.img 格式的镜像文件复制到tftp 目录下, 使用tftp 进行下载。

3.3 文件系统

所谓根文件系统, 就是创建各个目录, 例如在/bin 、/sbin/ 目录下存放各种可执行的程序, 在/etc 目录下存放配置文件, 在/lib 目录下存放库文件。

可以利用Busybox 工具创建根文件系统,Bosybox 是一个遵循GPL v2 协议的开源项目, 它在编写过程中对文件大小进行优化, 并考虑了系统资源有限( 例如内存)的情况, 使用Busybox 可以自动生成根文件系统所需的bin、sbin、usr 目录和linuxrc 文件, 可以使用make menuconfig对Busybox 的选项进行配置。

(1) 进入opt/kernel, 创建一个shell 脚本用于构建根文件系统的各个目录, 并且为其增加执行权限;(2)Linux 中的init 进程会根据etc/inittab 文件创建其他子进程, 下面代码是inittab 文件中的内容, 说明了系统启动后首先执行的脚本文件是rcS, 虚拟的终端是串口0, 当按下ctr+alt+del 时重启系统,inittab 文件的作用就是控制系统启动时和启动后一些程序的运行。

  #etc/inittab

  ::sysinit:/etc/init.d/rcS

  s3c2410_serial0::askfirst:-/bin/sh

  ::ctrlaltdel:/sbin/reboot

  ::shutdown:/bin/umount -a-r

(3) 创建etc/init.d/rcS 文件, 这是一个脚本文件, 可以在里面添加要自动执行的一些命令。

  #! /bin/sh

  PATH=/sbin:/bin:/usr/sbin:/usr/bin

  runlevel=S // 运行的级别

  prevlevel=N

  umask 022 // 文件夹的掩码

  mount -a // 挂载/etc/fstab/ 文件指定的所有的文件系统

  mdev-s

  /bin/hostname -F /etc/sysconfig/HOSTNAME// 主机的名字

使用yaffs 源码提供的工具制作文件系统的映像文件。由于128 MB 的Nand Flash 是大页结构, 所以需要使用相应的大页制作工具; 使用命令mkyaffs2image rootfsrootfs.img 生成根文件系统映像文件。

本文通过对U-Boot 移植和Linux 内核移植的讨论,给出了移植U-Boot 和Linux 到大多数开发板的关键部分。由于移植的复杂性, 不可能包括全部步骤, 但通过本文的阐述可以了解移植的基本流程和关键点, 为移植不同版本到其他硬件平台提供了参考, 也为应用程序的开发搭建了一个比较完整的嵌入式平台。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top