zoukankan      html  css  js  c++  java
  • [国嵌攻略][150][实际嵌入式系统环境搭建]

    bootloader环境搭建

    1.解压bootloader

    tar zxvf uboot_mini2440.tar.gz

    2.清除bootloader

    cd uboot_mini2440

    make distclean

    3.配置bootloader

    make mini2440_config

    4.设置启动环境变量

    4.1.设置flash下载并启动内核

    配置bootloader/include/configs/mini2440.h中的CONFIG_BOOTCOMMAND

    nand read 31000000 60000 500000;bootm 31000000

    4.2.设置yaffs挂载根文件系统

    配置bootloader/include/configs/mini2440.h中的CONFIG_BOOTARGS

    noinitrd console=ttySAC0,115200 init=/linuxrc root=/dev/mtdblock2

    5.编译bootloader

    make ARCH=arm CROSS_COMPILE=arm-linux-

    rootfs环境搭建

    1.创建系统目录

    mkdir rootfs

    cd rootfs

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

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

    2.创建设备文件

    cd dev

    mknod -m 666 console c 5 1

    mknod -m 666 null c 1 3

    3.添加配置文件

    tar zxvf etc.tar.gz

    cp -rf etc/* rootfs/etc/

    4.添加系统工具

    4.1.解压busybox

    tar zxvf busybox-1.13.3.tar.gz

    4.2.清除busybox

    cd busybox-1.13.3

    make distclean

    4.3.配置busybox

    make menuconfig

    busybox settings->build options->[*]build busybox as a static binary

    busybox settings->build options->(arm-linux-)cross compiler prefix

    busybox settings->installation options->[*]don’t use /usr

    busybox settings->installation options->(.../rootfs)busybox installation prefix

    4.4.编译busybox

    make

    4.5.安装busybox

    make install

    kernel环境搭建

    1.解压kernel

    tar zxvf linux-mini2440.tar.gz

    2.清除kernel

    cd linux-mini2440

    make distclean

    3.配置kernel

    3.1.加载配置文件

    make menuconfig ARCH=arm

    load an alternate configuration file->.config->exit->save

    3.2.配置文件系统

    make menuconfig ARCH=arm

    device drivers-><*>memory techology device(MTD) support

    ->[*]MTD partitioning support

    3.3.配置内核分区

    配置kernel/arch/arm/mach-s3c2440/mach-mini2440.c中的mtd_partition

    static struct mtd_partition friendly_arm_default_nand_part[] = {

        [0] = {

            .name   = "u-boot",

            .offset = 0x00000000,

            .size   = 0x00040000,

        },

        [1] = {

            .name   = "kernel",

            .offset = 0x00060000,

            .size   = 0x00500000,

        },

        [2] = {

            .name   = "rootfs",

            .offset = 0x00560000,

            .size   = MTDPART_SIZ_FULL,

        }

    };

    4.编译kernel

    4.1.复制mkimage工具

    cp .../uboot_mini2440/tools/mkimage /bin

    4.2.编译kernel

    make uImage ARCH=arm CROSS_COMPILE=arm-linux-

    5.编译kernel模块

    make modules ARCH=arm CROSS_COMPILE=arm-linux-

    6.安装kernel模块

    make modules_install ARCH=arm INSTALL_MOD_PATH=.../rootfs

    7.压缩文件系统

    ./mkyaffs2image .../rootfs rootfs.img

    8.下载bootloader

    8.1.PC安装USB驱动

    insmod usb.ko

    8.2.开发板等待下载

    usbsalve 1 31000000

    8.3.PC开始USB上传

    ./dnw u-boot.bin 30100000

    8.4.开发板擦除nand

    nand erase 0 40000

    8.5.开发板烧写nand

    nand write 31000000 0 40000

    9.下载kernel

    9.1.开发板等待下载

    usbsalve 1 31000000

    9.2.PC开始USB上传

    ./dnw uImage 31000000

    9.3.开发板擦除nand

    nand erase 60000 500000

    9.4.开发板烧写nand

    nand write 31000000 60000 500000

    10.下载rootfs

    10.1.开发板等待下载

    usbsalve 1 31000000

    10.2.PC开始USB上传

    ./dnw rootfs.img 31000000

    10.3.开发板擦除nand

    nand erase 560000

    10.4.开发板烧写nand

    nand write.yaffs 31000000 560000 [flie size]

  • 相关阅读:
    javascript-事件代理
    控制DIV属性——实现盒子长、宽、背景等变化
    mac环境下VSCODE 全局搜索无效的问题
    VSCODE snippets的使用
    JS单线程与setTimeout执行原理(转载)
    ES6
    SQL聚合函数
    MySQL函数(转发)
    关于mysql中int(1)中int后面的数字(转发)
    关于xcode8.0 VVDocumenter无法使用的解决办法
  • 原文地址:https://www.cnblogs.com/d442130165/p/5283577.html
Copyright © 2011-2022 走看看