chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

為ING916添加外部Flash擴(kuò)充容量

桃芯科技 ? 來(lái)源:桃芯科技 ? 2025-08-19 15:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

ING916 的 SPI0 通過(guò) AHB 總線連接到處理器,支持 4 線模式,以存儲(chǔ)映射方式只讀訪問(wèn) (https://ingchips.github.io/drafts/pg_ing916/ch-spi.html#qspi-讀取和xip)時(shí)支持 XIP。通過(guò) SPI0 外掛串行 NOR Flash,處理器就可以通過(guò)映射方式讀取 NOR Flash 里的內(nèi)容。對(duì)于開發(fā)者而言, 這塊外掛 NOR Flash 可存放程序、只讀數(shù)據(jù)等,可被 Cache “加速”,像內(nèi)置 Flash 一樣,使用方便。

SDK 從v8.4.19開始:1)自動(dòng)安裝 W25Q 燒寫算法;2)支持串口和 USB 燒錄。

01 芯片選型

SPI0 配置到專門的高速管腳可獲得最高的傳輸速率。建議結(jié)合項(xiàng)目需要,確定 ING916 和 NOR Flash 的選型。

02 開發(fā) Flash燒寫算法

下一步是為 NOR Flash 開發(fā)燒寫算法。由于燒寫算法不便調(diào)試,我們可以先在一個(gè)“普通”程序里實(shí)現(xiàn)相關(guān)的函數(shù), 測(cè)試正常后再轉(zhuǎn)換為燒寫算法。

用程序讀寫外部 Flash

注意:必須使用 SDK v8.4.10 或更高版本的 Cube。對(duì)于較低版本的 SDK, 請(qǐng)使用外設(shè)驅(qū)動(dòng)。

先用 Wizard 創(chuàng)建一個(gè) ING916 項(xiàng)目,打開 Cube。假設(shè)我們決定選用 ING91682C,在 Cube 里把封裝切換為 ING91682C, 然后直接點(diǎn)擊 “Set to High Speed Pins” 為 SPI0 配置高速管腳:

64c1cbcc-799e-11f0-a18e-92fbcf53809c.png

切換到時(shí)鐘樹界面,確認(rèn) SPI0 時(shí)鐘為 24MHz 慢時(shí)鐘(注:開發(fā)調(diào)試階段先使用較低的時(shí)鐘頻率。),回到 SPI0 的設(shè)置頁(yè)面, 將 Basic Settings 的 “Clock frequency” 設(shè)置為 24MHz。

說(shuō)明:時(shí)鐘樹界面的 SPI0 時(shí)鐘為 SPI0 硬件模塊的驅(qū)動(dòng);而 Basic Settings 的 “Clock frequency” 為 SPI0 (主模式下) 輸出的 CLK 信號(hào)的頻率,由驅(qū)動(dòng)分頻得來(lái)。

參考 NOR Flash 數(shù)據(jù)手冊(cè),開發(fā)、調(diào)試相關(guān)的操作函數(shù),如擦除、寫入、設(shè)置模式等。

以AHB_QSPI_MEM_BASE為起始地址可直接以存儲(chǔ)映射方式讀取 NOR Flash 里的數(shù)據(jù)。讀取時(shí),SPI0 不需要任何特殊設(shè)置。

待功能驗(yàn)證正常后,可酌情優(yōu)化傳輸速率:提供 SPI0 時(shí)鐘、設(shè)置 NOR Flash 的 4 線模式等。 如果需要以 2 線或者 4 線模式讀取 NOR Flash,需要配置 SPI0 的MemAccessCmd參數(shù)。請(qǐng)參考 NOR Flash 數(shù)據(jù)手冊(cè), 選擇合適的命令和時(shí)序。MemAccessCmd默認(rèn)為SPI_MEMRD_CMD_03,單線模式。

// 示例:設(shè)置為使用 EB 命令(4 線模式)
apSSP_SetMemAccessCmd(AHB_SSP0,SPI_MEMRD_CMD_EB);

將程序轉(zhuǎn)換為 Flash 燒寫算法

下一步是通過(guò)上面的 NOR Flash 操作函數(shù)實(shí)現(xiàn)下載工具或者 IDE 要求的 Flash 燒寫接口。以 Keil 為例, 需要實(shí)現(xiàn) 4 個(gè)必備的接口:

Init: 初始化

UnInit: 反初始化

EraseSector: 擦除一個(gè)扇區(qū)

ProgramPage: 寫入一頁(yè)

Flash 的特性、地址范圍等在FlashDev.c的定義,如示例中:

