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

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

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

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

Vybrid非對(duì)稱(chēng)多核架構(gòu)的裸機(jī)固件

星星科技指導(dǎo)員 ? 來(lái)源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Stefan Agner, Torad ? 2022-06-14 09:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

然而,根據(jù)應(yīng)用程序的不同,人們甚至可能更喜歡裸機(jī)解決方案,例如移植舊版固件或?yàn)榱似浜?jiǎn)單性。但是,也有缺點(diǎn),最突出的是缺少外圍設(shè)備的驅(qū)動(dòng)程序。本文展示了為 Vybrid 的 Cortex-M4 內(nèi)核創(chuàng)建定制的裸機(jī)固件時(shí)的一些技術(shù)缺陷。

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

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

內(nèi)存和閃存

標(biāo)準(zhǔn)微控制器和 Vybrid 的 Cortex-M4 之間的第一個(gè)也是最顯著的區(qū)別是不同的內(nèi)存和閃存架構(gòu)。在微控制器上,非易失性存儲(chǔ)器通??稍诳刂破鞯木€性地址空間中訪問(wèn),從而允許它執(zhí)行就地固件 (XIP)。在 Vybrid 上,非易失性?xún)?nèi)存通常不會(huì)以允許其就地執(zhí)行的方式實(shí)現(xiàn)。相反,固件由主操作系統(tǒng)(例如 Linux)從存儲(chǔ)介質(zhì)(例如 NAND 閃存)加載到 RAM 中,隨后由 Cortex-M4 內(nèi)核執(zhí)行。

有不少于三種內(nèi)存類(lèi)型可供運(yùn)行:緊密耦合內(nèi)存、片上內(nèi)存 (OC-RAM/SRAM) 和外部 (DDR) 內(nèi)存。緊密耦合內(nèi)存 (TCM) 是可用的最快內(nèi)存,因?yàn)樗苯舆B接到 Cortex-M4 內(nèi)核。但是,可用的內(nèi)存量也非常有限。片上存儲(chǔ)器 SRAM 是一種流行的選擇,因?yàn)樗诔叽绾退俣确矫嫣峁┝肆己玫恼壑?。飛思卡爾提供了一份詳盡的文檔,討論了可用內(nèi)存類(lèi)型的速度和建議(請(qǐng)參閱 AN4947,了解 Vybrid 架構(gòu))。

pYYBAGKn44KAH2VaAAD-7G1PrYY786.png

另一方面是 Cortex-M4 的哈佛式架構(gòu),它由兩條總線組成,一條用于數(shù)據(jù),一條用于指令。為了確保硬件相應(yīng)地使用這兩條總線,內(nèi)存映射提供別名以使用兩條總線訪問(wèn)相同的內(nèi)存位置:

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

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

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

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

MEMORY

{

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

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

}

在節(jié)部分,我們需要將代碼節(jié)(文本)和數(shù)據(jù)節(jié)(例如 bss)的位置分配給這兩個(gè)內(nèi)存區(qū)域。

鏈接器控制文件片段: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

。..

}

向量表和入口地址

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

對(duì)于 Cortex-M4 微控制器,入口點(diǎn)(也稱(chēng)為復(fù)位向量)是向量表的一部分。這引入了對(duì) Vybrid 的循環(huán)依賴(lài),因?yàn)槲覀儚墓碳a中初始化向量表(無(wú)法從 Cortex-A5 內(nèi)核訪問(wèn) VTOR 寄存器)。為了解決這個(gè)難題,輔助內(nèi)核的入口點(diǎn)(“復(fù)位向量”)由系統(tǒng)復(fù)位控制器 (SRC) 模塊的寄存器在外部定義。對(duì)于飛思卡爾的啟動(dòng)實(shí)用程序“mqxboot”,在 Cortex-A5 內(nèi)核上運(yùn)行的 mcc 內(nèi)核模塊中的啟動(dòng)實(shí)現(xiàn)可確保相應(yīng)地設(shè)置此寄存器。用戶(hù)需要將入口點(diǎn)作為參數(shù)傳遞給“mqxboot”。注意:地址需要將位 0 設(shè)置為 1,以告訴 CPU 目標(biāo)是 Thumb 代碼(另請(qǐng)參閱參考手冊(cè)的“運(yùn)行輔助內(nèi)核”一章)。

例如,要將固件 demo.bin 加載到 SRAM 并在輔助內(nèi)核上啟動(dòng)它,可以在主內(nèi)核上運(yùn)行的 Linux 上使用 mqxboot:

mqxboot

mqxboot demo.bin 0x3f000000 0x1f000401

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

時(shí)鐘

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

溝通

