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

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

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

3天內不再提示

Vybrid非對稱多核架構的裸機固件

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Stefan Agner, Torad ? 2022-06-14 09:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在上一篇文章中,Valter Minute 討論了總體架構以及非對稱(也稱為異構)多核 SoC 的優勢。對于次要 Cortex-M4 內核的操作平臺有多種選擇:Valter 文章中討論的示例使用 eCos RTOS,飛思卡爾推廣自己的 RTOS MQX。

然而,根據應用程序的不同,人們甚至可能更喜歡裸機解決方案,例如移植舊版固件或為了其簡單性。但是,也有缺點,最突出的是缺少外圍設備的驅動程序。本文展示了為 Vybrid 的 Cortex-M4 內核創建定制的裸機固件時的一些技術缺陷。

作為一個示例環境,我決定為開源固件庫 libopencm3 貢獻 Vybrid 支持。該庫在 LGPL 版本 3 下獲得許可,因此明確允許將封閉源應用程序與該庫鏈接。盡管它的名字,這個庫也支持各種 Cortex-M4 微控制器,因此它非常適合 Vybrid 的 Cortex-M4 內核。使用該庫,我們可以利用對 Cortex-M4 內核外設的支持,例如系統滴答定時器或嵌套中斷控制器。有人可能會爭辯說,使用庫并不是真正的裸機,但是由于庫的幾乎所有組件都是完全可選的,因此與使用完整的 RTOS 相比,它更接近于裸機。

該代碼尚未合并到上游項目中,但已經可以從 Github 獲得(切換到 fsl-vf6xx 分支):https ://github.com/falstaff84/libopencm3和https://github.com/falstaff84/libopencm3-examples 。 此處的詳細構建說明:http: //falstaff.agner.ch/2014/07/10/libopencm3-bare-metal-vybrid-examples/

內存和閃存

標準微控制器和 Vybrid 的 Cortex-M4 之間的第一個也是最顯著的區別是不同的內存和閃存架構。在微控制器上,非易失性存儲器通常可在控制器的線性地址空間中訪問,從而允許它執行就地固件 (XIP)。在 Vybrid 上,非易失性內存通常不會以允許其就地執行的方式實現。相反,固件由主操作系統(例如 Linux)從存儲介質(例如 NAND 閃存)加載到 RAM 中,隨后由 Cortex-M4 內核執行。

有不少于三種內存類型可供運行:緊密耦合內存、片上內存 (OC-RAM/SRAM) 和外部 (DDR) 內存。緊密耦合內存 (TCM) 是可用的最快內存,因為它直接連接到 Cortex-M4 內核。但是,可用的內存量也非常有限。片上存儲器 SRAM 是一種流行的選擇,因為它在尺寸和速度方面提供了良好的折衷。飛思卡爾提供了一份詳盡的文檔,討論了可用內存類型的速度和建議(請參閱 AN4947,了解 Vybrid 架構)。

pYYBAGKn44KAH2VaAAD-7G1PrYY786.png

另一方面是 Cortex-M4 的哈佛式架構,它由兩條總線組成,一條用于數據,一條用于指令。為了確保硬件相應地使用這兩條總線,內存映射提供別名以使用兩條總線訪問相同的內存位置:

OC-RAM Code-Bus: 0x1f000000-0x1f03ffff

OC-RAM System-Bus: 0x3f000000-0x3f03ffff

為獲得最佳性能,應在鏈接器文件的內存描述中考慮到這一點;libopencm3 庫定義了兩個內存區域,代碼總線 (pc_ram) 和系統總線 (ps_ram)。在以下示例中,可用內存被分成兩半,每個部分有 256K 的 RAM。由于地址是整個內存范圍的別名,因此可以根據項目需要自由調整這兩個部分的大小。

鏈接器控制文件片段:examples/vf6xx/colibri-vf61/colibri-vf61.ld

MEMORY

{

pc_ram (rwx) : ORIGIN = 0x1f000000, LENGTH = 256K

ps_ram (rwx) : ORIGIN = 0x3f040000, LENGTH = 256K

}

