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

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

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

3天內不再提示

Zynq中程序存儲位置和設置方法

CHANBAEK ? 來源:嵌入式隨筆 ? 作者:嵌入式隨筆 ? 2023-10-17 17:00 ? 次閱讀

Zynq中存儲程序的地方有QSPI Flash,SD卡,EMMC。

Zynq的程序分為三部分,上電啟動的引導程序(fsbl),FPGA的程序,arm程序。這里以arm程序存儲位置為主進行討論。

1 ARM為裸機程序

裸機程序比較小,可以將全部程序(fsbl,FPGA的程序,arm程序)一起存儲在QSPI Flash,SD卡,EMMC中的任何一個位置。

1.1 固化在QSPI FLASH

使用JTAG和sdk固化。

或者先運行程序,然后通過程序將可執行文件寫入到QSPI Flash中,然后將啟動方式設置為QSPI Flash啟動,下次啟動就可以從QSPI Flash啟動了。

1.2 固化在SD卡

通過讀卡器將可執行文件復制進SD卡,將啟動方式設置為SD卡啟動,下次啟動就可以從SD卡啟動了。

1.3 固化在EMMC中

先運行sd卡中的程序(或者通過jtag運行程序),然后通過程序將可執行文件寫入到emmc中,然后將啟動方式設置為emmc啟動,下次啟動就可以從emmc啟動了。

2 ARM為運行linux的程序

linux跟文件系統一般比較大,全部固化在QSPI Flash中裝不下。可以在QSPI Flash中固化一部分。

2.1 部分固化在QSPI FLASH中

可以在QSPI Flash中固化 fsbl+uboot+FPGA的程序+linux內核+設備樹,將根文件系統存儲在emmc中。

fsbl+uboot本身已經可以運行,uboot運行后會將其余部分拷貝到內存繼續運行。以下是uboot中的zynq-common.h中的一部分程序。

"qspiboot=echo Copying Linux from QSPI flash to RAM... && " 
 "sf probe 0 0 0 && " 
 "sf read ${bitstream_load_address} 0x120000 ${bitstream_size} && " 
 "fpga loadb 0 ${bitstream_load_address} ${bitstream_size} && " 
 "sf read ${kernel_load_address} 0x540000 ${kernel_size} && " 
 "sf read ${devicetree_load_address} 0x520000 ${devicetree_size} && " 
 "bootz ${kernel_load_address} - ${devicetree_load_address}?"

第三行是將fpga文件拷貝到內存中,第四行是處理內存中的fpga程序,第五行是將linux內核文件拷貝到內存中,第六行是將設備樹文件拷貝到內存中。然后開始運行內核。內核運行后會去運行emmc中的根文件系統。

可以看出 fsbl+uboot+FPGA的程序和裸機程序是一樣的,剩下的就是uboot執行程序的一部分。如果linux內核+設備樹存儲在別的地方,只需要將上述程序修改為從相應地方拷貝到內存就可以。

固化的話,可以在sd卡中先運行程序,然后按照設定將QSPI Flash分區并將對應的執行程序復制進QSPI Flash中,將emmc格式化為ext4文件系統在將跟文件系統復制進emmc中。再將啟動方式設置為QSPI Flash啟動,下次啟動就可以從qspi啟動了。

Qspi存儲程序的分區大小可以自定義但是要能存的下程序,比如fpga程序3Mb不能只給個2Mb的分區。

2.2 固化在SD卡

通過讀卡器將可執行文件復制進SD卡,將啟動方式設置為SD卡啟動,下次啟動就可以從SD卡啟動了。

2.3 固化在EMMC中

先運行sd卡中的程序,然后通過程序將可執行文件寫入到emmc中,然后將啟動方式設置為emmc啟動,下次啟動就可以從emmc啟動了。

3 區別與聯系

可以看出帶Linux的就是多了一段跳轉,固化在QSPI Flash中的時候由于全部程序比較大需要分散放。fsbl+第一段ARM程序需要在一起并且名字是固定的為BOOT.BIN(這是芯片內部預置程序決定的)。

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

    關注

    10

    文章

    1644

    瀏覽量

    148757
  • Linux
    +關注

    關注

    87

    文章

    11351

    瀏覽量

    210504
  • 程序
    +關注

    關注

    117

    文章

    3798

    瀏覽量

    81457
  • Zynq
    +關注

    關注

    10

    文章

    610

    瀏覽量

    47320
  • emmc
    +關注

    關注

    7

    文章

    219

    瀏覽量

    52935
