CMSIS 通過集成各種包和模塊,從軟件角度增強了嵌入式項目。它帶有一系列工具、API 和框架,可幫助嵌入式開發人員實現流暢的應用程序構建。此外,從開發的角度來看,實時操作系統和中間件組件提供了多種選擇。
CMSIS-Pack 的組織結構使其適用于劃分和克服應用程序的復雜要求。隨著 5.8.0 版本的發布,CMSIS-NN 和 CMSIS-DSP 已從復合 CMSIS 核心中分離出來,后者是 CMSIS 包的主要組件之一。這種自由裁量權允許集中開發機器學習和信號處理功能,并且包的相應發布周期獨立于主要的 CMSIS 核心版本。
CMSIS-DSP 包有一些小的變化,一些 GCC 問題已通過將 DSP 包離散更新到 1.9.0 版本而得到修復。更新后的軟件包增強了對 f16 數據類型的支持,以便對接收到的數據進行有效的信號處理。此外,還從存儲庫中刪除了一些預構建的庫,以獲得更清晰的包源。
TensorFlow Lite 框架將接口機器學習本質添加到硬件應用程序中。更新后的 CMSIS-NN 包在 TensorFlow Lite 微控制器框架支持的功能接口上發生了一些重大變化。另外,這個版本通過 M-Profile Vector Extension 的處理相對更好,這是由于最大池算子的實現。運算符在非重疊區域上工作以減小向量或矩陣的大小。這導致機器學習用例的優化處理。
ARM 嵌入式工具高級總監 Reinhard Keil 表示:“最新的 CMSIS 版本 5.8.0 對在 Cortex-M55 處理器中實現的 Helium 矢量擴展支持具有額外的性能改進。這包括優化 CMSIS-DSP 算法集合和用于機器學習應用的高效神經網絡內核 CMSIS 集合。”
CMSIS 核心的啟動代碼
C 啟動代碼最初是在 CMSIS 5.6.0 中引入的,它增加了代碼的可移植性和復雜構建的開發簡易性。CMSIS 核心中的設備啟動代碼現在可以直接用 C 語言編寫,這使其獨立于編譯器工具鏈。此外,CMSIS 5.8.0 的發布使 C 啟動成為設備的默認啟動。
進一步討論,GCC Linker Description 和 GCC Assembler startup 的更新很少。到目前為止,匯編代碼使用字節計數來進行 BSS(由符號開始的塊)和零部分的初始化的復制/零表。另一方面,C 啟動代碼使用字數而不是字節數。在 CMSIS 5.8.0 中,兩個啟動代碼變體都使用相同的復制/零表布局。因此,它提供了從匯編代碼到 C 啟動代碼來回切換的靈活性。
Armv8-M Assembler 啟動已更新為使用 CMSIS 5.8.0 版本的 GAS 語法。最新的 ARM 編譯器 6 支持傳統的 Arm Assembler(armasm),使軟件向后兼容所有設備。Arm Compiler 6 以 LLVM/Clang 為基礎,因此較新處理器的匯編代碼需要采用 GAS 語法。
CMSIS 是一個開源項目
CMSIS 是 GitHub 上的一個開源項目。由于先前版本的實現在某些小點上使接口失敗,因此很少出現問題。這些問題中的大多數將在下一個版本中得到解決,但可以通過在本地技術堆棧中進行一些更改來解決它們。您可以通過訪問CMSIS 5.8.0 版本的 GitHub 查看這些問題和修復。
該存儲庫是開源的,因此它有助于解決用戶和合作伙伴報告的潛在安全漏洞問題。它允許每個用戶訪問詳細的修訂歷史、提交細節和已知問題,這些問題可能會影響一些依賴先前實現的副作用的用戶。
CMSIS 中屬于軟件打包和構建過程的其他組成部分正在轉向 Open-CMSIS-Pack 項目,該項目可以增加開發和應用方面的更多可能性。因此,這是一個由 Arm 和 NXP、STMicroelectronics 和 Linaro 等行業合作伙伴推動的開放式治理項目。
審核編輯:郭婷
-
神經網絡
+關注
關注
42文章
4774瀏覽量
100897 -
編譯器
+關注
關注
1文章
1636瀏覽量
49172 -
機器學習
+關注
關注
66文章
8425瀏覽量
132770
發布評論請先 登錄
相關推薦
評論