在節部分,我們需要將代碼節(文本)和數據節(例如 bss)的位置分配給這兩個內存區域。

鏈接器控制文件片段:lib/vf6xx/libopencm3_vf6xx.ld

SECTIONS

{

.text : {

*(.vectors) /* Vector table */

。 = ALIGN(0x400);

*(.text.reset_handler) /* Force reset handler at start */

*(.text*) /* Program code */

。 = ALIGN(4);

} 》pc_ram

。..

.bss : {

*(.bss*) /* Read-write zero initialized data */

*(COMMON)

。 = ALIGN(4);

_ebss = 。;

} 》ps_ram

。..

}

向量表和入口地址

另一個重要方面是向量(中斷)表。在 Cortex-M4 上,向量表0x00000000在復位時讀取。在微控制器上,這通常位于非易失性存儲器中。在 Vybrid 上,Cortex-M4 內核最初是關閉的。在固件的初始化代碼中,我們可以使用向量表偏移寄存器 (VTOR) 來定義向量表的自定義位置。在上面的鏈接器文件中,向量表明確放置在固件的開頭。lib/vf6xx/vector_chipset.c 中的初始化代碼確保在啟動時設置 VTOR 寄存器。

對于 Cortex-M4 微控制器,入口點(也稱為復位向量)是向量表的一部分。這引入了對 Vybrid 的循環依賴,因為我們從固件代碼中初始化向量表(無法從 Cortex-A5 內核訪問 VTOR 寄存器)。為了解決這個難題,輔助內核的入口點(“復位向量”)由系統復位控制器 (SRC) 模塊的寄存器在外部定義。對于飛思卡爾的啟動實用程序“mqxboot”,在 Cortex-A5 內核上運行的 mcc 內核模塊中的啟動實現可確保相應地設置此寄存器。用戶需要將入口點作為參數傳遞給“mqxboot”。注意:地址需要將位 0 設置為 1,以告訴 CPU 目標是 Thumb 代碼(另請參閱參考手冊的“運行輔助內核”一章)。

例如,要將固件 demo.bin 加載到 SRAM 并在輔助內核上啟動它,可以在主內核上運行的 Linux 上使用 mqxboot:

mqxboot

mqxboot demo.bin 0x3f000000 0x1f000401

加載地址需要可從 Cortex-A5 訪問。在本例中,這是 SRAM 的開始。但是,入口點地址是僅適用于 Cortex-M4 內核的代碼總線別名。

時鐘

由于 Cortex-M4 在源自 Cortex-A5 內核時鐘的系統時鐘上運行,因此從 Cortex-M4 側更改時鐘并不是一個好主意。然而,為了計算時序,讀取時鐘寄存器以獲得當前速度是必要的。在libopencm3中,計算邏輯在lib/vf6xx/ccm.c下實現。主要時鐘是 ARM 內核時鐘 (ccm_core_clk)、平臺總線時鐘(也是 Cortex-M4 內核時鐘 (ccm_platform_bus_clk) 以及 IPS(外設)時鐘 (ccm_ipg_bus_clk))。

溝通

另一方面是與運行在 Cortex-A5 上的主操作系統進行通信的通信基礎設施。libopencm3 實現目前不支持通信。可能最簡單的通信實現是定義一個可以從雙方訪問的共享內存區域(考慮使用使用獨占加載/存儲指令 LDREX/STREX 的同步機制)。更復雜一點的是 MQX RTOS 的多核通信 (MCC) 組件的實現。該組件利用硬件信號量模塊 (SEMA4) 以及四個 CPU 到 CPU 中斷之一在有新消息可用時通知另一個 CPU。可以下載最近的 MQX 版本(4.0.2 及更高版本)以獲取 MCC 的源代碼(驗證許可證是否涵蓋您的用例)。

結論