收藏 人收藏

    評論

    相關推薦

    讓STM32應用與存儲位置無關

    最近有客戶詢問,能否使用 STM32CubeIDE 在編譯時通過設置某個編譯選項,讓STM32 應用與存儲位置無關。這樣的優勢是能使同一個固件被燒在 STM32 Flash 里的不同位置, 而在系統
    發表于 09-05 11:43 ?855次閱讀

    win10 IE瀏覽器無法更改臨時文件夾存儲位置

    臨時文件修改不了存儲位置的問題。這是怎么回事呢?接下來,小編就給大家介紹下win10系統下無法更改ie臨時文件位置的解決方案。具體方法如下: 1、每次用ie修改,注銷后還是沒有改變。2、可以通過修改注冊表
    發表于 03-08 13:46

    Keil C51 使用C語言編寫程序,怎么設置程序的起始存儲位置從0x1000開始

    使用STC 的IAP系列單片機,打算自己寫一段更新程序。求教C語言編寫的話要如何設置程序的起始存儲位置,該段程序準備
    發表于 02-09 17:27

    【求助】指定變量在各個片上存儲區域的存儲位置時出現...

    由于程序的運算量很大,想把L1D和L2當做普通RAM,并將指定的數組變量存儲在L1D和L2中。我的操作方法如下: 1. 先對L1DCFG和L2CFG寄存器進行操作,將L1D和L2配置為普通RAM而非
    發表于 05-13 06:40

    C語言中局部變量的存儲位置是如何分配的?

    ADS下C語言中局部變量的存儲位置是如何分配的?
    發表于 04-26 06:31

    Proteus中程序的調試及仿真的方法

    1.仿真的方法:將編譯好的程序載入單片機1雙擊繪制完電路原理圖中的單片機→在彈出的窗口中,點擊“Program File”后邊的小文件夾2找到之前編譯好的C語言程序文件(2.2中的第⑤步所在
    發表于 11-23 06:07

    存儲位元與存儲單元是什么含義

    存儲位元與存儲單元是什么含義?數據通信的方式可以分為哪幾種呢?
    發表于 01-21 07:17

    調試TMS570的F021庫時 cmd文件設置程序放到指定位置,但實際指定位置的內存卻全是FF,會是什么原因?

    在使用TMS570調試TI的F021庫時,cmd文件已經設置了代碼的存儲位置,但是在查看內存數據時,指定的存儲位置都是0xFFFFFFFF,有人遇到過同樣的問題嗎?
    發表于 04-17 10:21

    linux中程序調試的方法

    這是一個基本的調試問題的方法。 我們在程序中懷疑的地方插入print語句來了解程序的運行流程控制流和變量值的改變。
    發表于 06-16 09:34 ?2034次閱讀
    linux<b class='flag-5'>中程序</b>調試的<b class='flag-5'>方法</b>

    Proteus中程序的調試(Proteus與ICCAVR的聯合調試)

    1.仿真的方法:將編譯好的程序載入單片機1雙擊繪制完電路原理圖中的單片機→在彈出的窗口中,點擊“Program File”后邊的小文件夾2找到之前編譯好的C語言程序文件(2.2中的第⑤步所在
    發表于 11-15 13:21 ?11次下載
    Proteus<b class='flag-5'>中程序</b>的調試(Proteus與ICCAVR的聯合調試)

    單片機中程序和數據存放位置、與電腦內存和硬盤的類比,單片機和計算機程序啟動流程對比

    單片機中程序和數據存放位置、與電腦內存和硬盤的類比,單片機和計算機程序啟動流程對比
    發表于 11-26 17:51 ?14次下載
    單片機<b class='flag-5'>中程序</b>和數據存放<b class='flag-5'>位置</b>、與電腦內存和硬盤的類比,單片機和計算機<b class='flag-5'>程序</b>啟動流程對比

    如何開發與位置無關的 STM32 完整工程

    最近有客戶詢問,能否使用 STM32CubeIDE 在編譯時通過設置某個編譯選項,讓STM32 應用與存儲位置無關。
    的頭像 發表于 09-15 09:59 ?1717次閱讀

    如何開發與存儲位置無關的STM32應用?

    如何開發與存儲位置無關的STM32應用?
    的頭像 發表于 10-18 16:46 ?645次閱讀
    如何開發與<b class='flag-5'>存儲位置</b>無關的STM32應用?

    怎么更改電腦上的云存儲位置,更改電腦上的云存儲位置教程

    。那要怎么更改電腦上的云存儲位置呢? ? ? 更改電腦上的云存儲位置通常是指將云存儲服務(如OneDrive、GoogleDrive、Dropbox等)同步的文件夾位置從默認
    的頭像 發表于 01-07 16:43 ?204次閱讀
    怎么更改電腦上的云<b class='flag-5'>存儲位置</b>,更改電腦上的云<b class='flag-5'>存儲位置</b>教程

    電腦相片云存儲位置,如何快速找到電腦相片云存儲位置

    在數字化時代,傳統的電腦已經無法滿足我們對高效、便捷計算的需求。云電腦以其強大的功能和靈活的使用方式,成為了新時代的寵兒。今天就為大家介紹如何快速找到電腦相片云存儲位置。 ? ?在現代辦公和生活中
    的頭像 發表于 01-16 10:44 ?190次閱讀
    電腦相片云<b class='flag-5'>存儲位置</b>,如何快速找到電腦相片云<b class='flag-5'>存儲位置</b>
    主站蜘蛛池模板: 四虎永久在线精品免费影视 | 成人在线a | 8090yy理论三级在线观看 | 国产高清区 | 日韩特黄特色大片免费视频 | 欧美极品在线视频 | 久久va | a视频网站 | 天天舔天天操天天干 | 好爽毛片一区二区三区四 | 国产伦精品一区二区三区网站 | 欧美一级高清免费a | 久久99热精品免费观看无卡顿 | 免费看欧美一级特黄α大片 | 免费高清在线爱做视频 | 天天干天天操天天摸 | 啪啪影城 | 天天爽夜夜爽 | 亚洲第一中文字幕 | 国产高清视频在线播放www色 | 性欧美性free | 男女爱爱是免费看 | 亚洲色图 欧美 | 伊人9| 最近视频在线播放免费观看 | 色播影院性播影院私人影院 | 国产片无遮挡在线看床戏 | 免费在线视频你懂的 | 日本成人免费 | 一本视频在线 | 日日拍夜夜嗷嗷叫狠狠 | 中文字幕一区二区三区不卡 | 免费看真人a一级毛片 | 亚洲精品日韩专区silk | 亚洲一级免费视频 | 色天天综合色天天天天看大 | 欧美一级特黄aaa大片 | 淫操| 国产一区国产二区国产三区 | 奇米四色7777 | 精品视频一区二区三区 |