中移OneOS開發板學習入門

来源:https://www.cnblogs.com/delehub/archive/2022/06/29/16425084.html
-Advertisement-
Play Games

中移OneOS開發板學習入門 (做為一個專業的點燈愛好者,學習任何開發板開始前都是先找好學習資料,然後在學習OneOS的內核部分,外設部分,系統組件等) OneOS OneOS是中國移動針對物聯網領域推出的輕量級操作系統,具有可裁剪、跨平臺、低功耗、高安全等特點,支持ARM Cortex-A和 Co ...


中移OneOS開發板學習入門

(做為一個專業的點燈愛好者,學習任何開發板開始前都是先找好學習資料,然後在學習OneOS的內核部分,外設部分,系統組件等)

OneOS

oneos.jpg
OneOS是中國移動針對物聯網領域推出的輕量級操作系統,具有可裁剪、跨平臺、低功耗、高安全等特點,支持ARM Cortex-A和 Cortex-M、MIPS、RISC-V等主流晶元架構,相容POSIX、CMSIS等標準介面,支持Javascript、MicroPython等高級語言開發模式,提供圖形化開發工具,能夠有效提升開發效率、降低開發成本,幫助用戶快速開發穩定可靠、安全易用的物聯網應用。

OneOS線上開發文檔

OneOS架構

OneOS總體架構採用分層設計,主體由驅動、內核、組件、安全框架組成。採用一個輕量級內核加多個系統組件的模式,加上海量硬體的適配支持,使OneOS具備極高的可伸縮性與易用性。操作系統整體架構如下圖:

jnqHc8.jpg

內核

極簡的設計思路,在減少資源開銷的情況下兼具優秀的實時響應特征,支持多任務管理調度,提供豐富的IPC策略,如信號量、互斥量、消息隊列、郵箱等,提供了高效可靠的RTOS內核支撐。

驅動

提供豐富的BSP板級支撐,適配超千款MCU,支持ARM、RISC-V、MIPS、Xtensa、C-Sky等主流架構,通過抽象設計,將所有外設以設備方式進行管理,極大提升了應用開發的便利性。

組件

提供包括網路協議、雲平臺接入、遠程升級、文件系統、日誌系統、測試框架、調試工具等眾多通用服務能力,也包括高精度定位等專業應用領域的完整解決方案。由於採用了模塊化的設計,因此各個組件相互獨立,耦合性低,易於靈活裁剪。

安全管理框架

終端側基於信任根實現輕量級的主動檢測和可信度量,提供輕量級的密碼演算法庫及輕量級密鑰管理與密鑰協商機制,實現端到端安全通信。平臺側基於大數據態勢感知技術,幫助用戶建立端側安全畫像,根據應用場景制定不同的安全管理策略。

OneOS特點

靈活裁剪

搶占式的實時多任務RTOS內核,支持多任務處理、軟體定時器、信號量、互斥鎖、消息隊列、郵箱和實時調度等特性,RAM和ROM資源占用極小。可靈活裁剪,搭配豐富組件,適應不同客戶需求。

跨晶元平臺

應用程式可無縫移植,大幅提高軟體復用率。支持的主流晶元架構有:ARM Cortex-A和Cortex-M、MIPS、RISC-V等。支持幾乎所有的MCU和主流的NB-IOT、4G、WIFI、藍牙通信晶元。

組件豐富

提供豐富的組件功能,如互聯互通、端雲融合、遠程升級、室內外定位、低功耗控制等。同時提供開放的第三方組件管理工具,支持添加各類第三方組件,以便擴展系統功能。

易於開發

一站式開發工具OneOS Studio可用於對內核和組件的功能進行配置,支持組件自由裁剪,讓系統按需進行積木式構建,同時可幫助用戶跟蹤調試,快速定位問題。

低功耗設計

支持MCU和外圍設備的功耗管理,用戶可以根據業務場景選擇相應低功耗方案,系統會自動採用相應功耗控制策略,進行休眠和調頻調壓,有效降低設備整體功耗。

安全設計

針對物聯網設備資源受限、海量連接、網路異構等特點,參考等保2.0及《GB/T 36951-2018 信息安全技術 物聯網感知終端應用安全技術要求》等規範,在系統安全、通信安全、數據安全等方面提供多維度安全防護能力。

OpenCPU開發框架

支持通信SoC晶元OpenCPU開發模式,為開發者帶來屏蔽複雜通信晶元差異的高效開發方式,提供統一開發體驗。同時,在同樣的業務功能下,減少了設備額外MCU開銷和存儲器的使用,大幅降低設備成本。

許可協議

OneOS 代碼遵循 Apache 2.0 license 開源協議。
jnLp90.jpg