在 Vybrid 上移植或實現裸機固件是可能的,而且不是很復雜。畢竟,Vybrid 內部的 Cortex-M4 仍然是執行 ARMv7-M 架構的 Cortex-M4 內核。除了外圍驅動程序,鏈接器文件以及初始設置代碼需要一些特殊考慮。

作者:Stefan Agner, Toradex

審核編輯:郭婷

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

    關注

    48

    文章

    8381

    瀏覽量

    164575
  • 控制器
    +關注

    關注

    114

    文章

    17791

    瀏覽量

    193159
  • 寄存器
    +關注

    關注

    31

    文章

    5608

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    適配“大下行 + 小上行” 場景:信而泰 2544 非對稱測試操作指南

    的 ONU-OLT 組網應用中,“非對稱” 是業務流量的典型特征: l 家庭用戶觀看 4K 視頻、下載大文件時,產生的下行流量可達百兆甚至千兆級別,而日常發送消息、上傳文件的上行流量僅為幾兆到幾十兆; l 在企業接入場景中,終端設備海量數據采集上傳與
    的頭像 發表于 01-27 17:09 ?636次閱讀
    適配“大下行 + 小上行” 場景:信而泰 2544 <b class='flag-5'>非對稱</b>測試操作指南

    全志T153處理器ARM+RISC-V的雙核CP多有強?——飛凌嵌入式

    在嵌入式設備拼性能、拼響應、拼功耗的內卷時代,雙核協作才是破局的關鍵。傳統的對稱多處理(SMP)架構已難以兼顧全場景需求,非對稱多處理(AMP)異構架構正在成為行業主流,在這樣的背景下
    的頭像 發表于 01-16 08:06 ?1685次閱讀
    全志T153處理器ARM+RISC-V的雙核CP多有強?——飛凌嵌入式

    保姆級教程!RK3588 Linux6.1?固件簽名完整實現方案(不含rootfs)

    內核)上實操固件簽名時,踩了不少官方文檔的坑,經過反復調試終于打通全流程。今天就把這份實戰經驗整理成保姆級教程,從配置到問題排查,一步步帶大家搞定 RK3588 的固件簽名! 一、核心原理速覽 ? ? 固件簽名的核心邏輯是通過
    的頭像 發表于 01-14 17:21 ?1832次閱讀
    保姆級教程!RK3588 Linux6.1?<b class='flag-5'>固件</b>簽名完整實現方案(不含rootfs)

    專為12 V電池防反接設計的保護器件TPSMB非對稱瞬態抑制二極管

    - Littelfuse公司 (NASDAQ:LFUS)是一家工業技術制造公司,致力于為可持續發展、互聯互通和更安全的世界提供動力。公司今天宣布推出TPSMB非對稱系列 瞬態抑制二極管 (TPSMB2412CA
    的頭像 發表于 12-24 11:42 ?564次閱讀
    專為12 V電池防反接設計的保護器件TPSMB<b class='flag-5'>非對稱</b>瞬態抑制二極管

    米爾RK3506核心板SDK重磅升級,解鎖三核A7實時控制新架構

    全與合規性要求。 二、AMP異構實時方案:低成本實現硬實時控制RK3506三核Cortex-A7架構是實時能力的核心。我們實現了非對稱多處理(AMP)方案,允許將其中一顆Cortex-A7核隔離
    發表于 12-19 20:35

    樂鑫科技ESP-AMP框架詳解!兩款已支持的ESP32-P4C5開發板推薦!啟明云端樂鑫科技代理

    多核嵌入式開發中,如何實現任務的高效分工與跨核通信,一直是開發者關注的重點。ESP-AMP作為專為ESP32系列打造的非對稱多處理框架,現已支持主核運行FreeRTOS、從核運行裸機或其他實時
    的頭像 發表于 12-18 18:02 ?1205次閱讀
    樂鑫科技ESP-AMP框架詳解!兩款已支持的ESP32-P4C5開發板推薦!啟明云端樂鑫科技代理

    深入解析SMFA非對稱系列表面貼裝TVS二極管

    深入解析SMFA非對稱系列表面貼裝TVS二極管 在電子設備的設計中,保護關鍵元件免受電壓瞬變和浪涌的影響至關重要。TVS(瞬態電壓抑制)二極管作為一種常用的保護器件,能夠在瞬間吸收大量的能量,將電壓
    的頭像 發表于 12-15 16:40 ?377次閱讀

    TPSMB非對稱系列TVS二極管:汽車應用的理想保護方案

    TPSMB非對稱系列TVS二極管:汽車應用的理想保護方案 在汽車電子領域,隨著電動汽車的快速發展,對電子元件的性能和可靠性提出了更高的要求。TVS(瞬態電壓抑制)二極管作為一種重要的過電壓保護元件
    的頭像 發表于 12-15 16:20 ?469次閱讀

    【深度實戰】MYD-LR3576 AMP非對稱多核開發指南:從配置到實戰

    一、什么是AMP?為什么重要?AMP(AsymmetricMulti-Processing)非對稱多處理架構,允許單個芯片的不同核心運行不同的操作系統或裸機程序。相比傳統的SMP(對稱多
    的頭像 發表于 12-05 08:07 ?7129次閱讀
    【深度實戰】MYD-LR3576 AMP<b class='flag-5'>非對稱多核</b>開發指南:從配置到實戰

    傾佳電子混合逆變器拓撲架構演進及基于非對稱碳化硅器件的T型三電平技術應用價值分析

    傾佳電子混合逆變器Hybrid Inverter拓撲架構演進及基于非對稱碳化硅器件的T型三電平技術應用價值分析 傾佳電子(Changer Tech)是一家專注于功率半導體和新能源汽車連接器的分銷商
    的頭像 發表于 10-19 09:04 ?1828次閱讀
    傾佳電子混合逆變器拓撲<b class='flag-5'>架構</b>演進及基于<b class='flag-5'>非對稱</b>碳化硅器件的T型三電平技術應用價值分析

    非對稱密鑰生成和轉換規格詳解

    生成 以字符串參數生成RSA密鑰,具體的“字符串參數”由“RSA密鑰類型”和“素數個數”使用符號“|”拼接而成,用于在創建非對稱密鑰生成器時,指定密鑰規格。 說明:生成RSA非對稱密鑰時,默認素數為2
    發表于 09-01 07:50

    如何在 MA35 系列微處理器 (MPU) 上開發 AMP(非對稱多處理)應用程序?

    如何在 MA35 系列微處理器 (MPU) 上開發 AMP(非對稱多處理)應用程序,并通過建立多個端點的過程促進與其他內核的多通道數據傳輸。
    發表于 08-19 06:11

    【創龍TL3562-MiniEVM開發板試用體驗】2、運行AMP案例

    互不干擾,安全性更高。 AMP(非對稱多處理)是一種多核處理器架構設計方法,與傳統的SMP(對稱多處理)架構形成對比。在AMP系統中,不同的
    發表于 07-29 14:15

    凌科芯安LKT4304安全芯片在智能家居網關中的應用

    采用對稱加密與非對稱加密相結合的混合加密架構。在智能家居網關與服務器通信過程中,非對稱加密算法(如RSA或SM2)用于密鑰協商與身份認證。RSA 算法成熟且應用廣泛,擁有龐大的開源庫支
    的頭像 發表于 06-16 17:43 ?1232次閱讀
    凌科芯安LKT4304安全芯片在智能家居網關中的應用

    創新非對稱瞬態電壓抑制二極管在SiC MOSFET門保護中的應用

    保護半導體設備和電子設備是任何穩健的電源管理和電路設計的關鍵。在本文中,我們將重點介紹非對稱瞬態電壓抑制(TVS)二極管系列,這些二極管非常適合用于硅碳化物(SiC)MOSFET的門保護。瞬態保護
    的頭像 發表于 03-27 11:48 ?1083次閱讀
    創新<b class='flag-5'>非對稱</b>瞬態電壓抑制二極管在SiC MOSFET門保護中的應用