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

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

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

3天內不再提示

兼容POSIX標準怎么為Swift的多線程提供底層支持?

丫丫119 ? 來源:未知 ? 作者:肖冰 ? 2019-10-07 10:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

項目框架

原生Swift編譯器是不支持生成Cortex-M機器指令的,但得益于LLVM框架的模塊化架構,僅需少許Hack即可為其添加一個現(xiàn)成的Cortex-M后端。

得到了Cortex-M平臺的機器指令后,代碼實際已經可以在該平臺上運行,但這樣的空中樓閣用處并不大,Swift的很多高級特性還是需要底層基礎庫(libc, libstdc++)和基礎算法(比如堆的管理,線程的管理)來支持。

在實踐中,我們沒有選擇自己去實現(xiàn)所有的細節(jié),而是選擇了Zephyr這個新興的RTOS來做底層支撐。下面逐層來介紹項目的框架。

硬件平臺

我們的項目是一個更關注應用層開發(fā)的創(chuàng)意實現(xiàn)平臺,開發(fā)者當然不能受到硬件性能的局限。因此我們選擇了全球性能最強,性價比也極高的NXP i.MX RT系列MCU作為第一款開發(fā)板芯片,其核心參數(shù)如下圖:

另外,我們外掛了32M SDRAM和16M Hyper Flash,板載DAPLink下載器,板載microSD讀卡器。這樣的硬件性能,在MCU界可以算是“頂配”了。排母外側引出了所有常用的外設,包括一組攝像頭接口,排母內側還有完整的RGB信號輸出,無論是做熱門的視覺項目或者GUI項目,硬件性能上是有充分保障的。

下面是該模組的引腳配置圖:

Zephyr RTOS

嵌入式底層的硬件世界,碎片化的現(xiàn)狀還將持續(xù)相當長的一段時間,我們沒有必要與各家芯片廠的原生API甚至寄存器較勁?!坝嬎銠C科學領域的任何問題都可以通過增加一個間接的中間層來解決”,我們的解決方案便是選用了一款兼容并包,前景無限的RTOS—Zephyr

Zephyr項目是一個采用Apache 2.0協(xié)議許可,Linux基金會托管的開源RTOS項目,于2019年4月份發(fā)布了第一個長期維護版本v1.14.0。


RTOS有上百種,為什么選擇了Zephyr這個新興的RTOS?

跨架構,良好適應嵌入式底層硬件的碎片化。到目前為止,Zephyr一共可以支持6種架構:X86架構、ARC架構、ARM架構、NIOS II 架構、RISC V架構和Xtensa架構

C語言編寫,代碼框架與Linux框架類似,統(tǒng)一的設備驅動模型為上層提供了一致的API接口

兼容POSIX標準,很容易為Swift的多線程提供底層支持

不僅僅是一個RTOS,承諾了各種軟件協(xié)議棧的持續(xù)加入及其可用性

巨頭的站臺及活躍的社區(qū)熱度,保障了項目的持續(xù)性與前景會越來越好

恩智浦i.MX RT系列芯片在Zephyr上得到了NXP官方的支持,很容易便可以將各種驅動直接拿來使用。

SwiftIO

因為有了Zephyr的支持,這一層反倒變得比較簡單。

Swift可以與C無縫銜接,我們所做的僅僅是將Zephyr驅動,API用C語言打包封裝,然后套上一層Swift的外殼,僅僅是簡單的調用關系,沒有任何復雜的戲法。

我們給這一層API框架取名為SwiftIO。

