国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

你以為的RAM不是你以為的RAM~

朱老師物聯網大講堂 ? 2024-04-05 08:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、DTCM和AXI連接的RAM

STM32H7系列處理器內部有多個RAM空間,每個RAM空間的大小和響應速度都不一樣。這里面我們重點關注DTCM總線矩陣連接的128KB RAM和AXI總線矩陣連接的512KB RAM。

d2089c24-f2e0-11ee-9118-92fbcf53809c.png

DTCM RAM 128KB:MDK配置是IRAM1:起始地址是0x20000000,大小是0x20000,128KB

AXI RAM 512KB: MDK配置是IRAM2:起始地址是0x240000000,大小是0x80000,152KB

d1fe83ce-f2e0-11ee-9118-92fbcf53809c.gif

二、lds鏈接腳本的內存分配

通過上述的分析,我們知道AXI RAM空間要比DTCM RAM空間是要大很多的,那么我們lds鏈接腳本該如何設置,才能使上電后start_xx.s匯編文件啟動能將RW段、ZI段、HEAP、STACK能分配到AXI RAM 512KB 區域吶?取決于lds鏈接腳本的內存分配。首先我們分析一下RW段、ZI段、HEAP、STACK在內部RAM中是如何分配的(HEAP和STACK實際上也屬于ZI段),這里面有幾個概念需要清楚。通過下圖的描述,我們能看到各個段的含義。

d2204f4a-f2e0-11ee-9118-92fbcf53809c.png

RAM中上述的段分配情況通過以下圖表進行說明。從RAM起始地址開始依次存放RW-DATA,BSS、HEAP、STACK和剩余空間。這里舉例是以0x20000000開始的128KB AXI RAM進行舉例說明。

d2242dea-f2e0-11ee-9118-92fbcf53809c.png

既然有兩個RAM存儲區,那么我們的RW-DATA、BSS、HEAP、STACK應該鏈接在哪一個RAM區,這個時候就需要用到.lds鏈接腳本,鏈接腳本的作用就是對RAM和FLASH的分配做指定。

在MDK里有兩種類型的鏈接腳本,一種鏈接腳本是MDK編譯器自動指定,用戶不需要關注,另外一種腳本是用戶自定義,通過自定義腳本設定多片RAM的指定,和每一片RAM的具體用法。

用戶自定義的用法是通過點擊魔術棒->linker->按照下圖的設置,然后點擊Edit按鈕就會打開鏈接腳本。

d230b736-f2e0-11ee-9118-92fbcf53809c.png

鏈接腳本的定義如下:通過注釋我們知道有倆片RAM區,一片是RW_IRAM1(DTCM RAM:128KB,地址是0x20000000),一片是RW_IRAM2(AXI RAM:512K,地址是0x24000000),這里配置為RW_IRAM1注釋掉不使用,使用RW_IRAM2。

.ANY (+RW +ZI),意思是將RW-DATA、ZI(BSS、HEAP、STACK)分配到RW_IRAM2內存區域。在程序上電啟動時就會將此RAM使用起來,程序運行的臨時變量、全局變量等都在RW_IRAM2中運行。

d244efd0-f2e0-11ee-9118-92fbcf53809c.png

此時我們發現AXI RAM 128KB空間沒用到。如何將這個空間利用起來?rs485_sample_master.o (+RW +ZI)這句話的意思是將rs485_sample_master.c的這個文件中所有定義在RW_DATA段、ZI段的變量全部分布在RW_IRAM1這個RAM空間,也就是AXI RAM 128KB空間。

.ANY (axi_ram_128kb)這句話的意思是用戶可以將任意的變量等按照一定的規則定義到RW_IRAM1這個RAM空間,也就是AXI RAM 128KB空間, (axi_ram_128kb) 的含義是這個將RW_RAM1這個內存區聲明為axi_ram_128kb section。

在具體的C語言代碼中的定義方式如下:

d25649d8-f2e0-11ee-9118-92fbcf53809c.png

我們查看.map文件可以看到具體的定義是否有效,或者通過串口查看變量分配地址。通過.map文件的查看,我們可以確定程序中定義的變量確實分配到0x20000000為起始地址的AXI RAM 128KB空間了。

