mk_romfs.txt
来自「eCos操作系统源码」· 文本 代码 · 共 95 行
TXT
95 行
MK_ROMFS - Make a ROMFS image=============================This program creates a ROMFS image that can be read by eCos.mk_romfs - Create an eCos ROMFS disk image from the files contained under a specified directoryUsage: ../support/mk_romfs [options] <fs_root> <fs_file> fs_root is the directory containing the files to package into the ROMFS image fs_file is the name of the ROMFS image file to create Options include: -v / -q increase / decrease verbosity -n do everything EXCEPT creating the output file -b write a big-endian image (default is little endian) -l collapse hard links to a single node-----------How to use.-----------For example, suppose you wish to access the following directories and files: / /etc passwd, group /dev /mnt /tmp (for a RAMFS) /var (for a RAMFS)1. Create the required directories and files under a suitable root, eg. under ~/rom: $ mkdir ~/rom $ cd ~/rom $ mkdir etc dev mnt tmp var $ cp /etc/passwd /etc/group etc/ ( remembering to edit these files....;-)2. Make the romfs image in a suitable place, eg /tftpboot for direct upload to the RedBoot monitor. $ mk_romfs -v . /tftpboot/romfs.img mk_romfs: Verbosity 2 little endian Phase 1 - Build file list Phase 2 - Calculate space allocation Phase 2a - * Directories Phase 2b - * Regular files Phase 2c - * Executable files Phase 3 - Construct ROMFS image file (3 kb) Phase 3a - * Node table Phase 3b - * Data blocks /tftpboot/romfs.img completed3. Connect to your target RedBoot monitor, and load the romfs image. You will need to determine a suitable place in RAM to load the image into. $ telnet xxx.xxx.xxx.xxx 1000 Trying xxx.xxx.xxx.xxx... Connected to xxx.xxx.xxx.xxx. Escape character is '^]'. RedBoot> load romfs.img -r -v -b 0x1000000 Raw file loaded 0x01000000-0x0100093e RedBoot>4. Determine where to load the romfs image in the ROM. See what's there... RedBoot> fis list Name FLASH addr Mem addr Length Entry point RedBoot 0x50000000 0x50000000 0x020000 0x00000000 RedBoot[backup] 0x50020000 0x50020000 0x020000 0x00000000 RedBoot config 0x503C0000 0x503C0000 0x020000 0x00000000 FIS directory 0x503E0000 0x503E0000 0x020000 0x00000000 RedBoot> fis free 0x50040000 .. 0x503C0000 RedBoot> We can see that a suitable place would be 0x50040000. Alternatively, you can let RedBoot determine the address itself...5. Copy the image from RAM to ROM... RedBoot> fis create -b 0x1000000 -l 0x940 RomFs ... Erase from 0x50040000-0x50040940: . ... Program from 0x01000000-0x01000940 at 0x50040000: . ... Erase from 0x503e0000-0x50400000: . ... Program from 0x01fd0000-0x01ff0000 at 0x503e0000: . RedBoot> fis list Name FLASH addr Mem addr Length Entry point RedBoot 0x50000000 0x50000000 0x020000 0x00000000 RedBoot[backup] 0x50020000 0x50020000 0x020000 0x00000000 RedBoot config 0x503C0000 0x503C0000 0x020000 0x00000000 FIS directory 0x503E0000 0x503E0000 0x020000 0x00000000 RomFs 0x50040000 0x01000000 0x000940 0x00000000 RedBoot>6. MAKE A NOTE OF THE ADDRESS IN FLASH THAT THE IMAGE IS LOADED AT. The ROMFS option 'CYGNUM_FS_ROM_BASE_ADDRESS' needs to be set to this value in order to access the filesystem.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?