精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

QSPI Flash創建UBIFS 5步流程

454398 ? 來源:賽靈思中文社區論壇 ? 作者:賽靈思中文社區論 ? 2020-12-08 15:07 ? 次閱讀

測試工具版本:PetaLinux 2018.2
測試單板: ZCU106

UBIFS是更強壯的FLash文件系統。很多嵌入式系統都使用了UBIFS。

Xilinx PetaLinux 2018.2也支持UBIFS。只需要在Linux/U-Boot里添加相關配置選項,就能為QSPI Flash創建UBIFS。

第1步,為Linux Kernel添加UBIFS配置選項。

需要注意的是,需要去掉SPI_NOR_USE_4K_SECTORS。

CONFIG_MTD_UBI=y
CONFIG_MTD_UBI_WL_THRESHOLD=4096
CONFIG_MTD_UBI_BEB_LIMIT=20
# CONFIG_MTD_UBI_FASTMAP is not set
# CONFIG_MTD_UBI_GLUEBI is not set
# CONFIG_MTD_UBI_BLOCK is not set
CONFIG_UBIFS_FS=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_LZO=y
CONFIG_UBIFS_FS_ZLIB=y
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ENCRYPTION is not set
CONFIG_UBIFS_FS_SECURITY=y
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_LZO=y
# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set

第2步,為U-Boot添加UBIFS配置選項。

CONFIG_CMD_MTDPARTS=y
CONFIG_MTDIDS_DEFAULT=""
CONFIG_MTDPARTS_DEFAULT=""
CONFIG_CMD_MTDPARTS_SPREAD=y
CONFIG_CMD_UBI=y
CONFIG_CMD_UBIFS=y
CONFIG_MTD=y
# CONFIG_CFI_FLASH is not set
# CONFIG_ALTERA_QSPI is not set
CONFIG_MTD_UBI=y
CONFIG_MTD_UBI_WL_THRESHOLD=4096
CONFIG_MTD_UBI_BEB_LIMIT=20
# CONFIG_MTD_UBI_FASTMAP is not set
CONFIG_RBTREE=y
CONFIG_LZO=y

第3步,根據單板需要,定義Flash分區。

啟動后,在Linux里可以通過命令 cat /proc/mtd檢查。

root@zcu106_vcu_trd:/qspi_fs# cat /proc/mtd
dev: size erasesize name
mtd0: 01e00000 00020000 "boot"
mtd1: 00040000 00020000 "bootenv"
mtd2: 00c00000 00020000 "kernel"
mtd3: 055c0000 00020000 "spare"

第4步,在Linux里創建和掛載UBIFS分區。

如果是第一次啟動,在Linux里創建和掛載UBIFS分區。

mkdir -p /qspi_fs
ubiformat /dev/mtd3
ubiattach /dev/ubi_ctrl -m 3
ubimkvol /dev/ubi0 -N qspi_ubi0 -m
mount -t ubifs ubi0:qspi_ubi0 /qspi_fs

如果不是第一次啟動,直接在Linux里掛載UBIFS分區。

ubiattach /dev/ubi_ctrl -m 3
mount -t ubifs ubi0:qspi_ubi0 /qspi_fs

第5步,創建分區后,在U-Boot里使用UBIFS。

sf probe 0 50000000 0
setenv partition "nor0,3" # Activate mtd3.
setenv mtdids "nor0=spi0.0"
setenv mtdparts "mtdparts=spi0.0:30m(boot),256k(bootenv),12m(kernel),87808k(spare)"
mtdparts
ubi part spare # Select mtd3.
mtd
ubifsmount ubi0:qspi_ubi0
ubifsls
ubifsload 0x2000000 qspi_fs_ready__do_not_remove.bin.md5

更詳細的在U-Boot里使用UBIFS的記錄。

ZynqMP> sf probe 0 50000000 0
SF: Detected n25q512a with page size 512 Bytes, erase size 128 KiB, total 128 MiB

ZynqMP> setenv partition "nor0,3"
ZynqMP> setenv mtdids "nor0=spi0.0"
ZynqMP> setenv mtdparts "mtdparts=spi0.0:30m(boot),256k(bootenv),12m(kernel),87808k(spare)"

