完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32是意法半导体开发的常用芯片,为了迎合MBD开发模式,ST公司推出了最新版本的MBD工具包,在Matlab/Simulink 2018b环境下,可以通过建模完成APP代码生成。该工具包功能丰富,涵盖了APP应用建模所需。
STM32的RTOS操作系统 RTOS是一款实时操作系统,其优越性不再赘述,在STM32程序开发过程中,采用ST官方STM32CubeMX工具,配置IOC文件,可以轻松生成可靠的RTOS应用环境,手工添加任务代码。但是,在MBD模式下,程序代码是通过模型生成的,因此应用程序需要与RTOS建立接口模块,将程序模型生成为RTOS任务代码。 解决思路 RTOS主要的API操作时任务的创建、挂起、恢复、删除4项功能,此外程序运行过程中,需要对任务属性进行获取,因此初步规划,MBD工具包库主要包含以上模块。如图 技巧性问题 任务创建 任务创建模块,需要在建模的时候由开发者来配置任务名称、优先级、周期、堆栈空间,代码生成可直接生成任务函数名、任务句柄、任务周期的C语言函数。而函数的主体内容,则通过子系统代码生成添加到函数中,下图为一个led灯闪烁的模型; 子系统内部是控制芯片Pin9管脚,每次执行将亮灯状态求反送给管脚,并存储; 生成的任务函数代码如下 void ledshow_task(void *pvParameters) { while (1) { /* Output and update for function-call system: ' /* Logic: ' * DataStoreRead: ' */ RTOSGPIO2_B.LogicalOperator_b = (RTOSGPIO2_DW.ledstatus1 == 0); /* DataTypeConversion: ' * DataStoreWrite: ' */ RTOSGPIO2_DW.ledstatus1 = (int8_T)(RTOSGPIO2_B.LogicalOperator_b ? 1 : 0); /* S-Function (GPIO_Write): ' { if (RTOSGPIO2_B.LogicalOperator_b == 0) HAL_GPIO_WritePin(GPIOF, GPIO_PIN_9, GPIO_PIN_RESET); else HAL_GPIO_WritePin(GPIOF, GPIO_PIN_9, GPIO_PIN_SET); } vTaskDelay(1000); } } 句柄的遍历 编程过程中,我们对任务的操作,主要是通过任务句柄来操作的,而任务句柄名称可以根据我们配置的函数名参数按照一个的规则生成,如,参数配置为ledshow,则任务函数名为ledshow_task,任务句柄名称为ledshowTask_Handler。那么在建模过程中,做一个挂起操作时,如何配置具体的句柄名称呢? 解决办法是,任务挂起模块在被引用的事件中,增加一个遍历整个模型中任务创建模块的m函数,并获取这些模块的任务名称,并添加到模块参数的选项中,通过点选来生成挂起执行的C代码;m函数主要通过操作MaskStyleString参数来设置,也可以先获取模块参数对象,通过setParameter函数实现。 在建立为MBD库以后,在引用过程中,对block的参数选项修改时,默认是禁止的,因此通过m函数中对模块的LinkStatus属性进行操作,那么模块副本参数即可修改,而模型库中的模块保持原有值。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1780 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1081 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
728 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1679 浏览 2 评论
1938浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
731浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
596浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
556浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 17:53 , Processed in 0.591519 second(s), Total 73, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号