另一方面是與運(yùn)行在 Cortex-A5 上的主操作系統(tǒng)進(jìn)行通信的通信基礎(chǔ)設(shè)施。libopencm3 實(shí)現(xiàn)目前不支持通信??赡茏詈?jiǎn)單的通信實(shí)現(xiàn)是定義一個(gè)可以從雙方訪問(wèn)的共享內(nèi)存區(qū)域(考慮使用使用獨(dú)占加載/存儲(chǔ)指令 LDREX/STREX 的同步機(jī)制)。更復(fù)雜一點(diǎn)的是 MQX RTOS 的多核通信 (MCC) 組件的實(shí)現(xiàn)。該組件利用硬件信號(hào)量模塊 (SEMA4) 以及四個(gè) CPU 到 CPU 中斷之一在有新消息可用時(shí)通知另一個(gè) CPU??梢韵螺d最近的 MQX 版本(4.0.2 及更高版本)以獲取 MCC 的源代碼(驗(yàn)證許可證是否涵蓋您的用例)。

結(jié)論

在 Vybrid 上移植或?qū)崿F(xiàn)裸機(jī)固件是可能的,而且不是很復(fù)雜。畢竟,Vybrid 內(nèi)部的 Cortex-M4 仍然是執(zhí)行 ARMv7-M 架構(gòu)的 Cortex-M4 內(nèi)核。除了外圍驅(qū)動(dòng)程序,鏈接器文件以及初始設(shè)置代碼需要一些特殊考慮。

