女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

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

丫丫119 ? 來源:未知 ? 作者:肖冰 ? 2019-10-07 10:27 ? 次閱讀

項目框架

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

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

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

硬件平臺

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

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

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

Zephyr RTOS

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

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


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

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

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

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

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

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

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

SwiftIO

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

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

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

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

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

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

項目現狀

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

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

    關注

    0

    文章

    116

    瀏覽量

    24249
  • Cortex-M3
    +關注

    關注

    9

    文章

    276

    瀏覽量

    60124
收藏 人收藏

    評論

    相關推薦
    熱點推薦

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

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

    摩爾線程發布云電腦驅動MT vGPU 2.7.0

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

    請問如何在Python中實現多線程與多進程的協作?

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

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

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

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

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

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

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

    3A6000_7A2000開發板龍芯全國產處理器與龍芯 3A5000完全兼容

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

    socket 多線程編程實現方法

    在現代網絡編程中,多線程技術被廣泛應用于提高服務器的并發處理能力。Socket編程是網絡通信的基礎,而將多線程技術應用于Socket編程,可以顯著提升服務器的性能。 多線程編程的基本概念 多線
    的頭像 發表于 11-12 14:16 ?894次閱讀

    摩爾線程與超圖軟件完成產品兼容認證

    。 據悉,為了確保產品間的兼容性,摩爾線程與超圖軟件進行了嚴格的測試工作。經過雙方的努力,適配調優后的軟件在摩爾線程GPU上展現出了卓越的性能表現。測試結果顯示,軟件在摩爾線程GPU上
    的頭像 發表于 10-24 10:25 ?880次閱讀

    Python中多線程和多進程的區別

    Python作為一種高級編程語言,提供了多種并發編程的方式,其中多線程與多進程是最常見的兩種方式之一。在本文中,我們將探討Python中多線程與多進程的概念、區別以及如何使用線程池與進
    的頭像 發表于 10-23 11:48 ?921次閱讀
    Python中<b class='flag-5'>多線程</b>和多進程的區別

    3A6000_7A2000核心主板龍芯全國產處理器LoongArch架構

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

    一文掌握Python多線程

    使用線程可以把占據長時間的程序中的任務放到后臺去處理。
    的頭像 發表于 08-05 15:46 ?1195次閱讀

    ESP32會不會有多線程問題,需要加鎖嗎?

    ESP32會不會有多線程問題,需要加鎖嗎
    發表于 07-19 08:05

    請問rtthread的外設驅動為什么不實現posix接口?

    外設驅動想支持posix接口,如select\\poll、read、write、ioctl,希望能支持異步通知、輪詢、batch設置功能。但是rtthread在通過
    發表于 07-15 06:34

    多線程設計模式到對 CompletableFuture 的應用

    最近在開發 延保服務 頻道頁時,為了提高查詢效率,使用到了多線程技術。為了對多線程方案設計有更加充分的了解,在業余時間讀完了《圖解 Java 多線程設計模式》這本書,覺得收獲良多。本篇文章將介紹其中
    的頭像 發表于 06-26 14:18 ?623次閱讀
    從<b class='flag-5'>多線程</b>設計模式到對 CompletableFuture 的應用