色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

    瀏覽量

    23831
  • Cortex-M3
    +關注

    關注

    9

    文章

    270

    瀏覽量

    59544
收藏 人收藏

    評論

    相關推薦

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

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

    socket 多線程編程實現方法

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

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

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

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

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

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

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

    bootloader開多線程做引導程序,跳app初始化后直接進hardfualt,為什么?

    如標題,想做一個遠程升級的項目,bootloader引導區域和app都是開多線程跑的,就是自己寫了個小的任務調度器,沒什么功能主要是想讓程序快速的響應,延時不會對其他程序造成堵塞,程序測試
    發表于 04-18 06:07

    鴻蒙原生應用開發-ArkTS語言基礎類庫多線程并發概述

    長度,可以存儲任何類型的數據,包括數字、字符串等。 共享對象傳輸指SharedArrayBuffer支持多線程之間傳遞,傳遞之后的SharedArrayBuffer對象和原始
    發表于 03-28 14:35

    鴻蒙APP開發:【ArkTS類庫多線程】TaskPool和Worker的對比

    TaskPool(任務池)和Worker的作用是應用程序提供一個多線程的運行環境,用于處理耗時的計算任務或其他密集型任務。可以有效地避免這些任務阻塞主線程,從而最大化系統的利用率,降
    的頭像 發表于 03-26 22:09 ?694次閱讀
    鴻蒙APP開發:【ArkTS類庫<b class='flag-5'>多線程</b>】TaskPool和Worker的對比

    鴻蒙原生應用開發-ArkTS語言基礎類庫多線程TaskPool和Worker的對比(一)

    TaskPool(任務池)和Worker的作用是應用程序提供一個多線程的運行環境,用于處理耗時的計算任務或其他密集型任務。可以有效地避免這些任務阻塞主線程,從而最大化系統的利用率,降
    發表于 03-25 14:11

    鴻蒙原生應用開發-ArkTS語言基礎類庫多線程并發概述

    長度,可以存儲任何類型的數據,包括數字、字符串等。 共享對象傳輸指SharedArrayBuffer支持多線程之間傳遞,傳遞之后的SharedArrayBuffer對象和原始
    發表于 03-22 15:40

    java實現多線程的幾種方式

    Java實現多線程的幾種方式 多線程是指程序中包含了兩個或以上的線程,每個線程都可以并行執行不同的任務或操作。Java中的多線程可以提高程序
    的頭像 發表于 03-14 16:55 ?771次閱讀

    鴻蒙原生應用開發-ArkTS語言基礎類庫概述

    ArkTS語言基礎類庫是HarmonyOS系統上應用開發者提供的常用基礎能力,主要包含能力如下圖所示。 1.提供異步并發和多線程并發的能力。
    發表于 03-05 15:42

    AT socket可以多線程調用嗎?

    請問AT socket 可以多線程調用嗎? 有互鎖機制嗎,還是要自己做互鎖。
    發表于 03-01 08:22

    ArkTS語言基礎類庫-解析

    Promise和async/await等標準的JS異步并發能力。 TaskPool應用程序提供一個多線程的運行環境,降低整體資源的消耗、提高系統的整體性能,開發者無需關心
    發表于 02-20 16:44

    linux多線程編程實例

    linux線程
    的頭像 發表于 02-15 21:16 ?513次閱讀
    linux<b class='flag-5'>多線程</b>編程實例
    主站蜘蛛池模板: 国产产一区二区三区久久毛片国语 | 少妇人妻偷人精品视蜜桃 | 久久久久久人精品免费费看 | 国产精品久久国产三级国不卡顿 | 国产午夜精品不卡视频 | 亚洲AV久久无码精品九九软件 | 中文字幕在线不卡日本v二区 | 麻豆传煤网站网址入口在线下载 | 欧美美女一区二区三区 | 国产在线视频一区二区不卡 | 九九久久久 | 国内精品国内自产视频 | 日韩久久影院 | 久久国产高清字幕中文 | 夜月视频直播免费观看 | 97超视频在线观看 | 99视频偷窥在线精品国自产拍 | 久久亚洲精品中文字幕 | 精品久久久久久久99热 | 邻家美姨在线观看全集免费 | 亚洲欧美日韩精品自拍 | 国产亚洲精品视频亚洲香蕉视 | 国产69精品久久久久乱码 | 日日操日日射 | 国产自产视频在线观看香蕉 | 97久久精品视频 | 欧美亚洲日韩一道免费观看 | 青青青青草 | 国产中文字幕乱码一区 | 2020最新无码国产在线视频 | 国产伊人久久 | 国产免国产免费 | 一本之道高清在线观看免费 | 国产全肉乱妇杂乱视频 | 玛雅成人网| 午夜免费国产体验区免费的 | 暖暖的视频完整视频免费韩国 | 99久久久A片无码国产精 | 最近的2019中文字幕国语HD | 国内精品视频久久久久免费 | 日韩精品一区VR观看 |