硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1414|回复: 2
收起左侧

好东西--MC3172并行多线程实时处理器

[复制链接]

20

主题

114

回帖

174

积分

初级会员

积分
174
发表于 2022-8-1 09:08:07 | 显示全部楼层 |阅读模式
直接裸机编程,简化多任务的切换,就是不知道价格喜不喜人了
并行多线程是一种全新的CPU工作模式与软件开发模式,不同于单线程裸机编程,只能顺序执行,也不同于操作系统通过切换造成的多线程执行,并行多线程的各个线程是一直在并行运行的,彼此互不打扰,没有优先级的概念,也没有切换的随机性。
QQ浏览器截图20220801090123.png 202207022041408379.png 该界面提供如下方面的自动配置:
1.  64个线程的运行速度,每个线程最高可以运行在主频的1/4,最低是主频的1/1024,不使用的线程可设置为空闲,空闲线程完全不运行,也不产生功耗。64个线程分属4个线程组,每个线程组的最高主频份额不能超过主频的1/4。
2.  64个线程的运行栈空间,每个线程都有自己独立的栈空间,且在数据空间允许的范围内随意分配,只要所有非空闲线程的栈空间总和不超过数据空间的大小即可(数据空间有192字节的保留区不可使用),栈空间大小需要是4字节的整数倍。
3. 代码空间和数据空间分配,MC3172拥有128K字节的存储器,可以按需分配为96K代码空间+32K数据空间,或64K代码空间+64K数据空间或32K代码空间+96K数据空间,客户根据自己的实际需要选择即可
4. 时钟源选择,MC3172拥有4个时钟源,可在界面按需选择。
当一切配置完毕后,点击生成代码按钮即可得到thread_config.h和MC3172.lds两个文件。
至此,MC3172的主要参数已经配置完毕,用户只需要在main.c对应的threadn_main函数中实现自己的代码即可,此外各个线程之间是共享全局变量的,通过对全局变量的读写,即可实现线程间的数据传送与控制,例如:线程1负责从一个ADC读取数据并存储到全局数组,同时更新全局变量AD_WP,线程2轮询检查AD_WP的数值,如果发现该数据更新则去对应的全局数组取得AD的数据并进行滤波,滤波后的数据存储到另一个全局数组,并更新全局变量FILTER_WP,线程3轮询检查FILTER_WP的数值,如果发现该数据更新则去对应的全局数组取得滤波后的的数据并发送到串口。可见通过对全局变量的合理使用,即可达到线程通信的目的,且没有数据搬移的开销,各个线程也不会被其他线程抢占或被中断打断,所有行为都是确定性时序,安全可靠。

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2022-8-1 10:35:05 | 显示全部楼层
是不是坛友分享的这个,好像是一样的。

众多国产mcu中发现了一个异类,感觉好叼
https://www.armbbs.cn/forum.php? ... 4416&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

20

主题

114

回帖

174

积分

初级会员

积分
174
 楼主| 发表于 2022-8-1 10:38:03 | 显示全部楼层
eric2013 发表于 2022-8-1 10:35
是不是坛友分享的这个,好像是一样的。

众多国产mcu中发现了一个异类,感觉好叼

是的,就是没有看到哪里可以买到,资料也少。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-18 09:56 , Processed in 0.294602 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表