開發板推薦

萬耦創世

oneos2.jpg
萬耦開發板,是中國移動推出的基於STM32,NXP等晶元的一個系列開發板,其由不同處理核心的核心板與萬耦底板組成。萬耦底板是通用的,核心板當前有STM32L475VGT6、STM32F401VET6與NXPLPC55S69三個型號,用戶可根據需求選擇不同的核心板。

萬耦天工入門

oneos3.jpg

萬耦天工STM32F103

專為初學開發人員設計。其實就是正點原子的STM32F103開發板,學習使用教程可以參考正點原子的使用教程。

中國移動OneOS開發板開箱測評

2022年中移與正點原子推出OneOS學習教程。

OneOS入門內核系列課程

jnLoVJ.jpg

OneOS入門設備驅動系列課程

jnL75R.jpg

OneOS入門組件系列課程

jnLOxK.jpg

萬耦啟物

萬耦啟物開發板主控晶元為(國產)靈動MM32F3277G8P,板載AHT20溫濕度感測器,板載ESP8266 WiFi模塊,便捷接入互聯網,板載USB-TTL介面,便捷與PC連接進行串口通訊。
專門為初學者設計,提供全面的基礎硬體能力,同時涵蓋手把手操作指導教程,方便開發者可以儘快瞭解OneOS系統的魅力。
o.jpg

硬體資源 介面豐富 上手簡單

jnbhWV.jpg

介面類

1.1 板載USB-TTL介面:啟物開發板Debug UART輸出介面,硬體介面為USB Type-C母座,直連電腦設備識別為CH340串口,可作為5V供電介面。

1.2 MCU USB0 介面:MM32F3277 USB介面,支持USB2.0 Full-Speed(全速)。硬體介面為USB Type-C母座,可作為5V供電介面。

1.3 屏幕介面:此介面可使用逐飛科技的TFT1.8寸屏幕,也可使用114寸或2.0寸IPS屏幕,或者使用OLED屏幕,連接方式詳見後續介面講解。

1.4 攝像頭介面:此介面可接入攝像頭類光電感測器,相容逐飛科技的小鑽風硬體二值化攝像頭、總鑽風全局快門灰度攝像頭。
1.5 SWD調試介面:此介面連接MM32F3277晶元的SWD調試引腳,可直接使用逐飛科技的DAP調試下載器與ARM調試下載器進行調試下載。

1.6 JTAG 調試介面:標準的JTAG介面,可使用Jlink調試下載器直連進行調試下載。

1.7 RTC電池:紐扣電池卡扣,可使用紐扣電池為晶元RTC供電。

1.8 電源拓展介面:為了方便用戶接線測試使用,預留的3V3、5V與GND介面。

1.9 I0拓展介面:2.54mm間距的雙排針介面,引出了晶元上部分IO引腳,包含一些常用的功能例如ADC、PWM、UART 與 SPI等。

1.10 NRF2401介面:2.54mm間距的雙排座介面,可直接使用常見的SPI介面的NRF24L01模塊。

1.11 SD(TF)卡座:SD卡插槽,可使用SD(TF)卡。

模塊類

2.1 蜂鳴器:有源蜂鳴器,使用晶元的B5引腳進行控制,可以使用PWM方式調音。

2.2 AHT20 溫濕度感測器:開發板搭載的溫濕度感測器,使用IC方式驅動對應晶元B10/B11引腳。

2.3 ESP8266 WiFi模塊:開發板搭載的無線WiFi模塊,使用UART方式驅動對應晶元BO/B1引腳。

按鍵類

3.1 用戶按鍵:連接至MCU的D12/D140/15引腳,按下時對應引腳處於低電平。

3.2 功能按鍵/RST按鍵:連接至MCU的RST引腳,按下時晶元複位引腳電平拉低進入複位。

3.3 功能按鍵/BOOTO按鍵:連接至MCU的H3引腳,當MCU從複位狀態進入運行狀態時,若此按鍵處於按下狀態,則MCU進入ISP啟動模式。

跳線類

串口選擇開關:此跳線開關可選擇Debug UART的Tog信息從SWD調試介面輸出還是從板載USB-TTL介面輸出。

指示燈類

RGB指示燈:RGB燈珠,RED對應晶元A1引腳,GREEN對應晶元A2引腳,BLUE對應晶元A3引腳,可使用對應引腳的PWM或者IO方式驅動。

電源指示燈:主板上各3V3供電指示燈,正常黃色亮起為供電正常。

萬耦啟物開發板學習資料

MM32學習