至此,開發(fā)者僅需在代碼里import SwiftIO(類似C語言的#include),便可以利用其中的API來方便的操作底層硬件了。

詳細的API列表可在以下站點獲得:(依然在不斷地更新中)

https://madmachineio.github.io/SwiftIO/

項目現(xiàn)狀

到目前為止,該項目的Alpha版本已經進行了內部測試,預計于11月發(fā)出第一版公測硬件。

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

    關注

    0

    文章

    125

    瀏覽量

    24727
  • Cortex-M3
    +關注

    關注

    9

    文章

    276

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    【瑞薩RA × Zephyr評測】多線程和看門狗

    本文章旨在評估使用 Zephyr RTOS 在 Renesas FPB-RA6E2 開發(fā)板上實現(xiàn)多線程調度與硬件看門狗功能的應用。評估內容包括任務調度、看門狗初始化流程、主程序邏輯的詳細解析,以及實驗現(xiàn)象與數(shù)據(jù)分析。
    的頭像 發(fā)表于 01-10 10:23 ?2298次閱讀
    【瑞薩RA × Zephyr評測】<b class='flag-5'>多線程</b>和看門狗

    多線程的系統(tǒng)

    多線程系統(tǒng)的事件響應也是在中斷中完成的,但事件的處理是在線程中完成的。在多線程系統(tǒng)中,線程跟中斷一樣,也具有優(yōu)先級,優(yōu)先級高的線程會被優(yōu)先執(zhí)
    發(fā)表于 12-08 07:55

    Linux多線程對比單線程的優(yōu)勢

    :「資源利用率」:通過多線程,可以更有效地利用CPU資源,特別是多核CPU?!覆⑿刑幚怼梗?b class='flag-5'>線程允許同時執(zhí)行多個任務,提高程序的執(zhí)行效率?!负喕O計」:使用線程可以簡化程序設計,因為線程
    發(fā)表于 12-01 06:11

    rt-thread studio 如何進行多線程編譯?

    ,使用的是5800h+32g內存+sn550 ssd,開啟16線程編譯時cpu的占用率也只能到30%,編譯完整個工程需要3分鐘 感覺多線程編譯設置沒有生效,有辦法提高編譯速度嗎 rtthread studio版本是 2.2.9
    發(fā)表于 10-11 09:16

    開啟POSIX支持后,編譯出錯的原因?怎么解決?

    使用MDK525編譯器:ARMCC V5.06,rtthread打開posix支持后編譯報錯,提示
    發(fā)表于 09-24 06:03

    底層解讀labview的TDMS高級異步寫入的工作原理

    : 不是同時直接寫文件: 異步寫入并不意味著多個線程可以在同一時刻直接對同一個 TDMS 文件的同一部分進行物理寫入操作。磁盤操作本身在底層通常需要序列化訪問。 TDMS 庫的線程安全機制
    發(fā)表于 08-14 17:05

    摩爾線程率先支持騰訊混元-A13B模型

    中的卓越兼容性與快速響應能力——MUSA架構的高易用性設計,能夠顯著減少開發(fā)者在模型適配遷移過程中的技術投入,大幅提升開發(fā)效率,AI創(chuàng)新成果的快速工程化落地構建了堅實的底層技術支撐。
    的頭像 發(fā)表于 07-04 14:10 ?814次閱讀

    多線程的安全注意事項

    和模塊需要支持多線程安全,否則可能會導致多線程數(shù)據(jù)競爭問題,造成應用程序異常或崩潰。 在TaskPool或Worker的工作線程支持使用以
    發(fā)表于 06-20 07:49

    什么是ArkTS?

    基礎類庫能力示意圖 提供異步并發(fā)和多線程并發(fā)的能力。 支持Promise和async/await等標準的JS異步并發(fā)能力。 TaskPool
    發(fā)表于 06-17 06:24

    樂鑫Matter兼容設備提供設備證書生成和預配置服務

    樂鑫科技(688018.SH)Matter兼容設備提供設備證書生成和預配置服務。這些服務將降低生產Matter兼容設備的復雜性,同時使其滿足CSA連接
    的頭像 發(fā)表于 05-06 18:02 ?747次閱讀
    樂鑫<b class='flag-5'>為</b>Matter<b class='flag-5'>兼容</b>設備<b class='flag-5'>提供</b>設備證書生成和預配置服務

    摩爾線程發(fā)布云電腦驅動MT vGPU 2.7.0

    3月18日,摩爾線程正式發(fā)布云電腦驅動MT vGPU 2.7.0。新版本在國內首次實現(xiàn)了國產GPU云電腦對DirectX 12的支持,同時顯著提升圖形渲染性能與兼容性。通過全功能GPU四大引擎的深度協(xié)同,摩爾
    的頭像 發(fā)表于 03-19 15:56 ?887次閱讀

    請問如何在Python中實現(xiàn)多線程與多進程的協(xié)作?

    () thread.join() process.join() 我的問題是:**如何合理地組合多線程和多進程以獲得更好的性能?**特別是在I/O密集型任務和CPU密集型任務混合的情況下,如何避免性能瓶頸,確保程序的高效運行? 希望大家能提供一些解決思路或經驗,非常感謝!
    發(fā)表于 03-11 06:57

    摩爾線程全面支持DeepSeek開源周成果

    DeepSeek開源周正式收官,作為國內率先原生支持FP8計算精度的國產GPU企業(yè),摩爾線程迅速響應,并在短時間內,成功實現(xiàn)對DeepSeek各個開源項目的全面支持,涵蓋FlashMLA
    的頭像 發(fā)表于 03-04 10:06 ?941次閱讀

    請問rt-thread studio如何進行多線程編譯?

    ,使用的是5800h+32g內存+sn550 ssd,開啟16線程編譯時cpu的占用率也只能到30%,編譯完整個工程需要3分鐘 感覺多線程編譯設置沒有生效,有辦法提高編譯速度嗎
    發(fā)表于 02-19 08:30

    3A6000開發(fā)板/龍芯3A6000與龍芯3A5000等龍架構處理器軟件兼容

    個最新研發(fā)的高性能 LA664 處理器核,支持同時多線程技術(SMT2),全芯片共 8 個邏輯核。集成安全可信模塊,可提供安全啟動方案和國密(SM2、SM3、SM4 等)應用支持
    發(fā)表于 02-12 15:06