答疑汇总|STM32技术周-Day5生态与创新 在线演讲Q&A ' Y7 e6 l- W6 o! b W B8 \' a* B1 X( j' \/ T* s今天为大家带来第五天技术问答,欢迎大家来学习。 % p+ A& m, @$ t- [ 新一代平台Azure RTOS,简要市场介绍及应用开发的技巧介绍4 ]4 ^! f) F, _. a/ r8 m7 ^& d Q:Azure RTOS采用的什么开源协议?Azure RTOS 如何收费?2 O+ x: `+ N1 ^& H" L+ Y9 g0 C. K; `+ O A: Azure RTOS是一款商业软件,STM32全系列产品都获得了微软的商业授权,STM32客户只要使用STM32系列产品都可以免费使用。5 X8 ~1 Q+ [5 v Q:请问Azure RTOS支持哪一些应用?包含哪一些组件?, C1 A7 u7 p3 G# \) ^$ @- o; }5 E* F6 @ A:Azure RTOS可以支持多类应用 (工业类,消费电子等), STM32Cube集成的中间件包括2 V- ^& z; q. n - Thread X (RTOS)/ V' K$ b/ m8 R# ] b - NetX Duo (IPv4+IPv6网络协议栈)3 P3 e) }- {) {/ V# n - FileX (文件系统 支持Nand坏块管理, 断电保护). w! P i% J+ e) F: O - USBX (USB协议栈) Q:Azure RTOS对硬件平台有最低要求么? A:基本Cortex-M0+系列以上就可以跑起来,Azure RTOS的特点是 “small fast safe” 。根据你的需要选取相应来的功能,可以用在内存受限的系列上。对大多数应用来说,例如使用ThreadX,需要的内存的大小在2K到15K字节之间。) T+ Y4 _* M+ ^. p, a( k' p% J 3 u' j* J+ ~4 [2 H0 U Q:Azure RTOS 以及各个对应的组件 STM32CubeMX可以生成吗?3 Q$ L% R( w! V A:Azure RTOS已经集成到STM32Cube软件包中和STM32Cube扩展包。客户导入软件包后可以通过STM32CubeMX生成项目。* y* b) o1 @: @- W5 J2 w% m Q:如何取得STM32CUBE视频教程和详细文字教程? A:请在www.stmcu.com.cn看生态系统信息,包含视频教程。& w- x! V! Y) r! b& v 5 ^) ?3 _: Q/ Z; P2 W Z& z8 _ Q:微软和ST分别发布的Azure RTOS有什么不同?- K3 K$ t1 M$ K+ u* z# i; ]* M/ h A:微软把Azure RTOS的源代码发布到了GitHub上。ST的开发包在某一个Azure RTOS的版本的基础上会加底层驱动,一些应用例程和STM32CubeMX 配置功能。 Q:STM32Cube软件工具能不能支持图形化编程?% F5 Z* i9 y! u$ V9 K- J A:STM32CubeMX 支持图形界面进行代码配置以及代码生成。同时STM32CubeMX已经内置在STM32CubeIDE中。 Q:Azure RTOS是属于轻量级系统吗? A:是和FreeRTOS类似的嵌入式操作系统。 Q:AzureRTOS的最低硬件资源需求是什么?9 J3 ~5 m/ r! T5 a" d# ~' s' P A:Azure RTOS的最低只需要2KB的FLASH空间就可以运行,目前几乎所有的STM32产品都可以完美运行。 . ?9 ]/ S& G8 t Q:Azure RTOS可以使用微软的VS Code或者Linux系统作为开发环境吗?3 ~9 Q6 @- O! X/ D; e A:STM32Cube的软件工具(STM32CubeIDE等等)支持Windows, MacOS, 和Linux。 关于VSCode, 可以用来写代码,如果想把VSCode当开发环境用的话,请继续关注STM32Cube生态系统的新进展。 5 k1 I1 h/ h! _* S Q:Azure RTOS是否是ST软件包唯一的中间件?1 y. b" m3 k4 k3 H9 A: o( k A:Azure RTOS是STM32生态系统提供STM32客户的另外一种选择。STM32客户也可以选择其他操作系统。% s, d) M6 ^1 @ Q:对于不同的应用,ST微控制器有不同的内部ROM类型吗?8 W& g& S" o) h# J& Z A:针对不同的应用场景,STM32 MCU内部提供:一次性可编程字节(OTP),用于存储不更改的用户数据;Flash,用来存储用户代码;EEPROM(部分型号支持),用于存储用户数据。当设置读保护2和写保护后,内部Flash工作在只读状态(ROM)。 : t& E7 o8 c) I% {1 X4 ] Q:Azure RTOS有教程吗?2 M, ]5 M6 \1 L3 \ A:可以参考一下微软的的系统学习课程:https://docs.microsoft.com/en-us/learn/paths/azure-rtos-threadx/)。如果有其他OS的经验的话,是有相通之处的。对于STM32 Azure RTOS的使用,后续会有相应的培训计划,可关注www.stmcu.com.cn本地培训。 " ~2 x% N2 @5 r. b* b Q:ThreadX中的普通模式和模块模式有什么区别? A:普通模式就类似于一般RTOS。模块模式支持动态加载二进制文件。模块模式(ThreadX Module)简单来说可以想象成在Linux中可以跑多个独立的程序。然后互相直接可以隔离,万一有一个模块崩溃不会影响到任何其他模块。 Q:Azure RTOS的例程代码以及配套的开发板在哪能找到? A:STM32Cube 生态系统中已经集成了很多例程,也可以直接用STM32CubeMX生成工程。没找到合适的例程可以通过https://github.com/azure-rtos/samples找到例子 . i5 @% {1 q; _4 K Q:FileX支不支持 ExFAT 文件格式,还有该中间件支持FreeRTOS吗?) F7 [* o! r/ I- D: s, Y" H5 {2 i A:支持ExFAT. USBX以及FileX可以不依赖ThreadX, 独立使用。 6 T7 `1 a* P$ U8 ~& B6 A Q:Azure RTOS可以直接替换Free RTOS?,是咋操作的,手动还是软件可自动替换,还是说系统接口上是一样的? A:几种方式,一种是需要自己进行替换。还有一种方式使用我们提供的Free RTOS兼容层,可以用CubeSTM32MX自动生成代码,选择Azure RTOS的相关中间件,帮您更容易的移植。8 L7 [/ c: l5 e+ h/ Y1 e . s) z! Y5 K! i7 c. W3 r3 y Q:Azure RTOS任务切换最快速度有多少? A:0.4us/200MHz。 - ^1 T+ {& h8 s8 B/ z Q:STM32CubeMX,新版本的pack包,可否用来打开旧版pack包生成的ioc工程?5 e# z% j) K/ l. f; U: H A:可以打开,打开的时候它会有提示,根据你的需求正确选择即可;8 M) c7 ^7 Y! ]" i : [+ F+ \: I( e$ R6 J 但是要注意如果用新版本的STM32CubeMX打开旧版本配置的.ioc,在生成代码的时候可能会有问题。: @2 E U1 ^1 D# U Q:STM32CubeMX的功耗评估功能(PCC),需要连上硬件吗?与应用程序有关吗?需要通过哪些参数才能进行功耗评估? A:不需要连接硬件,在STM32CubeMX上可以配置你的工作模式和使用的外设,从而得出一个结果便于你前期的项目评估。对于相关的配置和说明,可参考STM32CubeMX的用户手册。4 O, x' Z. \( @+ g$ \/ m ; y4 G+ I! Q! E8 M 使用STM32U5超低功耗安全芯片连接Azure IoT云服务 , u+ f, t* B- @" u Q:在IoT应用中,AzureRTOS有哪些优势?' Y& ~; g) X$ P6 h% v A:Azure RTOS性能高,体积小,以及有丰富的中间件,比如MQTT,LwM2M,方便用户连云和进行应用开发。1 n7 Z2 X* d/ g, m5 z- i' M# ^ Q:代码容量大概是多少? A:代码容量要看你所使用的服务数量,最小2KB就可以运行ThreadX并实现线程切换。 - Y7 Z' G7 M* H2 f Q:STM32CubeMX的功耗评估这块,需要连上硬件吗?与应用程序有关吗?需要通过哪些参数才能进行功耗评估?$ F# G! S# L2 R. u1 j, x A:不需要连接硬件,在CubeMx上可以配置你的工作模式和使用的外设,从而得出一个结果便于你前期的项目评估。对于相关的配置和说明,可参考CubeMX的用户手册,上面会有说明。+ m. G+ j; M. a: j/ F% @. T/ j* ? - a" ~0 r8 N6 S) _# u4 d# c Q:PSA中的 device identity在STM32如何实现的呢? A:Device identify可以保存在ST-Safe这种安全存储芯片中,然后在Trust Zone里面可以通过PSA API进行获取。 3 u: o3 M0 e" i2 O. X- y( x. _% j Q:STM32CubeMX,新版本的pack包,可否用来打开旧版pack包生成的ioc工程? A:可以打开,打开的时候它会有提示,根据你的需求正确选择即可;: x! W! A- e( Q) ~* C! n ( U9 | E2 J# D+ x. b& C: H9 b1 G/ w2 K 但是要注意如果用新版本的CubeMX打开旧版本配置的.ioc,在生成代码的时候可能会有问题。 Q:Azure RTOS就是threadX吧?) V3 `$ c$ J5 Z V7 b7 J ~& T4 t A:Azure RTOS是所有中间件总成,其中包含ThreadX,就是RTOS的核心。其他的NetX Duo,USBX,FileX等中间件都是为了其他应用场景的。9 P# w$ ]% Y& w * T. n8 p: a, p$ Z9 L. c Buildroot — 轻松构建STM32 MP1 Linux 系统1 {. F0 ~8 u/ z$ a Q:请问在Linux系统的时候,STM32MP1的另外的M4是干什么的? A:M核可以跑一些实时性要求比较高任务,同时M核和A核通过RPMSG进行通信,数据交换。/ z- d4 p( D" @ e6 L. M6 W ( G. m/ @% W" G, ^% a3 ` Q:由Buildroot编译出的basic版本与支持QT版本的镜像大小区别,编译时间上的差距又是多少?4 Z" z) r( u7 W! |: n D: H+ o A:如果增加QT库的编译,无论是编译时间还是文件系统的大小与基本版本都是有很大区别的,QT库的下载,编译,QT SDK的编译都很耗时,之前在讲解的时候也说过,编译时长还依赖于编译机器的性能,我们自己测试看的话,时长大概会增加1小时左右。! B' O1 c, e! q, n Q:ST是否会提供由Buildroot编译的Starter package?0 a, z! j: K7 O# A A:目前官方发布的Starter package 还是基于Yocto编译的,而且starter package只是为了使用户更快的熟悉ST demo板子的启动,对于用户自定义的版本并没有什么意义,建议客户选择自己倾向的编译系统进行编译,然后使用starter package进行对比验证。 Q:Buildroot 在其他开发平台,像linux和乌班图系统上可以使用吗,有什么注意的?. c6 z8 u7 y& h I A:Buildroot主要运行在Linux环境下,一些主流的Linux发行版都可以,例如Ubuntu, debian。 # E C8 L% P8 u( q# N6 s Q:针对ST release的Buildroot支持在哪些workstation搭建编译环境?7 H' o7 N1 j2 }! p& e3 @ A:Linux 发行版, Fedora Ubuntu Debian。+ R2 o6 R, ^4 \6 E' @7 U/ I Q:uImage和dtb文件打包为ext4就可以了吗?是否还有其他文件要放到这个ext4文件中?: p" r$ b( s" ?) p6 e( H+ x A:目前我们的文件系统,有个bootfs分区,uimage和dtb就是放到这个分区里面的,至于这个分区最终打包为什么类型的分区格式,这个可以是ext4,也可以用ubifs等等。 " ]" |2 ?9 L& X, U' {7 ]0 ] Q:STM32MP1目前最强大的多大主频?3 ^! Z( e! Y! D$ Y) ]6 l8 j A:STM32MP15xx系列最高主频为800Mhz。 6 P* l7 V, D+ L Q:为什么STM32MP1要使用这种异构方式,Buildroot会对于M4有什么配置? A:STM32MP1MP15x系列采用Cotex-A+Cotex-M这种灵活的架构便于A核处理得以处理一下高效的HMI任务,而同时M4可以处理对实时性要求较高的任务。关于STM32MP1MP1的Cortex M4的开发,还是使用STM32CubeMX+IDE,这个IDE可以是STCubeIDE也可以用第三方的IDE工具,如IAR。) [0 B7 I0 p# W# D" N, K# D Q:Buildroot是类似于CubeMX的东西吗?所谓的脚本,如何获取所需的文件在由Buildroot配置。0 F1 v& n! x) e' b3 P A:Buildroot作为编译系统,是用来构建Linux系统的工具, 有助于系统集成,编译,和文件系统生成。但CubeMX是用来进行芯片配置,可以用来分配引脚,配置时钟,DDR调试等等,两者的用途完全不同。脚本的获取等同于源代码的获取,可以从Github上拉取Buildroot的源码,然后修改default config(或者make menuconfig命令)文件。# f; [2 _( I5 H. y/ X- W0 L. M& y+ a2 ` C- R5 H9 X1 j" {% r; N Q:STM32MPU集成GUP不? A:STMP32157 集成 3D GPU, STMP32151和STMP32153不支持。 + v( D, w) @6 K! V5 s t. W( x" L Q:为啥不用busybox啊?是因为buildroot生态应用更丰富么? A:busybox是客户可以选择使用的,只不过这种分布编译有一定的局限性,不方便复现问题,代码管理,而Buildroot可以更加方便的构建整个Linux系统。; R: F8 ?/ I7 @ Q:Linux代码中的可以作为字符设备使用fmc吗?是否有驱动。只看到fmc驱动nand。 A:fmc上挂载的存储设备 都是属于块设备。 - N F& E H, L* ?7 ? Q:fmc需要和外设通讯,例如fpga,如何进行驱动设计。* N/ Q; W6 _+ `, g A:这个就是非常复杂具体的问题了,你可以参考一般的linux 驱动开发方式开发,及probe,initial,留一些ioctrl,read,write接口等等。 9 P1 Q, a" Z; [! N Q:Buildroot是不需要配置交叉编译工具链了吗?' Y" @3 e% e0 M& ~3 [; y A:需要的,默认的官方提供的Buildroot版本已经配置好了,如果你们想用外部的交叉工具,也可以通过Buildroot menuconfig来配置。3 L) @/ p' _% ]6 c 3 k/ P. `, } C8 {: G/ @ Q:有一些外设是8bit或者16bit的,之前裸机使用fmc没问题。如果增加linux后,如何设计驱动使用fmc,继续讲解。 A: 这边FMC就是可以灵活的配置为8bit,16bit等等,这个只是一个通讯的通道,具体的驱动实现需要和你挂的FPGA能正常的通讯,如果通讯正常,驱动开发就没应该OK。 - O4 l* _/ f* b. ^' f: A6 F Q:我们现在用正点原子提供的yocto编译的镜像,巨大无比。我们是工业应用,不需要3D加速,直接用Linuxfb就可以了,这个时候用buildroot会编译出更小的镜像么?" g, N9 k6 u8 ~, Z" ?2 N& j, {7 K A:可以的,buildroot使用类似linux的menuconfig,裁剪方便。 1 c( q' O8 L M0 Z Q:A核和M核怎么通讯?! R2 s m3 g8 M; t" u A:有IPCC+OpenAMP机制。7 ?0 A6 V' e1 O Q:从开发上来说是不是尽量避免A核代码和M核代码对同一个外设操作?STM32MP1是不是这两个核处理的外设资源是分开的? A:是的,两个核所用到的外设资源在配置阶段就已经分配好了,可以尝试使用STM32CubeMX进行配置,这样就更容易理解了。 4 R# ^: Q* ^" c9 I5 w1 H; {& u5 a 你拥有的不仅是STM32,还有超出你预期的人机交互方案 Q:TouchGFX和GUIX更推荐哪个? A: TouchGFX针对ST MCU进行深度优化,在性能效果上,资源使用上都更加吻合MCU这个平台。 Q: 这个新的GPU会放在ST一些高性能芯片上吗?如STM32H7?; o: m' Y0 i6 t- m; O3 `/ [ A: 会的,我们后期不仅在STM32H7上,还有更多的高性能的STM32MCU都会配备GPU。 0 Z: L) B3 P6 ^0 e! F. o. X3 S Q:没有GUI设计的工程师使用TouchGFX多久可以上手? A:可以通过我们www.STMCU.com.cn,或者B站上参考相关视频,我们有客户一个月左右就可以很好的上手。' f3 ~3 w( ?1 {6 H/ Y Q:用TouchGFX开发对于各个型号的STM32 MCU有相应的优化吗?提供案例吗? A:我们在designer上放了我们大部分Demo,都是开源的,基于不同的平台,可以参考。( [, o# I4 e9 d9 { 7 V) W+ Z7 _. ]; N Q:这个图像解锁的功能的DOME在哪里可以获取?# ^1 Q. T \) F! w6 Q A:可以在TouchGFX designer的Demo2上获取。, v) Y4 c/ f0 J8 J- L/ Q: Z H ! B/ z, f" G. X' g+ c( o. A STM32 MPU+RT-Thread:多核异构计算之美 3 R' j# X' k: K% q1 q: ? Q:RTT能直接用STM32CubeMX生成吗?8 N- w& j( r6 @$ b/ Y6 C A:可以的,请参考rt-thread nano:https://www.rt-thread.org/docume ... 0041-nano-port-cube 或者你也可以用完整的BSP,配合cubemx进行STM32配置 :https://github.com/RT-Thread/rt-thread/tree/master/bsp/stm323 Z5 E( H% j7 L' O/ l# P3 b Q:RT-Thread能适用于全线ST32位MCU吗? A:是的,全面支持STM32各产品,BSP:https://github.com/RT-Thread/rt-thread/tree/master/bsp/stm32$ s4 _$ [/ J# N2 H: e! v 并且提供了STM32的移植文档,可以让你快速完成STM32上RT-Thread的移植。1 W: n8 `1 k+ D# _* Q 5 T! o( L7 ?2 O) o Q:MicroPython对硬件有最低要求吗?* W; D* t( Z' S* [9 l7 d3 ? A:RT-Thread MicroPython mini 版本占用资源最大不超过:( q P8 ]$ d1 c0 I ROM : 190KB9 o) A! X3 e: }" J9 {8 d) T7 i" y RAM : 20KB/ v% T% n, k6 z5 v- ` 你可以在vscode里找到RT-Thread MicroPython插件,方便开发。 . x4 `5 n; w9 d$ ^( r& L8 B: }, q Q:MicroPython支持多线程吗? A:支持 多线程。: H. v8 X* O) L5 |% B, v: F V" r' c) f8 {- Q. ] Q:RT-Thread考虑像Free RTOS一样加到STM32CubeIDE么?+ ]) f& s& z' N% \) }0 x A:如果你已经将RT-Thread扩展包导入STM32CubeIDE,那么就可以使用 STM32CubeIDE配置并进行工程生成。1 A2 w5 Z% g% p- V5 [: ]. k4 V 9 T4 g6 a! F. i 5 ] q+ r$ d; K0 q( s8 B ( _ j( H, n* x4 ~# b( a- W0 ]9 f 欢迎大家打卡学习,大家有什么问题还以评论区留言!每位评论者可以获得10ST金币! 6 [% {4 A3 x" X! E8 c; q/ u9 H# z / p+ c M; a% f0 [ f9 \ |
【12月学习笔记】 STM32H7B3I-DK在STWin中显示汉字
答疑汇总|STM32技术周-Day4信息安全与功能安全 在线演讲Q&A
答疑汇总|STM32技术周-Day3智能物联 在线演讲Q&A
【问答小课堂第16期】STM32技术周隐藏知识点学习篇
答疑汇总|STM32技术周-Day2人工智能&智能出行 在线演讲Q&A
STM32线上技术周回看:第一天
答疑汇总|STM32技术周-Day1工业与能源 在线演讲Q&A
STM32线上技术周回看:第四天
STM32线上技术周回看:第三天
STM32线上技术周回看:第二天