structFlashDeviceconstFlashDevice ={
 FLASH_DRV_VERS,// Driver Version, do not modify!
 "INGCHIPS 91600 EXT W25Q",// Device Name
 EXTSPI,// Device Type
 0x04000000,// Device Start Address (A)
 0x01000000,// Device Size in Bytes (B)
 4096,// Programming Page Size (C)
 0,// Reserved, must be 0
 0xFF,// Initial Content of Erased Memory
 800,// Program Page Timeout 100 mSec
 3000,// Erase Sector Timeout 3000 mSec

// Specify Size and Address of Sectors
0x1000,0x000000,// Sector Size 4kB    (D)
 SECTOR_END
};

其中,名稱可任意填寫;起始地址 A 為固定值(AHB_QSPI_MEM_BASE),不可修改; B 既可根據(jù)實(shí)際情況填寫,也可以填寫一個(gè) Flash 同系列型號(hào)所支持的最大容量(W25Q 地址 24bit,最大支持 16MiB),當(dāng)以后更換容量更大的 Flash 型號(hào)時(shí),不需要更改燒寫算法; D 務(wù)必根據(jù)實(shí)際情況填寫扇區(qū)大?。籆 為燒錄時(shí)一頁(yè)的大小,由于 Flash 可能不支持按頁(yè)擦除、卻一定支持按扇區(qū)擦除, 所以這里把它設(shè)置為一個(gè)扇區(qū)的大小。

03 使用外部Flash

用 Wizard 創(chuàng)建一個(gè) ING916 項(xiàng)目(假設(shè)名為use_ext_flash)。打開 Cube,切換到所選用的封裝,打開 SPI0 的時(shí)鐘,并為 SPI0 配置管腳。 在 Keil 里打開項(xiàng)目的 Target 設(shè)置,添加一塊外部 Flash,起始地址為AHB_QSPI_MEM_BASE:

64f242f2-799e-11f0-a18e-92fbcf53809c.png

進(jìn)入燒寫算法設(shè)置頁(yè)面,添加外部 Flash 燒寫算法,添加完成后,這個(gè)項(xiàng)目存在兩個(gè)燒寫算法:

65064bbc-799e-11f0-a18e-92fbcf53809c.png

為項(xiàng)目添加一個(gè)新的文件demo.c,寫一個(gè)測(cè)試函數(shù):

#include"platform_api.h"

