0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux的QSPI驅(qū)動(dòng)移植方法及驗(yàn)證方法

CHANBAEK ? 來(lái)源:嵌入式系統(tǒng)研發(fā) ? 作者:李松泉 ? 2023-04-14 10:20 ? 次閱讀

1.概述

本文主要講述了Linux的QSPI驅(qū)動(dòng)移植方法及驗(yàn)證方法。

示例Linux內(nèi)核版本:6.8.2。硬件平臺(tái):ARM SOC。

2.原理

Linux內(nèi)核的SPI驅(qū)動(dòng)子系統(tǒng)集成了主流廠家的QSPI控制器驅(qū)動(dòng),驅(qū)動(dòng)源碼位于目錄linux-6.2.8/drivers/spi。本文以移植Cadence QSPI控制器驅(qū)動(dòng)為例,通過(guò)使能CONFIG_SPI_CADENCE_QUADSPI開關(guān),即可將Cadence QSPI控制器驅(qū)動(dòng)spi-cadence-quadspi.c編譯進(jìn)內(nèi)核。在設(shè)備樹,添加QSPI控制器設(shè)備節(jié)點(diǎn)及其Flash設(shè)備子節(jié)點(diǎn),以加載相應(yīng)的驅(qū)動(dòng)。

Linux內(nèi)核的MTD子系統(tǒng)是一個(gè)抽象層,提供統(tǒng)一的API對(duì)Flash設(shè)備進(jìn)行訪問(wèn)操作。Linux內(nèi)核提供了MTD tests模塊工具,可以用來(lái)對(duì)Flash進(jìn)行操作,完成QSPI設(shè)備驅(qū)動(dòng)的測(cè)試和驗(yàn)證。

3.移植方法

(1)配置內(nèi)核

pYYBAGQ4uDmAC83YAAErCpVXIvg263.png

圖1 Cadence QSPI驅(qū)動(dòng)配置選項(xiàng)說(shuō)明

(2)設(shè)備樹添加QSPI控制器和Flash節(jié)點(diǎn)

在設(shè)備樹添加Cadence QSPI控制器節(jié)點(diǎn)及其Flash節(jié)點(diǎn)。添加方法可參考如下文件:

./Documentation/devicetree/bindings/spi/cdns,qspi-nor.yaml

./Documentation/devicetree/bindings/spi/cdns,qspi-nor-peripheral-props.yaml

4.驗(yàn)證方法

(1)編譯MTD tests工具

為編譯MTD tests工具,應(yīng)配置內(nèi)核,使能CONFIG_MTD_TESTS,以編譯出MTD tests模塊。

pYYBAGQ4uEuAYwE0AAEj3hf9fdY718.png

圖2 MTD tests工具配置選項(xiàng)說(shuō)明

MTD tests模塊隨內(nèi)核一起完成編譯,編譯完成后在linux-6.2.8/drivers/mtd/tests下生成*.ko測(cè)試模塊。其中,mtd_stresstest.ko模塊內(nèi)包含了擦除、讀、寫等操作,選取該模塊作為測(cè)試工具。mtd_stresstest.ko對(duì)應(yīng)的源碼為stresstest.c,原始代碼中讀、寫操作通過(guò)do_operation()函數(shù)隨機(jī)選擇,do_read()函數(shù)包括讀操作,do_write()函數(shù)包括擦除和寫操作,操作的目標(biāo)扇區(qū)是隨機(jī)選擇的,為便于測(cè)試,可在編譯前手動(dòng)修改操作的目標(biāo)扇區(qū)號(hào),即變量int eb值。

(2)使用mtd_stresstest.ko測(cè)試

內(nèi)核啟動(dòng)后,通過(guò)查看,可以發(fā)現(xiàn)生成了/sys/class/mtd/mtd0設(shè)備,即可使用mtd_stresstest.ko通過(guò)mtd0設(shè)備對(duì)Flash進(jìn)行擦除、讀、寫操作,以測(cè)試驅(qū)動(dòng)功能的正確性。加載測(cè)試模塊的命令如下,表示測(cè)試的目標(biāo)設(shè)備為mtd0,次數(shù)為1。