rs485_sample_master.o文件的RW、ZI段也分配在了0x20000000為起始地址的AXI RAM 128KB空間了。

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

    關注

    68

    文章

    20255

    瀏覽量

    252266
  • RAM
    RAM
    +關注

    關注

    8

    文章

    1399

    瀏覽量

    120561
  • 總線
    +關注

    關注

    10

    文章

    3040

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    技術剖析:Cypress CY15B004Q 4 - Kbit 串行 F - RAM

    技術剖析:Cypress CY15B004Q 4 - Kbit 串行 F - RAM 在嵌入式系統的應用中,非易失性存儲器是不可或缺的一部分。今天我要分享的 Cypress 公司
    的頭像 發表于 02-26 17:20 ?476次閱讀

    探索MXD1210非易失性RAM控制器:特性、應用與設計要點

    MAXIM公司的MXD1210非易失性RAM控制器,了解其特性、應用場景以及設計中的關鍵要點。 文件下載: MXD1210.pdf 由于調用接口失敗,暫時無法為搜索MXD1210非易失性RAM控制器的應用場景相關內容。下面我將
    的頭像 發表于 02-11 15:30 ?118次閱讀

    探索FM25CL64B 64 - Kbit F - RAM:高性能存儲新選擇

    探索FM25CL64B 64 - Kbit F - RAM:高性能存儲新選擇 在電子設計領域,尋找高性能、可靠且耐用的存儲解決方案一直是工程師們的重要任務。今天,我們將深入探討Cypress(現屬
    的頭像 發表于 01-16 16:20 ?506次閱讀

    CW32F030 RAM存儲器的介紹

    1 概述 CW32F030 內部集成 8KB 嵌入式 RAM 供用戶使用,用來存放程序執行過程中的各種數據。 RAM 的起始地址為0x2000 0000,數據在 RAM 中以小端模式存儲,即最低
    發表于 01-12 06:33

    FM25V10 1-Mbit 串行 F-RAM 芯片的特性與應用解析

    FM25V10 1-Mbit 串行 F-RAM 芯片的特性與應用解析 在電子設計領域,找到一款性能卓越、功能豐富且穩定可靠的非易失性存儲器至關重要。今天,我們就來深入探討 Cypress 公司推出
    的頭像 發表于 01-04 17:25 ?607次閱讀

    FM24V02A:高性能串行F - RAM的卓越之選

    FM24V02A:高性能串行F - RAM的卓越之選 在電子設計領域,非易失性存儲器的選擇至關重要,它直接影響著系統的性能、可靠性和使用壽命。今天,我們就來深入探討一款高性能的串行F - RAM
    的頭像 發表于 12-28 15:25 ?608次閱讀

    Infineon SEMPER NOR Flash與HYPERRAM? 2.0 Gen2 Flash+RAM MCP產品解析

    Infineon SEMPER NOR Flash與HYPERRAM? 2.0 Gen2 Flash+RAM MCP產品解析 引言 在汽車集群和工業HMI應用中,通常會使用NOR Flash來存儲
    的頭像 發表于 12-20 16:20 ?1205次閱讀

    Amphenol 38999 Ram-Lock 推拉接口連接器:設計與應用指南

    Amphenol 38999 Ram-Lock 推拉接口連接器:設計與應用指南 在電子設備的設計中,連接器的選擇至關重要,它直接影響到設備的性能、可靠性和易用性。今天,我們來深入了解一下
    的頭像 發表于 12-11 10:55 ?417次閱讀

    MCU代碼需要搬到RAM中才能運行嗎?不這樣做會有什么不妥嘛?

    是塊,不能對指令直接尋址,因此不能直接運行其中的代碼。 因此保存在nand flash中的程序不加載到ram中運行不了。即的硬盤中的Windows不加載到內存條中,運行不起來。
    發表于 12-04 07:39

    使用J-Link Attach NXP S32K3導致對應RAM區域被初始化成0xDEADBEEF

    在IAR Embedded Workbench for Arm中使用J-Link Attach NXP S32K3的時候,會提示對應RAM區域被初始化成0xDEADBEEF,導致對應RAM區域的數據被“篡改”。
    的頭像 發表于 11-03 15:26 ?5369次閱讀
    使用J-Link Attach NXP S32K3導致對應<b class='flag-5'>RAM</b>區域被初始化成0xDEADBEEF

    ram ip核的使用

    1、簡介 ram 的英文全稱是 Random Access Memory,即隨機存取存儲器, 它可以隨時把數據寫入任一指定地址的存儲單元,也可以隨時從任一指定地址中讀出數據, 其讀寫速度是由時鐘頻率
    發表于 10-23 07:33

    USB讀RAM buffer使用規范建議

    Questions:硬件和軟件同時去訪問 USB RAM buffer 造成數據亂掉或丟失 造成亂碼流程: 軟件設置 USB Valid 關總中斷,USB 收數據到 RAM Buffer,此時
    發表于 09-22 17:27

    Xilinx Shift RAM IP概述和主要功能

    Xilinx Shift RAM IP 是 AMD Xilinx 提供的一個 LogiCORE IP 核,用于在 FPGA 中實現高效的移位寄存器(Shift Register)。該 IP 核利用
    的頭像 發表于 05-14 09:36 ?1073次閱讀

    淺談MCU片上RAM

    MCU片上RAM是微控制單元(MCU)中集成于芯片內部的隨機存取存儲器,主要用于程序運行時的數據存儲與高速讀寫操作。以下是其核心要點: 一、定義與分類 ?片上RAM是MCU內部存儲單元的一部分
    的頭像 發表于 04-30 14:47 ?1357次閱讀

    是否可以為RT1060添加HDMI輸出?

    是否可以為 RT1060 添加 HDMI 輸出?我想支持標準 720p 分辨率并使用圖形加速。
    發表于 04-10 08:04