voidhello_world(void)
{
platform_printf("hello from EXT flash
");
}

在set_profile()里調(diào)用這個(gè)函數(shù):

externvoidhello_world(void);

uint32_tsetup_profile(void*data,void*user_data)
{
  platform_printf("setup profile
");
  platform_printf("func @ %p
",hello_world);
  hello_world();
  //...
}

打開demo.c的選項(xiàng)窗口,將 “Code/Const” 指派到 ROM1:

651d425e-799e-11f0-a18e-92fbcf53809c.png

檢查項(xiàng)目目錄下是否存在use_ext_flash.bin文件,如有則刪除。編譯,此時(shí)可發(fā)現(xiàn)項(xiàng)目目錄下生成了 一個(gè)名為use_ext_flash.bin的文件夾,里面存放了兩個(gè)分別對(duì)應(yīng)于 ROM1 和 IROM1 的文件。 打開下載工具,不勾選 “Burn Bin #2”(注意:v8.4.18 或更舊版本的下載工具可以下載 ER_IROM1,但無(wú)法下載 ER_ROM1;v8.4.19 及以上版本的下載工具兩個(gè)文件都支持。),只下載 platform.bin。回到 Keil,點(diǎn)擊 Download (F8) 按鈕下載 app。 運(yùn)行程序,用串口工具可看到如下輸出:

setup profile
func @ 04000001
hello from EXT flash

可見hello_world函數(shù)已被存放于外掛 NOR Flash,使用時(shí)與內(nèi)置 Flash 沒(méi)有區(qū)別。

聲明:本文內(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)注

    68

    文章

    20069

    瀏覽量

    242746
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1701

    瀏覽量

    153898
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2999

    瀏覽量

    90868
  • 串口
    +關(guān)注

    關(guān)注

    15

    文章

    1596

    瀏覽量

    81367

原文標(biāo)題:《軟件設(shè)計(jì)指南之三》為 ING916 添加外部 Flash 擴(kuò)充容量

文章出處:【微信號(hào):INGCHIPS_OFFICIAL,微信公眾號(hào):桃芯科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何通過(guò)SFL設(shè)備添加Flash編程支持

    SEGGER Flash Loader(SFL)是J-Link設(shè)備支持套件(DSK)的一部分,通過(guò)SFL,用戶可以為自己的新設(shè)備添加Flash編程支持。
    的頭像 發(fā)表于 05-19 16:35 ?884次閱讀
    如何通過(guò)SFL<b class='flag-5'>為</b>設(shè)備<b class='flag-5'>添加</b><b class='flag-5'>Flash</b>編程支持

    ESP32-PICO-MINI-02確定內(nèi)部flash2MB,沒(méi)有外部ram嗎?

    我購(gòu)買的 ESP32-PICO-DevKitM-2 ,燒錄 getstart 中的helloword程序(添加了打印內(nèi)部ram和外部ram),日志顯示flash只有2MB,外部Ram
    發(fā)表于 07-02 08:08

    RainSun陶瓷天線AN1603-916

    產(chǎn)品名稱AN1603-916型號(hào)AN1603-916封裝16.0*3.1*1.65產(chǎn)品概述AN1603-916MHZ主要應(yīng)用于RF無(wú)線模塊,無(wú)線監(jiān)控安防天線,868MHZ無(wú)線通信,中心頻率
    發(fā)表于 07-10 11:14

    FLASH容量的大小

    容量一般 512K 字節(jié),屬于大容量芯片。大容量產(chǎn)品的 Flash 模塊組織結(jié)構(gòu)如圖 40.1.1 所示:STM32F1 的閃存(
    發(fā)表于 08-12 07:55

    PIC16F916/917 pdf

    PIC16F917/916/914/913Data Sheet28/40/44-Pin Flash-Based, 8-BitCMOS Microcontrollers withLCD Driver and nanoWatt Technology
    發(fā)表于 06-05 13:42 ?39次下載

    LPC2200_flash內(nèi)部Flash外部Flash分散加載

    LPC2200_flash內(nèi)部Flash外部Flash分散加載示例。
    發(fā)表于 05-20 16:08 ?17次下載

    Google Chrome flash添加說(shuō)明

    Google Chrome flash添加說(shuō)明
    發(fā)表于 09-29 13:07 ?6次下載

    以SRAM芯片例系統(tǒng)介紹常用的擴(kuò)充存儲(chǔ)容量的方法

    速度更快,但是更加的昂貴,集成度不如DRAM高。 在實(shí)際應(yīng)用中的存儲(chǔ)器所需要的容量通常比所生產(chǎn)的芯片容量大得多,所以需要對(duì)多芯片進(jìn)行組合以實(shí)現(xiàn)存儲(chǔ)容量擴(kuò)充。本文以SRAM芯片
    的頭像 發(fā)表于 12-06 09:48 ?7998次閱讀
    以SRAM芯片<b class='flag-5'>為</b>例系統(tǒng)介紹常用的<b class='flag-5'>擴(kuò)充</b>存儲(chǔ)<b class='flag-5'>容量</b>的方法

    DC916A-設(shè)計(jì)文件

    DC916A-設(shè)計(jì)文件
    發(fā)表于 06-11 17:06 ?3次下載
    DC<b class='flag-5'>916</b>A-設(shè)計(jì)文件

    DC916A-B DC916A-B評(píng)估板

    電子發(fā)燒友網(wǎng)你提供ADI(ti)DC916A-B相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有DC916A-B的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,DC916A-B真值表,DC
    發(fā)表于 07-24 16:00

    DC916A-A DC916A-A評(píng)估板

    電子發(fā)燒友網(wǎng)你提供ADI(ti)DC916A-A相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有DC916A-A的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,DC916A-A真值表,DC
    發(fā)表于 07-24 16:00

    基于FPGA的高速大容量FLASH存儲(chǔ)

    基于FPGA的高速大容量FLASH存儲(chǔ)(單片機(jī)底層嵌入式開發(fā))-該文檔基于FPGA的高速大容量FLASH存儲(chǔ)總結(jié)文檔,是一份很不錯(cuò)的參考資
    發(fā)表于 07-30 16:46 ?13次下載
    基于FPGA的高速大<b class='flag-5'>容量</b><b class='flag-5'>FLASH</b>存儲(chǔ)

    EVAL-AD916X EVAL-AD916X評(píng)估板

    電子發(fā)燒友網(wǎng)你提供ADI(ti)EVAL-AD916X相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有EVAL-AD916X的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,EVAL-AD916X真值表,
    發(fā)表于 08-17 17:00

    支持全規(guī)格BLE5.3的ING916X系列芯片重磅來(lái)襲

    桃芯科技ING916X,集成了桃芯BLE5.3 IP,包括Modem,鏈路層控制器和主機(jī),高性能和低功耗BLE射頻收發(fā)器,發(fā)射器輸出功率范圍從-30dbm到+8dbm,而接收器靈敏度在BLE LR模式下達(dá)到-102dbm,在1M模式下達(dá)到-96dbm。
    的頭像 發(fā)表于 12-20 15:58 ?1941次閱讀

    如何向Buildroot內(nèi)添加外部APP

    Linux項(xiàng)目開發(fā),如何在BuildRoot框架內(nèi)添加外部APP呢?本文以quect-CM撥號(hào)軟件例,做開發(fā)演示。
    的頭像 發(fā)表于 07-22 17:48 ?931次閱讀
    如何向Buildroot內(nèi)<b class='flag-5'>添加</b><b class='flag-5'>外部</b>APP