在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

什么是雙內存映射?能解決什么問題?

麥克泰技術 ? 來源:麥克泰技術 ? 2023-12-01 11:06 ? 次閱讀

J-Link調試器支持將程序下載到RAM或Flash中,并通過設置無限斷點、查看內存寄存器等方式實現在線調試。如果沒有這種調試能力,我們需要反復試錯。

當調試過程停止,沒有辦法繼續時,系統被“鎖定”或“調試掛起”。引起異常的一種情況是程序或調試器在外部RAM控制器配置之前訪問了外部內存。

為了解決該問題,J-Link增加了新功能-雙內存映射。

01什么是雙內存映射?能解決什么問題?

應用程序從main()開始,main()之前的啟動過程,我們通常默認其正常工作。因此,在main()之前出現的問題,特別是鎖定調試邏輯并阻止進一步調試,是一個大問題。其中一個問題是在外部RAM控制器配置之前訪問外部內存。

使用J-Link的雙內存映射,一個內存映射用于處理啟動階段的內存訪問,第二個內存映射在初始化完成后使用。第一個內存映射阻止對外部內存的訪問,第二個內存映射允許全內存訪問,消除了在配置完成之前訪問外部內存的可能性和問題。

02問題發現

在更新一些代碼時,我們注意到一些用戶界面代碼中的錯誤,重寫了它,并像往常一樣下載到目標中。在重置應用程序時,我們得到了目標連接丟失的消息。我們檢查了所有的物理連接,然后再試一次……

5a1d05d0-8ff6-11ee-939d-92fbcf53809c.png

…但它又失敗了。

對目標重新上電,再次下載應用程序,但結果相同。

03罪魁禍首

通過J-Link日志文件:

JLINK_ReadMem(0x0033D4C0, 0x340 Bytes,…)

CPU_ReadMem(832字節@ 0x0033D4C0)

failed

- 40.959ms returns 1

Embedded Studio告訴J-Link從目標的地址0x0033D4C0讀取832字節,在XC7Z010平臺上該地址位于外部DDR RAM中的內存。DDR RAM在訪問之前必須被初始化。而Embedded Studio在啟動目標應用程序之后讓J-Link立即讀取內存,該操作在DDR RAM初始化之前。

我們沒有添加任何會影響DDR RAM初始化的代碼。為什么這一切突然發生了呢?

一個打開的內存窗口,顯示了外部DDRRAM中的數組“aMyArrInExtDDRRAM”內容。

5a2f3566-8ff6-11ee-939d-92fbcf53809c.png

我們沒有考慮到打開的內存窗口是問題所在,內存窗口僅在調試會話期間可見,增加了這種情況的隱蔽性,

調試會話開始時不打開內存窗口并不是一個解決辦法。例如,第三方調試器可能默認打開內存窗口,或者不允許用戶關閉它等。同樣的,使用單內存映射解決方案,通過J-Link腳本文件指定某些區域為非法區域,在這種情況下也不起作用。

04解放方案

使用兩個內存映射:一個用于處理啟動完成之前的內存訪問,另一個用于處理啟動完成之后的內存訪問。用戶可以向每個映射中添加自定義區域。

第一個內存映射的訪問限制就像一個安全模式。一旦應用安全通過了這個階段,就會動態切換到第二個內存映射。

05易于實現

使用J-Link Control Panel,現在可以很容易地將“excluded”區域添加到第一個內存映射中,J-Link在目標應用程序啟動完成之前使用該映射。

5a44859c-8ff6-11ee-939d-92fbcf53809c.png

單擊“Add region…”將彈出如下對話框:

5a57ffb4-8ff6-11ee-939d-92fbcf53809c.png

配置之后,J-Link在初始化完成之前不會訪問外部DDR RAM。

針對XC7Z010平臺,我們在J-Link軟件中添加了XC7Z010的通用設置步驟。此配置中,XC7Z010的外部DDR RAM區域在默認情況下會在啟動完成之前被排除。未來我們可能對所有支持的芯片執行此工作。

