zoukankan      html  css  js  c++  java
  • [国嵌攻略][149][Yaffs2文件系统应用]

    嵌入式系统自启动

    MTD技术通过把Nand FLash划分成bootloader分区,Linux kernel分区和file system分区来达到自启动的效果。

    配置和编译内核

    1.配置Linux内核支持MTD分区

    make meunconfig ARCH=arm

    device drivers-><*>memory techology device(MTD) support->[*]MTD partitioning support->exit->save

    2.找到内核分区地址的数据结构

    通过找到内核分区结构struct mtd_partition来找到内核分区地址。MINI2440的分区地址在kernel/arch/arm/plat-s3c24xx/common_Embedsky.c中。

    grep “mtd_partition”-rn /arch/arm

    3.设置内核分区地址

    4.编译Linux内核

    make uImage ARCH=arm CROSS_COMPILE=arm-linux-

    制作yaffs2文件系统

    1.制作根文件系统

    2.格式化文件系统

    mkyaffs2image ./rootfs/ rootfs.img

    配置bootloader启动参数

    1.找到uboot中bootcmd环境变量,设置启动内核

    打开bootloader/include/config/EmbedSky.h,设置CONFIG_BOOTCOMMAND:

    nand read 31000000 200000 300000;bootm 31000000

    2.设置uboot中bootarg环境变量,设置文件系统

    设置CONFIG_BOOTARGS :

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

    3.编译uboot

    make CROSS_COMPILE=arm-linux-

    烧写编译好的引导、内核和文件系统到Nand FLash

    1.通过usb下载

    usbsalve 1 30000000

    usbsalve表示通过usb下载,1表示等待连接,30000000表示下载到内存的地址

    2.格式化nand flash

    nand erase 0 40000

    nand erase 200000 300000

    nand erase 500000   不指定长度,表示后面全部格式化

    3.写入nand flash

    nand write 30000000 0 40000

    nand write 30000000 200000 300000

    nand write.yaffs 30000000 500000 2C29980   写入文件长度可以通过查看文件大小得到

  • 相关阅读:
    前端页面的防抖与节流
    vue3.0 响应式原理
    cssBEM命名规范及常用CSS class 命名
    vue2.x 响应式原理
    npm 相关命令
    Node之 fs
    Node 之 Buffer
    Node之path
    Node之process
    Node.js 如何处理 ES6 模块
  • 原文地址:https://www.cnblogs.com/d442130165/p/5281227.html
Copyright © 2011-2022 走看看