ZynqMP> mtdparts

device nor0 , # parts = 4
#: name size offset mask_flags
0: boot 0x01e00000 0x00000000 0
1: bootenv 0x00040000 0x01e00000 0
2: kernel 0x00c00000 0x01e40000 0
3: spare 0x055c0000 0x02a40000 0

active partition: nor0,3 - (spare) 0x055c0000 @ 0x02a40000

defaults:
mtdids :
mtdparts:

ZynqMP> ubi part spare
ubi0: attaching mtd2
ubi0: scanning is finished
ubi0: attached mtd2 (name "mtd=3", size 85 MiB)
ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 130944 bytes
ubi0: minmax. I/O unit sizes: 1/512, sub-page size 1
ubi0: VID header offset: 64 (aligned 64), data offset: 128
ubi0: good PEBs: 686, bad PEBs: 0, corrupted PEBs: 0
ubi0: user volume: 1, internal volumes: 1, max. volumes count: 128
ubi0: max/mean erase counter: 1/0, WL threshold: 4096, image sequence number: 1968612066
ubi0: available PEBs: 0, total reserved PEBs: 686, PEBs reserved for bad PEB handling: 0

ZynqMP> ubifsmount ubi0:qspi_ubi0
UBIFS assert failed in ubifs_change_lp at 540
UBIFS assert failed in ubifs_release_lprops at 278
UBIFS assert failed in ubifs_change_lp at 540
UBIFS assert failed in ubifs_release_lprops at 278
UBIFS assert failed in ubifs_change_lp at 540
UBIFS assert failed in ubifs_release_lprops at 278
UBIFS assert failed in ubifs_change_lp at 540
UBIFS assert failed in ubifs_release_lprops at 278

ZynqMP> ubifsls
1024 Fri Feb 01 09:57:29 2019 qspi_fs_ready__do_not_remove.bin
76 Fri Feb 01 09:57:29 2019 qspi_fs_ready__do_not_remove.bin.md5

ZynqMP> ubifsload 0x2000000 qspi_fs_ready__do_not_remove.bin.md5
Loading file 'qspi_fs_ready__do_not_remove.bin.md5' to addr 0x02000000...
Done

ZynqMP> md 0x2000000
02000000: 63336432 36336334 35333664 33316537 2d3c4c36d6357e13
02000010: 65636164 31303032 61626234 62393632 dace20014bba269b

編輯:hfy

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FlaSh
    +關注

    關注

    10

    文章

    1621

    瀏覽量

    147754
  • 嵌入式系統
    +關注

    關注

    41

    文章

    3567

    瀏覽量

    129229
  • UBIFS
    +關注

    關注

    0

    文章

    5

    瀏覽量

    6918
