一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

兼容POSIX標(biāo)準(zhǔn)怎么為Swift的多線程提供底層支持?

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

掃碼添加小助手

加入工程師交流群

項(xiàng)目框架

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

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

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

硬件平臺(tái)

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

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

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

Zephyr RTOS

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

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


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

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

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

兼容POSIX標(biāo)準(zhǔn),很容易為Swift的多線程提供底層支持

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

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

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

SwiftIO

因?yàn)橛辛薢ephyr的支持,這一層反倒變得比較簡單。

Swift可以與C無縫銜接,我們所做的僅僅是將Zephyr驅(qū)動(dòng),API用C語言打包封裝,然后套上一層Swift的外殼,僅僅是簡單的調(diào)用關(guān)系,沒有任何復(fù)雜的戲法。

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

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

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

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

項(xiàng)目現(xiàn)狀

到目前為止,該項(xiàng)目的Alpha版本已經(jīng)進(jìn)行了內(nèi)部測試,預(yù)計(jì)于11月發(fā)出第一版公測硬件。

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

    關(guān)注

    0

    文章

    116

    瀏覽量

    24362
  • Cortex-M3
    +關(guān)注

    關(guān)注

    9

    文章

    276

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

    多線程的安全注意事項(xiàng)

    和模塊需要支持多線程安全,否則可能會(huì)導(dǎo)致多線程數(shù)據(jù)競爭問題,造成應(yīng)用程序異?;虮罎?。 在TaskPool或Worker的工作線程支持使用以
    發(fā)表于 06-20 07:49

    什么是ArkTS?

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

    樂鑫Matter兼容設(shè)備提供設(shè)備證書生成和預(yù)配置服務(wù)

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

    摩爾線程發(fā)布云電腦驅(qū)動(dòng)MT vGPU 2.7.0

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

    請(qǐng)問如何在Python中實(shí)現(xiàn)多線程與多進(jìn)程的協(xié)作?

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

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

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

    請(qǐng)問rt-thread studio如何進(jìn)行多線程編譯?

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

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

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

    3A6000_7A2000開發(fā)板龍芯全國產(chǎn)處理器與龍芯 3A5000完全兼容

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

    socket 多線程編程實(shí)現(xiàn)方法

    在現(xiàn)代網(wǎng)絡(luò)編程中,多線程技術(shù)被廣泛應(yīng)用于提高服務(wù)器的并發(fā)處理能力。Socket編程是網(wǎng)絡(luò)通信的基礎(chǔ),而將多線程技術(shù)應(yīng)用于Socket編程,可以顯著提升服務(wù)器的性能。 多線程編程的基本概念 多線
    的頭像 發(fā)表于 11-12 14:16 ?1021次閱讀

    摩爾線程與超圖軟件完成產(chǎn)品兼容認(rèn)證

    。 據(jù)悉,為了確保產(chǎn)品間的兼容性,摩爾線程與超圖軟件進(jìn)行了嚴(yán)格的測試工作。經(jīng)過雙方的努力,適配調(diào)優(yōu)后的軟件在摩爾線程GPU上展現(xiàn)出了卓越的性能表現(xiàn)。測試結(jié)果顯示,軟件在摩爾線程GPU上
    的頭像 發(fā)表于 10-24 10:25 ?989次閱讀

    Python中多線程和多進(jìn)程的區(qū)別

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

    3A6000_7A2000核心主板龍芯全國產(chǎn)處理器LoongArch架構(gòu)

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

    一文掌握Python多線程

    使用線程可以把占據(jù)長時(shí)間的程序中的任務(wù)放到后臺(tái)去處理。
    的頭像 發(fā)表于 08-05 15:46 ?1274次閱讀