今天在测试ST的STM32WL55评估版时,意外的发现其不仅仅是一块具有无线通讯能力的芯片,还具有双核,同时装载M4和M0+的内核。 6 {* N4 e8 }/ s+ T 因为手上发现只有WL55是双核的,下次尝试试用一下其他芯片试试。 它可以使用协处理器来使用双核。这种双核架构使得微控制器能够同时运行多个任务,提高系统的灵活性和性能。每个内核都具有独立的存储器、外设和时钟域,它们可以独立地运行和执行任务,也可以通过共享资源进行通信和同步。8 X$ I! \$ S3 O) ? H - {% Z9 \6 e$ ` STM32WL 系列提供了多核调度器(MCS)功能,可以动态地管理主内核和辅助内核之间的任务调度和切换,以优化系统性能和功耗。# d8 i3 j5 `/ N% q" m 6 r ~* {- J+ c. }4 w # l4 E) @) y4 A" o+ z 我们在使用CubeMX生成WL的代码的时候可以发现,有一个双核视图。 : y9 q/ s5 ?# J% F1 Q7 T3 ?/ L8 G , C! c5 ]) @1 W4 @& Z( v5 @ % ]( u: r2 k% F9 d; ? 我们发现其CubeMX界面中可以把不同的内容分配给不同的核心。 Z) `6 S5 F# j6 U& T2 } ! k0 I5 g& f+ Q+ Y8 M% U% k2 g 创建任务的时候可以选择单核或者多核。 : C; \2 A7 `, |( T! P + E" _( \6 D' j4 D$ v& H1 D 如官网的介绍,每个CPU享有单独的时钟域和外设。 从官网的原理图中得知,评估版中有三个LED灯,对应着PB15/9/11。这三个LED作为板载LED,我们将尝试利用双核的特性来尝试同时闪烁。( m1 W6 ?# C, u6 X ! y1 z, A; S' H7 u9 W0 R9 ~- R1 r8 X 将LED的三个IO初始化。8 n9 G# A0 S; q. c# j9 G6 d 还有一点非常重要,我们需要开启STM32的IPCC.这也是之后要使用无线的条件。' `! V. t7 c, ~. F) R IPCC(Inter-Processor Communication Controller)是STM32WL系列微控制器中的一个功能模块,用于实现双核(Dual-Core)之间的通信。 / Q: j5 m/ Y" A: l4 g6 x) R. y. R * L( ~/ h9 K* [9 W& Q$ M IPCC允许主核和副核之间进行通信和数据交换。( G& \' F( K9 t; q: J 创建工程后发现其任务由两个核组成,我们尝试在其中分别添加代码。9 `4 g- ~! F, H9 N# @. ^ 后面的烧录问题卡了我四个多小时,单独写篇文章来描述一下这个烧录的问题。 我们在两个工程的main函数中分别添加LED的代码。
在第二个核的main函数中也添加LED的代码。, q& Q0 L6 x" i. h; b" j& v$ d8 B
, Q+ _8 v" h v# A4 ]" w 转载自 :电路小白 如有侵权请联系删除' F) n3 [, R& l1 O! }" |1 g 5 `3 L- G/ t. W2 i& X |
实战经验 | 从STM32WL55JC到STM32WLE5CC的LoRaWAN_FUOTA移植
基于STM32WL55双核烧录过程的问题及解决办法
【无线与云连接】STM32WL私有LoRa网络设计原理以及演示介绍
基于STM32WL LSE 添加反馈电阻后无法起振问题经验分享
STM32WL sub-GHz SoC 未来工业物联网最佳的选择
STM32Wx 助力万物互联3.0
STM32Wx 赋能工业物联网解决方案
基于STM32WL55-NUCLEO开发的LoRaWAN经验分享
【分享】无线测温系统-硬件篇
自己绘制了一个基于STM32WL系列芯片的小板子分享给大家