insmod mtd_stresstest.ko dev=0 count=1


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    15884

    瀏覽量

    175354
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207900
  • 移植
    +關(guān)注

    關(guān)注

    1

    文章

    375

    瀏覽量

    28012
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1669

    瀏覽量

    90727
  • QSPI
    +關(guān)注

    關(guān)注

    0

    文章

    41

    瀏覽量

    12132
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux系統(tǒng)中驅(qū)動(dòng)格式基本編寫方法

    今天主要和大家聊一聊,編寫Linux驅(qū)動(dòng)格式與方法。
    發(fā)表于 12-02 09:34 ?524次閱讀

    RTOS和Linux中的內(nèi)存映射及移植方法

    /O方法。它們涵蓋的范圍從對(duì)中斷服務(wù)例程的特殊使用及用戶線程對(duì)硬件訪問(wèn)到出現(xiàn)于有些ROTS中的半規(guī)范化驅(qū)動(dòng)程序模型。這對(duì)于移植RTOS 代碼到規(guī)范化的Linux設(shè)備啟動(dòng)程序具有一定啟發(fā)
    發(fā)表于 07-03 07:43

    stm32移植linux方法

    stm32移植linux方法,推薦分享一個(gè)朋友的人工智能教程,零基礎(chǔ)!通俗易懂!希望你也加入到人工智能的隊(duì)伍中來(lái)?、?、概述該文寫針對(duì)初學(xué)μC/OS的朋友,基于以下平臺(tái)來(lái)一步一步移植μC
    發(fā)表于 08-09 09:17

    快速驗(yàn)證移植QSPI的操作方法

    1. 摘要本篇筆記主要介紹,如何在STM32H743上進(jìn)行QSPI的操作和驅(qū)動(dòng)。為項(xiàng)目進(jìn)一步開發(fā)快速驗(yàn)證。2. 準(zhǔn)備工作 1), IAR 8.32.1 2), STM32Cube...
    發(fā)表于 01-11 07:47

    驗(yàn)證方法簡(jiǎn)介

    則和指南。驗(yàn)證方法提供了構(gòu)建穩(wěn)健、可靠和完整的驗(yàn)證環(huán)境的方法驗(yàn)證方法通過(guò)其預(yù)定義的庫(kù)減少了
    發(fā)表于 02-13 17:03

    Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解》第23章、Linux設(shè)備驅(qū)動(dòng)移植

    Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解》第23章、Linux設(shè)備驅(qū)動(dòng)移植
    發(fā)表于 10-27 10:58 ?9次下載
    《<b class='flag-5'>Linux</b>設(shè)備<b class='flag-5'>驅(qū)動(dòng)</b>開發(fā)詳解》第23章、<b class='flag-5'>Linux</b>設(shè)備<b class='flag-5'>驅(qū)動(dòng)</b>的<b class='flag-5'>移植</b>

    如何將SQLite移植linux方法程序說(shuō)明概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何將SQLite移植linux方法程序說(shuō)明概述
    發(fā)表于 07-20 08:00 ?0次下載

    U-boot的QSPI驅(qū)動(dòng)移植方法驗(yàn)證方法

    本文主要講述了U-boot的QSPI驅(qū)動(dòng)移植方法驗(yàn)證方法。在產(chǎn)品調(diào)試階段,U-boot的dri
    的頭像 發(fā)表于 04-14 10:21 ?2545次閱讀
    U-boot的<b class='flag-5'>QSPI</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>移植</b><b class='flag-5'>方法</b>及<b class='flag-5'>驗(yàn)證</b><b class='flag-5'>方法</b>

    U-boot的DPU驅(qū)動(dòng)移植方法

    本文以ARM Mali系列顯示處理器驅(qū)動(dòng)為例,講述了U-boot的DPU驅(qū)動(dòng)移植方法。
    的頭像 發(fā)表于 04-14 10:25 ?1199次閱讀
    U-boot的DPU<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>移植</b><b class='flag-5'>方法</b>

    U-boot的SPLASH_SCREEN(啟動(dòng)畫面)驅(qū)動(dòng)移植方法

    ?在上一篇《U-boot驅(qū)動(dòng)-DPU驅(qū)動(dòng)移植》中,以ARM Mali系列顯示處理器驅(qū)動(dòng)為例,講述了U-boot的DPU驅(qū)動(dòng)
    的頭像 發(fā)表于 04-14 10:28 ?1243次閱讀
    U-boot的SPLASH_SCREEN(啟動(dòng)畫面)<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>移植</b><b class='flag-5'>方法</b>

    Linux中常用的6種SSH身份驗(yàn)證方法

    。由于遠(yuǎn)程訪問(wèn)可能涉及到安全問(wèn)題,因此 Linux 提供了多種身份驗(yàn)證方法來(lái)保護(hù) SSH 連接的安全性。本文將介紹 Linux 中常用的 6 種 SSH 身份
    的頭像 發(fā)表于 05-12 14:42 ?2882次閱讀

    Linux的PWM驅(qū)動(dòng)框架及實(shí)現(xiàn)方法

    本文主要講述了Linux的PWM驅(qū)動(dòng)框架、實(shí)現(xiàn)方法驅(qū)動(dòng)添加方法和調(diào)試方法。
    的頭像 發(fā)表于 05-14 15:24 ?1271次閱讀
    <b class='flag-5'>Linux</b>的PWM<b class='flag-5'>驅(qū)動(dòng)</b>框架及實(shí)現(xiàn)<b class='flag-5'>方法</b>

    Vitis-Vivado強(qiáng)制JTAG模式燒錄QSPI方法

    本教程提供 VITIS 2021.1 QSPI-FLASH 下載方法如下
    的頭像 發(fā)表于 07-07 14:14 ?2971次閱讀
    Vitis-Vivado強(qiáng)制JTAG模式燒錄<b class='flag-5'>QSPI</b><b class='flag-5'>方法</b>

    Linux驅(qū)動(dòng)移植 Linux系統(tǒng)架構(gòu)優(yōu)點(diǎn)

    系統(tǒng)移植 linux 驅(qū)動(dòng)移植 移植是說(shuō)同樣的一個(gè) linux 操作系統(tǒng),我們可以跑到不同的硬件
    的頭像 發(fā)表于 07-27 17:06 ?728次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>移植</b> <b class='flag-5'>Linux</b>系統(tǒng)架構(gòu)優(yōu)點(diǎn)

    linux驅(qū)動(dòng)程序的編譯方法是什么

    Linux驅(qū)動(dòng)程序的編譯方法主要包括兩種: 與內(nèi)核一起編譯 和 編譯成獨(dú)立的內(nèi)核模塊 。以下是對(duì)這兩種方法的介紹: 一、與內(nèi)核一起編譯 與內(nèi)核一起編譯意味著將
    的頭像 發(fā)表于 08-30 14:46 ?163次閱讀