一款與眾不同的MCU問世,將挑戰RTOS?

2023-05-12 09:26:28 來源:strongerHuang


【資料圖】

前不久,廈門感芯科技的朋友寄給我幾套單片機(MC3172)板子,讓我玩玩。 收到貨當天我跑了下例程試玩了一下,很有特點,和普通單片機大有不同。 最近空閑一點,又仔細研究了一下,感覺還不錯,所以特意寫一篇文章分享一下。

它(MC3172)有什么特點?這款 MC3172 單片機與我們使用的普通單片機有很多相同之處,比如包含GPIO、UART、SPI、USBCAN等常見外設。但它有一個非常獨特的功能:它是基于 RISC-VRV32IMC 指令集的并行多線程實時處理器。什么意思呢?它具備 RTOS的多線程功能,但它不是通過常規的 RTOS 軟件調度實現,而是硬件級實時響應, 無需中斷服務程序。MC3172 最高支持 200MHz 主頻,最多支持 64 個線程。 其中,線程的工作頻率和堆棧空間可以通過“圖形化”工具進行配置: 這種圖形化的工具,新手可以快速上手,做項目可以快速搭建一個項目工程。 關于 MC3172 單片機更多介紹和特性,我這里就不再詳細介紹了。 附一張數據手冊截圖,包含主要特性: 挑戰 RTOS上面介紹了 MC3172 單片機的獨特功能就是并行多線程實時處理器,它對標的就是 RTOS。 目的就是解決 RTOS 開發過程中底層繁雜的移植過程,調度耗時等這些問題,通過底層硬件級實時響應,能做到真正的“實時操作”

void thread0_main(void){    while(1)    {      ///應用代碼    }}void thread1_main(void){    while(1)    {      ///應用代碼    }}void thread2_main(void)void thread3_main(void)······
我們都知道 RTOS 底層調度線程會耗時數us(不同處理器耗時情況不同),但是 MC3172 處理器可以認為是0 耗時,就是說這些線程是以各自穩定的頻率并行在運行,沒有切換開銷和抖動。 同時,外設響應數據也是更加實時。比如:UART串口接收外部數據,能多個線程并行接收并響應串口數據。(普通單片機一般是中斷優先級,會“暫停”響應低優先級串口數據,阻塞情況下,還會丟失數據) 線程之間通信可通過“共享數據空間”實現實時傳輸,簡單一點就是全局變量,復雜一點就是通過封裝線程接口實現數據傳輸。 總結:MC3172 并行多線程實時性比市面常見 RTOS 更實時。新手體驗我拿到 MC3172 開發板,上手體驗整體還是不錯,開發難度相對還是比較低,有C語言、單片機基礎的人,基本就能很快上手。 1.開發環境MC3172 處理器使用國產集成開發環境:MounRiver Studio. MounRiver Studio 可能有些朋友不了解,但使用過南京沁恒MCU的讀者應該比較了解。 不了解也沒關系,MounRiver Studio和許多 IDE 有一個共性,就是基于 Eclipse 環境,還是原來的配方,還是熟悉的操作界面。 2.配置和下載工具MC3172 有一個“線程配置工具”,可以分配存儲器、配置時鐘源、線程頻率、線程堆棧空間等。 還有一個編程下載工具,支持常規的下載(編程)、擦除、查詢等操作。 3.Demo例程官方提供了一些Demo例程,供大家快速上手: 4.寫代碼如果覺得一步一步創建工程比較麻煩,可以直接使用官方Demo,在其基礎上添加自己的應用代碼。 64個線程,在“線程配置工具”配置需要用的線程,不需要的就默認“空閑”。 然后,在Demo中添加自己的應用代碼:
void thread0_main(void){    while(1){        //線程 0 應用代碼    }    thread_end();}void thread1_main(void){    while(1){        //線程 1 應用代碼    }    thread_end();}
最后MC3172單片機是我見到的國內非常獨特的處理器,它打破了“傳統”,面向RTOS應用,但又解決了RTOS存在的一些問題。 如果你使用RTOS,在開發過程遇到了因為線程間調度延時比較大的問題,不妨試試這款單片機。

審核編輯:湯梓紅

標簽:

上一篇:能從SD卡啟動的MCU了解一下? 環球熱點
下一篇:最后一頁