作者:Stefan Agner, Toradex

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)注

    48

    文章

    8340

    瀏覽量

    164250
  • 控制器
    +關(guān)注

    關(guān)注

    114

    文章

    17772

    瀏覽量

    192548
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5607

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    適配“大下行 + 小上行” 場(chǎng)景:信而泰 2544 非對(duì)稱(chēng)測(cè)試操作指南

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

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

    在嵌入式設(shè)備拼性能、拼響應(yīng)、拼功耗的內(nèi)卷時(shí)代,雙核協(xié)作才是破局的關(guān)鍵。傳統(tǒng)的對(duì)稱(chēng)多處理(SMP)架構(gòu)已難以兼顧全場(chǎng)景需求,非對(duì)稱(chēng)多處理(AMP)異構(gòu)架構(gòu)正在成為行業(yè)主流,在這樣的背景下
    的頭像 發(fā)表于 01-16 08:06 ?1546次閱讀
    全志T153處理器ARM+RISC-V的雙核CP多有強(qiáng)?——飛凌嵌入式

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

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

    米爾RK3506核心板SDK重磅升級(jí),解鎖三核A7實(shí)時(shí)控制新架構(gòu)

    全與合規(guī)性要求。 二、AMP異構(gòu)實(shí)時(shí)方案:低成本實(shí)現(xiàn)硬實(shí)時(shí)控制RK3506三核Cortex-A7架構(gòu)是實(shí)時(shí)能力的核心。我們實(shí)現(xiàn)了非對(duì)稱(chēng)多處理(AMP)方案,允許將其中一顆Cortex-A7核隔離
    發(fā)表于 12-19 20:35

    樂(lè)鑫科技ESP-AMP框架詳解!兩款已支持的ESP32-P4C5開(kāi)發(fā)板推薦!啟明云端樂(lè)鑫科技代理

    多核嵌入式開(kāi)發(fā)中,如何實(shí)現(xiàn)任務(wù)的高效分工與跨核通信,一直是開(kāi)發(fā)者關(guān)注的重點(diǎn)。ESP-AMP作為專(zhuān)為ESP32系列打造的非對(duì)稱(chēng)多處理框架,現(xiàn)已支持主核運(yùn)行FreeRTOS、從核運(yùn)行裸機(jī)或其他實(shí)時(shí)
    的頭像 發(fā)表于 12-18 18:02 ?1014次閱讀
    樂(lè)鑫科技ESP-AMP框架詳解!兩款已支持的ESP32-P4C5開(kāi)發(fā)板推薦!啟明云端樂(lè)鑫科技代理

    深入解析SMFA非對(duì)稱(chēng)系列表面貼裝TVS二極管

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

    TPSMB非對(duì)稱(chēng)系列TVS二極管:汽車(chē)應(yīng)用的理想保護(hù)方案

    TPSMB非對(duì)稱(chēng)系列TVS二極管:汽車(chē)應(yīng)用的理想保護(hù)方案 在汽車(chē)電子領(lǐng)域,隨著電動(dòng)汽車(chē)的快速發(fā)展,對(duì)電子元件的性能和可靠性提出了更高的要求。TVS(瞬態(tài)電壓抑制)二極管作為一種重要的過(guò)電壓保護(hù)元件
    的頭像 發(fā)表于 12-15 16:20 ?442次閱讀

    【深度實(shí)戰(zhàn)】MYD-LR3576 AMP非對(duì)稱(chēng)多核開(kāi)發(fā)指南:從配置到實(shí)戰(zhàn)

    一、什么是AMP?為什么重要?AMP(AsymmetricMulti-Processing)非對(duì)稱(chēng)多處理架構(gòu),允許單個(gè)芯片的不同核心運(yùn)行不同的操作系統(tǒng)或裸機(jī)程序。相比傳統(tǒng)的SMP(對(duì)稱(chēng)多
    的頭像 發(fā)表于 12-05 08:07 ?7078次閱讀
    【深度實(shí)戰(zhàn)】MYD-LR3576 AMP<b class='flag-5'>非對(duì)稱(chēng)多核</b>開(kāi)發(fā)指南:從配置到實(shí)戰(zhàn)

    傾佳電子混合逆變器拓?fù)?b class='flag-5'>架構(gòu)演進(jìn)及基于非對(duì)稱(chēng)碳化硅器件的T型三電平技術(shù)應(yīng)用價(jià)值分析

    傾佳電子混合逆變器Hybrid Inverter拓?fù)?b class='flag-5'>架構(gòu)演進(jìn)及基于非對(duì)稱(chēng)碳化硅器件的T型三電平技術(shù)應(yīng)用價(jià)值分析 傾佳電子(Changer Tech)是一家專(zhuān)注于功率半導(dǎo)體和新能源汽車(chē)連接器的分銷(xiāo)商
    的頭像 發(fā)表于 10-19 09:04 ?1787次閱讀
    傾佳電子混合逆變器拓?fù)?b class='flag-5'>架構(gòu)</b>演進(jìn)及基于<b class='flag-5'>非對(duì)稱(chēng)</b>碳化硅器件的T型三電平技術(shù)應(yīng)用價(jià)值分析

    非對(duì)稱(chēng)密鑰生成和轉(zhuǎn)換規(guī)格詳解

    生成 以字符串參數(shù)生成RSA密鑰,具體的“字符串參數(shù)”由“RSA密鑰類(lèi)型”和“素?cái)?shù)個(gè)數(shù)”使用符號(hào)“|”拼接而成,用于在創(chuàng)建非對(duì)稱(chēng)密鑰生成器時(shí),指定密鑰規(guī)格。 說(shuō)明:生成RSA非對(duì)稱(chēng)密鑰時(shí),默認(rèn)素?cái)?shù)為2
    發(fā)表于 09-01 07:50

    如何在 MA35 系列微處理器 (MPU) 上開(kāi)發(fā) AMP(非對(duì)稱(chēng)多處理)應(yīng)用程序?

    如何在 MA35 系列微處理器 (MPU) 上開(kāi)發(fā) AMP(非對(duì)稱(chēng)多處理)應(yīng)用程序,并通過(guò)建立多個(gè)端點(diǎn)的過(guò)程促進(jìn)與其他內(nèi)核的多通道數(shù)據(jù)傳輸。
    發(fā)表于 08-19 06:11

    創(chuàng)新非對(duì)稱(chēng)瞬態(tài)電壓抑制二極管在SiC MOSFET門(mén)保護(hù)中的應(yīng)用

    保護(hù)半導(dǎo)體設(shè)備和電子設(shè)備是任何穩(wěn)健的電源管理和電路設(shè)計(jì)的關(guān)鍵。在本文中,我們將重點(diǎn)介紹非對(duì)稱(chēng)瞬態(tài)電壓抑制(TVS)二極管系列,這些二極管非常適合用于硅碳化物(SiC)MOSFET的門(mén)保護(hù)。瞬態(tài)保護(hù)
    的頭像 發(fā)表于 03-27 11:48 ?1060次閱讀
    創(chuàng)新<b class='flag-5'>非對(duì)稱(chēng)</b>瞬態(tài)電壓抑制二極管在SiC MOSFET門(mén)保護(hù)中的應(yīng)用

    請(qǐng)問(wèn)OpenVINO?工具套件是否支持使用非對(duì)稱(chēng)卷積的支持模型?

    無(wú)法確定使用非對(duì)稱(chēng)卷積的模型是否受 OpenVINO? Toolkit 的支持
    發(fā)表于 03-06 07:58

    分享!基于NXP i.MX 8M Plus平臺(tái)的OpenAMP核間通信方案

    i.MX 8M Plus平臺(tái)。 OpenAMP架構(gòu) AMP(Asymmetric Multi-Processing),即非對(duì)稱(chēng)多處理架構(gòu)?!?b class='flag-5'>非對(duì)稱(chēng)AMP”雙系統(tǒng)是指多個(gè)核心相對(duì)獨(dú)立運(yùn)
    的頭像 發(fā)表于 02-27 10:44 ?1097次閱讀
    分享!基于NXP i.MX 8M Plus平臺(tái)的OpenAMP核間通信方案

    瑞芯微RK3568正式開(kāi)放RISC-V核心啦,也支持非對(duì)稱(chēng)AMP雙系統(tǒng)!

    在嵌入式系統(tǒng)的發(fā)展進(jìn)程中,多核異構(gòu)架構(gòu)的出現(xiàn)為滿足復(fù)雜應(yīng)用場(chǎng)景的需求提供了新的可能。其中,瑞芯微RK3568J國(guó)產(chǎn)平臺(tái)的非對(duì)稱(chēng)AMP(Asymmetric Multi-Processing)
    的頭像 發(fā)表于 02-27 10:36 ?1235次閱讀
    瑞芯微RK3568正式開(kāi)放RISC-V核心啦,也支持<b class='flag-5'>非對(duì)稱(chēng)</b>AMP雙系統(tǒng)!