審核編輯:湯梓紅

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

    關注

    38

    文章

    3322

    瀏覽量

    58767
  • 調試器
    +關注

    關注

    1

    文章

    312

    瀏覽量

    24180
  • J-Link
    +關注

    關注

    0

    文章

    88

    瀏覽量

    22613
  • 內存映射
    +關注

    關注

    0

    文章

    15

    瀏覽量

    7522
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    示波器的FFT能解什么問題

    本文將教你用五種方法把示波器上的FFT做成極致! 一、示波器上的FFT是什么? 二、示波器的FFT能解什么問題? 三、示波器的FFT 經常變成用戶手里的雞肋,問題在哪? 四、我們把示波器上的頻譜
    的頭像 發表于 08-23 09:31 ?1.8w次閱讀

    Linux內核之內存映射原理分析

    Linux 內核采用延遲分配物理內存的策略,在進程第一次訪問虛擬頁的時候,產生缺頁異常。如果是文件映射,那么分配物理頁,把文件指定區間的數據讀到物理頁中,然后在頁表中把虛擬頁映射到物理頁;如果是匿名
    發表于 07-21 17:06 ?2536次閱讀

    拆解mmap內存映射的本質!

    mmap 內存映射里所謂的內存其實指的是虛擬內存,在調用 mmap 進行匿名映射的時候(比如進行堆內存
    的頭像 發表于 01-24 14:30 ?2390次閱讀
    拆解mmap<b class='flag-5'>內存</b><b class='flag-5'>映射</b>的本質!

    FPGA能解什么問題看了就知道

    了解FPGA?首先,如果你從未接觸過FPGA(現場可編程門陣列),或者有過一點基礎想要繼續深入了解這個行業,在這個小節,我會向你介紹FPGA,并且向你解釋FPGA都能解什么問題,如何解決這些問題,并討論如何將設計進行優化等等。
    發表于 10-21 13:32

    eplan_路徑功能文本能解什么問題

    eplan_路徑功能文本是什么?eplan_路徑功能文本能解什么問題?eplan_路徑功能文本可能存在哪些問題?
    發表于 09-06 07:24

    內存映射的相關資料推薦

    一、介紹首先我們需要了解一個內存映射:stm32的flash地址起始于0x0800 0000,結束地址是0x0800 0000加上芯片實際的flash大小,不同的芯片flash大小不同。RAM起始
    發表于 12-03 06:24

    Linux的mmap文件內存映射機制

    的某個部分, 使用簡單的內存訪問指令讀寫文件;另一方面, 它也可以用于內核的基本組織模式, 在這種模式種, 內核將整個地址空間視為諸如文件之類的一組不同對象的映射. 中的傳統文件訪問方式是, 首先
    發表于 04-02 14:35 ?530次閱讀

    淺析linux內存映射原理

    內存映射,簡而言之就是將用戶空間的一段內存區域映射到內核空間,映射成功后,用戶對這段內存區域的修
    發表于 08-24 09:35 ?1754次閱讀
    淺析linux<b class='flag-5'>內存</b><b class='flag-5'>映射</b>原理

    將Zynq PS和PL與內存映射寄存器集成

    電子發燒友網站提供《將Zynq PS和PL與內存映射寄存器集成.zip》資料免費下載
    發表于 12-06 15:14 ?2次下載
    將Zynq PS和PL與<b class='flag-5'>內存</b><b class='flag-5'>映射</b>寄存器集成

    訪問CXL 2.0設備中的內存映射寄存器

    計算快速鏈接 (CXL) 1.1 和 CXL 2.0 規范在內存映射寄存器的放置和訪問方式上有所不同。CXL 1.1 規范將內存映射寄存器放置在 RCRB(根復合寄存器塊)中,而 CX
    的頭像 發表于 05-25 16:56 ?2621次閱讀
    訪問CXL 2.0設備中的<b class='flag-5'>內存</b><b class='flag-5'>映射</b>寄存器

    單片機的內存映射圖解析

    一、如何控制單片機? 單片機的內存映射圖解析 這里以STM32F429芯片為例,講解下單片機芯片內存映射圖。從此圖中可以看到芯片的外設被分配了512M的空間,然而真正的外設其實沒有使用
    的頭像 發表于 06-22 10:33 ?1556次閱讀
    單片機的<b class='flag-5'>內存</b><b class='flag-5'>映射</b>圖解析

    單片機的內存映射圖解析

    一、如何控制單片機? 單片機的內存映射圖解析 這里以STM32F429芯片為例,講解下單片機芯片內存映射圖。從此圖中可以看到芯片的外設被分配了512M的空間,然而真正的外設其實沒有使用
    的頭像 發表于 06-22 10:18 ?2032次閱讀
    單片機的<b class='flag-5'>內存</b><b class='flag-5'>映射</b>圖解析

    內存是怎么映射到物理地址空間的?內存是連續分布的嗎?

    如果我們將兩個4G內存插入內存插槽,得到的內存地址空間是0到8G嗎?是不是0到4G是第一根內存,4到8G是第二根內存呢?實際情況相差甚遠,
    的頭像 發表于 06-30 15:59 ?4171次閱讀
    <b class='flag-5'>內存</b>是怎么<b class='flag-5'>映射</b>到物理地址空間的?<b class='flag-5'>內存</b>是連續分布的嗎?

    pcb仿真能解什么問題

    pcb仿真能解什么問題?? PCB(Printed Circuit Board,印刷電路板)是一種在電氣和電子設備中應用廣泛的基礎元件。隨著技術的不斷發展,PCB設計也進入了數字化和智能化的時代
    的頭像 發表于 08-29 16:40 ?1748次閱讀

    U54內核上CLINT的內存映射

    ) {// handler code} 此屬性將保存和恢復處理程序中使用的寄存器,并在處理程序的末尾插入一條 mret 指令。 CLINT內存映射 下圖是U54 內核上 CLINT 的內存映射
    的頭像 發表于 10-08 09:34 ?723次閱讀
    U54內核上CLINT的<b class='flag-5'>內存</b><b class='flag-5'>映射</b>
    主站蜘蛛池模板: 68日本xxxxxxxxx777| 女bbbbxxxx毛片视频 | 免费a级午夜绝情美女视频 免费jlzzjlzz在线播放视频 | 欧洲另类一二三四区 | 久久看精品 | www欧美在线观看 | 人与禽交免费网站视频 | 亚洲一区二区色 | 在线播放国产不卡免费视频 | 国产巨大bbbb俄罗斯 | 国产伦子一区二区三区四区 | 午夜三级在线 | 亚洲日本欧美 | 性欧美成人免费观看视 | 最新亚洲人成网站在线影院 | 毛茸茸成熟妇女亚洲人 | 免费又黄又爽的禁片视频 | 美女牲交毛片一级视频 | 午夜撸| 亚洲欧美一区二区三区四区 | 黄网站播放 | 波多野结衣一级毛片 | 色综合天天综合网亚洲影院 | 激情五月播播 | 久久羞羞视频 | 日日摸夜夜爽 | 国产在线观看黄色 | 美女网站在线观看视频18 | 2021久久精品免费观看 | 香蕉视频一级 | 91大神亚洲影视在线 | 人人做人人干 | 加勒比视频一区 | 欧美片欧美日韩国产综合片 | 午夜剧场操一操 | 国产一级毛片国语版 | 一区二区三区国模大胆 | tv天堂| 男男gay污小黄文 | 男子扒开美女尿口做羞羞的事 | 影音先锋色天使 |