收藏 人收藏

    評論

    相關推薦

    編譯可在QSPI Flash上運行的程序

    在前文中已經實現了一個能夠在 MDK 平臺進行下載代碼到 QSPI Flash 中的下載算法,以及一個能跳轉執行應用程序的 2nd Bootloader,但若想將代碼下載到 QSPI Flas
    的頭像 發表于 03-31 09:50 ?3014次閱讀
    編譯可在<b class='flag-5'>QSPI</b> <b class='flag-5'>Flash</b>上運行的程序

    自帶的QSPI flash如何下載

    有個一直很頭疼的問題就是自帶的QSPI flash如何下載的問題,我們以 STM32F7Discovery官方資料-1\STM32Cube_FW_F7_V1.1.0\Projects
    發表于 08-04 06:16

    什么是QSPI?如何使用QSPIQSPI Flash進行通信呢?

    吧,直接 16 根數據信號線,速度自然變得更快了,但使用 SPI FLash,不就是圖一個線少嘛。  為了方便描述,我們將使用 QSPI 接口連接的 SPI Flash 稱之為 QSPI
    發表于 03-17 15:17

    UBIFS損耗均衡對系統I/O性能的影響

    分析flash 文件系統的損耗均衡問題,指出損耗均衡的觸發條件對系統I/O 性能的影響。在最新UBIFS 文件系統上運行測試程序,結果證明在不同損耗均衡觸發條件下,系統I/O 性能的
    發表于 03-30 10:10 ?24次下載

    GD32-Colibri-F207實驗板QSPI_FLASH

    GD32-Colibri-F207實驗板QSPI_FLASH,很好的GD32資料,快來學習吧。
    發表于 04-21 16:35 ?26次下載

    如何使用QSPI Flash控制器開發板上的 QSPI Flash進行寫讀操作

    學習內容 本文首先介紹FlashQSPI Flash控制器的相關內容,然后使用 QSPI Flash 控制器,開發板上的
    的頭像 發表于 06-10 17:08 ?1.3w次閱讀
    如何使用<b class='flag-5'>QSPI</b> <b class='flag-5'>Flash</b>控制器開發板上的 <b class='flag-5'>QSPI</b> <b class='flag-5'>Flash</b>進行寫讀操作

    STM32CubeIDE XiP 和 BootROM介紹, XiP外部內存QSPI FLASH執行用戶代碼

    STM32CubeIDE XiP 和 BootROM介紹, XiP外部內存QSPI FLASH執行用戶代碼
    發表于 12-02 09:21 ?14次下載
    STM32CubeIDE XiP 和 BootROM介紹, XiP外部內存<b class='flag-5'>QSPI</b> <b class='flag-5'>FLASH</b>執行用戶代碼

    【STM32H7】第20章 ThreadX GUIX漢字顯示(QSPI Flash全字庫)

    【STM32H7】第20章 ThreadX GUIX漢字顯示(QSPI Flash全字庫)
    發表于 12-02 09:36 ?14次下載
    【STM32H7】第20章 ThreadX GUIX漢字顯示(<b class='flag-5'>QSPI</b> <b class='flag-5'>Flash</b>全字庫)

    在Linux/U-Boot里為QSPI Flash使用UBIFS

    UBIFS是更強壯的FLash文件系統。很多嵌入式系統都使用了UBIFS。Xilinx PetaLinux 2018.2也支持UBIFS。只需要在Linux/U-Boot里添加相關配置
    發表于 08-02 15:51 ?1725次閱讀

    QSPI flash上運行毫米波芯片的測試代碼

    QSPI flash上運行毫米波芯片的測試代碼
    發表于 10-28 12:00 ?0次下載
    在<b class='flag-5'>QSPI</b> <b class='flag-5'>flash</b>上運行毫米波芯片的測試代碼

    工程師筆記|通過 KEIL 制作 QSPI 接口的外部 Flash 下載算法

    關鍵詞:KEIL,QSPI,下載算法 目錄預覽 1. 引言 2. MDK 下載算法基礎知識 3.?程序擦除操作執行流程 4.?程序燒錄操作執行流程 5. 程序校驗操作執行
    的頭像 發表于 02-12 12:10 ?3407次閱讀

    微控制器外置QSPI Flash選型的注意事項

    為了擴展微控制器可用的 Flash 空間,用戶可以使用 QSPI 接口連接 QSPI Flash;為了讓用戶能盡量像使用片內 Flash
    的頭像 發表于 04-07 09:23 ?2013次閱讀

    mm32-2nd-bootloader技術白皮書(5)——編譯可在QSPI Flash上運行的程序

    mm32-2nd-bootloader技術白皮書(5)——編譯可在QSPI Flash上運行的程序
    的頭像 發表于 10-24 16:14 ?466次閱讀
    mm32-2nd-bootloader技術白皮書(<b class='flag-5'>5</b>)——編譯可在<b class='flag-5'>QSPI</b> <b class='flag-5'>Flash</b>上運行的程序

    通過KEIL制作QSPI接口的外部Flash下載算法

    電子發燒友網站提供《通過KEIL制作QSPI接口的外部Flash下載算法.pdf》資料免費下載
    發表于 09-19 16:26 ?7次下載
    通過KEIL制作<b class='flag-5'>QSPI</b>接口的外部<b class='flag-5'>Flash</b>下載算法

    在mmWave SDK增加QSPI Flash驅動的示例

    電子發燒友網站提供《在mmWave SDK增加QSPI Flash驅動的示例.pdf》資料免費下載
    發表于 09-11 14:20 ?0次下載
    在mmWave SDK增加<b class='flag-5'>QSPI</b> <b class='flag-5'>Flash</b>驅動的示例