靈動微電子成立於 2011 年,是中國本土通用 32 位 MCU 產品及解決方案供應商。
靈動微電子的 MCU 產品以 MM32 為標識,基於 Arm Cortex-M 系列內核,自主研發軟硬體和生態系統。

靈動MM32系列MCU手冊常式Pack包下載指南

靈動微電子MM32 MCU 使用分享 視頻教程

逐飛科技開源庫

萬耦啟物開發板是逐飛科技設計生產的一塊物聯網開發板。所以在學習使用時,可以尋找相關的開源資料

逐飛科技 MM32F327XG8P 開源庫
萬耦啟物開發板常式資料

oneos5.jpg
jnb4zT.jpg

開發板常式資料合集提取碼:8f9u

開發板支持MDK-Keil開發

啟物開發板資料提供了Keil的Pack包,使用Keil開發32位晶元,對於大多數開發者都有一定的基礎,能夠很快的上手。
jnqm6S.jpg

工程模板

jnqf7d.jpg

OneOS官方常式

jnLe41.jpg

/**
 ***********************************************************************************************************************
 * Copyright (c) 2020, China Mobile Communications Group Co.,Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
 * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations under the License.
 *
 * @file        main.c
 *
 * @brief       User application entry
 *
 * @revision
 * Date         Author          Notes
 * 2020-02-20   OneOS Team      First Version
 ***********************************************************************************************************************
 */

#include <board.h>
#include <timer/clocksource.h>
static void user_task(void *parameter)
{
    int i = 0;

    for (i = 0; i < led_table_size; i++)
    {
        os_pin_mode(led_table[i].pin, PIN_MODE_OUTPUT);
    }

    while (1)
    {
        for (i = 0; i < led_table_size; i++)
        {
            os_pin_write(led_table[i].pin, led_table[i].active_level);
            os_task_msleep(200);
            os_pin_write(led_table[i].pin, !led_table[i].active_level);
            os_task_msleep(200);
        }
    }
}

int main(void)
{
    os_task_t *task;

    task = os_task_create("user", user_task, NULL, 1024, 3);
    OS_ASSERT(task);
    os_task_startup(task);

    return 0;
}

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言 嗨嘍,大家好呀!這裡是魔王吶~ 環境使用: Python 3.8 Pycharm 模塊使用: requests >>> pip install requests 數據請求模塊 parsel >>> pip install parsel 數據解析模塊 csv 內置模塊 如果安裝python第三方 ...
  • 正所謂“工欲善其事、必先利其器”,面對一個優秀的框架,如果再結合一些外部的工具,其實可以讓我們的開發效率與程式員開發過程的體驗更上一層樓的。 ...
  • Set數據結構 使用 intset 當同時滿足下麵兩個條件時,使用 intset 存儲數據 元素個數少於512個 (set-max-intset-entries: 512) 所有元素都是整數值 不滿足上面的條件, 使用 hashtable intset 圖解 //intset 的編碼方式 #defi ...
  • C#開發上位機應用的一些選擇 如果你不想看介紹,可以直接跳到優雅開發示例那裡。 1. WASDK(WinUI 3) Windows 應用 SDK 是一組新的開發人員組件和工具,它們代表著 Windows 應用開發平臺的下一步發展。 Windows 應用 SDK 提供一組統一的 API 和工具,可供從 ...
  • Hash 數據結構 使用 ziplist 當同時滿足下麵兩個條件時,使用 ziplist 存儲數據 元素個數少於512個 (hash-max-ziplist-entries: 512) 每個元素長度小於64位元組 (hash-max-ziplist-value: 64) 不滿足上面的條件, 使用 ha ...
  • MediaWPF 基於 .NET 6 實現視頻硬解碼渲染Demo(無空域問題) 代碼實現僅供學習參考 本項目視頻渲染通過顯卡進行視頻解碼,CPU幾乎不參與工作,並且不存在令人煩躁的空域問題。 在播放攝像頭多路視頻或高解析度、高幀率視頻時可以極大發揮顯卡性能(我認為該項目做到了這一點)。 播放4k、8 ...
  • 前言 上一篇我們講了使用HttpClient的方式調用,那麼如果我們現在需要更換為通過dapr實現服務調用,我們需要做哪些事情呢? Caller.Dapr 入門 如果我們的項目原本使用的是Caller.HttpClient,現在希望改為使用Caller.Dapr,那麼我們需要做什麼呢? 改造Call ...
  • List 數據結構 Redis 3.2 前,使用 壓縮列表zipList 或 雙向鏈表linkedList 當同時滿足下麵兩個條件時,使用zipList存儲數據 list保存的每個元素長度小於64位元組 列表中數據個數少於512個 Redis 3.2 及之後的底層實現方式: quickList qui ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...