Simulink模型开发STM32-模型开发STM32简介

3.1 模型开发STM32简介

3.1.1 何为基于模型的开发

基于模型的设计方法(Model-Based-Design,MBD)进行软件的开发。

3.1.2 模型软件开发与传统软件开发对比

3.1.3 模型开发与单片机代码相结合开发

3.1.4 模型自动生成代码优势与劣势

•      优势:

    提高效率:自动代码生成可以加快开发进程,尤其是在初期原型设计阶段。

    减少错误:减少人为编码错误,提高代码的一致性和质量。

    易于维护和更新:通过更新模型来改变系统行为,而不是直接修改代码,有助于维护。

    跨学科协作:非编程背景的工程师也可以参与到软件设计中,促进团队协作。

•      劣势:

    性能问题:自动生成的代码可能不如手写代码那样经过优化,可能影响性能。

    灵活性限制:对于一些特定的、复杂的逻辑,MBD可能无法提供与手写代码相同的灵活性。

    学习曲线:需要掌握特定的建模工具和方法

手写代码的优势与劣势

•      优势:

    精确控制:程序员可以对代码的每一部分有细致的控制。

    性能优化:可以针对特定的应用场景进行代码优化。

    灵活性和创造性:为解决复杂问题提供更大的灵活性和创造性空间。

•      劣势:

    时间消耗:编写和调试代码可能更耗时。

    错误风险:手写代码可能会引入更多的人为错误。

    维护挑战:随着时间的推移,手写代码可能更难维护和更新。

3.1.5 使用simulink模型开发STM32

主流使用工具:STM32CubeMX+MATLAB+Keil

STM32CubeMX:用来配置STM32单片机的底层驱动

MATLAB/Simulink:用来建模,仿真,测试以及代码生成,主要面向算法和应用功能开发

Keil/STM32IDE:用来集成,下载软件

3.1.6 学习模型开发的心得

自动生成代码通常是使用基于模型设计进行软件开发的古今中外的工程师最容易关注的优势。代码都不用写了,“码农”从此跟我无干,还有什么比这事更美好的呢?确实,从开发效率来讲,这个环节,对于效率的提升,是无法量化的,原本需要一个月时间写完的代码,现在可能只要一个上午或者两个小时就可以搞定,谁帮我算一下工作效率提升了多少?不少人对代码生成的开发效率没有质疑,但对生成代码的代码效率却不够放心。这事,很多人都比过,SAE上也能找到这样的论文,通俗点讲,从效率上,生成的代码在各种效率上(RAM、ROM、执行时间等)不比大学毕业后工作了5年的工程师差。当然,遇到那种“写代码像写诗一样”的工程师,代码生成工具还是要甘拜下风的,话说,“写代码像写诗一样”的工程师我们有见过几人?

使用Simulink代码生成工具生成的代码,到底支持哪些单片机/开发板?

在不使用任何硬件工具箱前,使用simulink自动代码生成的是标准的C/C++代码,属于应用层或者算法层代码,与芯片是何种类型无任何关系,因此它支持所有的芯片和单片机,。

好多人问到,MATLAB/Simulink如何与单片机直接连接然后直接仿真,我想这个问题肯定是很多人好奇的。单片机与matlab连接进行仿真,有一个专业名词叫做PIL,也就是处理器在环仿真,指的就是把自己的模型部署到对应的硬件开发板上,进行实时运行与仿真。这种方法,首先需要硬件开发板具有官方支持的与simulink连接的通信方式;其次,通信速度要足够快,普通的串口在实时仿真时速度较慢,仿真运行时模型会很卡很卡,基本上达不到实时运行与仿真效果。因此大部分情况下,除了官方设计的学习demo板可支持硬件实时仿真外,大部分产品无法实现实时仿真效果。

MATLAB曾经有一个的工具箱,叫做Target Support Package,简称TSP,这个产品从MATLAB R2011a开始不再单独销售。针对STM32F1系列的支持包,官方也很早就下架了。大家现在能下载到的,都来自于以前的珍藏版,且MATLAB R2018a之后,使用此支持包与STM32CubeMX联合开发,也报各种各样的错误。这些支持包,可能只能用作过家家了。

作者:猿哥爱编程

物联沃分享整理
物联沃-IOTWORD物联网 » Simulink模型开发STM32-模型开发STM32简介

发表回复