一站式电子元器件采购平台

华强商城公众号

一站式电子元器件采购平台

元器件移动商城,随时随地采购

华强商城M站

元器件移动商城,随时随地采购

半导体行业观察第一站!

芯八哥公众号

半导体行业观察第一站!

专注电子产业链,坚持深度原创

华强微电子公众号

专注电子产业链,
坚持深度原创

电子元器件原材料采购信息平台

华强电子网公众号

电子元器件原材料采购
信息平台

一款与众不同的MCU问世,将挑战RTOS?

来源:strongerHuang 作者:strongerHuang 发布时间:2022-08-01

摘要: 前不久,厦门感芯科技的朋友寄给我几套单片机(MC3172)板子,让我玩玩。收到货当天我跑了下例程试玩了一下,很有特点,和普通单片机大有不同。最近空闲一点,又仔细研究了一下,感觉还不错,所以特意写一篇文章分享一下。这款 MC3172 单片机与我们使用的普通单片机有很多相同之处,比如包含GPIO、UART、SPI、USB、 CAN等常见外设。

前不久,厦门感芯科技的朋友寄给我几套单片机(MC3172)板子,让我玩玩。

收到货当天我跑了下例程试玩了一下,很有特点,和普通单片机大有不同。

2.jpg

最近空闲一点,又仔细研究了一下,感觉还不错,所以特意写一篇文章分享一下。

它(MC3172)有什么特点?

这款 MC3172 单片机与我们使用的普通单片机有很多相同之处,比如包含GPIO、UART、SPI、USB、 CAN等常见外设。

但它有一个非常独特的功能:它是基于 RISC-V RV32IMC 指令集的并行多线程实时处理器。

什么意思呢?

它具备 RTOS 的多线程功能,但它不是通过常规的 RTOS 软件调度实现,而是硬件级实时响应, 无需中断服务程序。

MC3172 最高支持 200MHz 主频,最多支持 64 个线程。

其中,线程的工作频率和堆栈空间可以通过“图形化”工具进行配置:

3.png

这种图形化的工具,新手可以快速上手,做项目可以快速搭建一个项目工程。

关于 MC3172 单片机更多介绍和特性,我这里就不再详细介绍了,想了解的读者可以去他们官网:

感芯科技:www.gxchip.cn

附一张数据手册截图,包含主要特性:

4.png

挑战 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.

官网:

http://www.mounriver.com/

MounRiver Studio 可能有些朋友不了解,但使用过南京沁恒MCU的读者应该比较了解。

不了解也没关系,MounRiver Studio和许多 IDE 有一个共性,就是基于 Eclipse 环境,还是原来的配方,还是熟悉的操作界面。

5.png

2.配置和下载工具

MC3172 有一个“线程配置工具”,可以分配存储器、配置时钟源、线程频率、线程堆栈空间等。

6.png

还有一个编程下载工具,支持常规的下载(编程)、擦除、查询等操作。

7.png

3.Demo例程

官方提供了一些Demo例程,供大家快速上手:

8.png

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,在开发过程遇到了因为线程间调度延时比较大的问题,不妨试试这款单片机。

最后,再附上感芯科技官网:

www.gxchip.cn

(复制链接到浏览器打开)

声明:本文观点仅代表作者本人,不代表华强商城的观点和立场。如有侵权或者其他问题,请联系本站修改或删除。

社群二维码

关注“华强商城“微信公众号

调查问卷

请问您是:

您希望看到什么内容: