2199|0

192

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

一款基于STM32H7的机器视觉开发平台(2)软件框架 [复制链接]

老版本的SL_RTE可以去我的github上访问:https://github.com/sudashannon/SL_RTE
注意:本手册基于最新版本的SL_RTE,目前提供的板子配套工程中的SL_RTE为上一版本,没有更新。新旧版本的RTE主要区别在于SoftTimer、Shell等模块的维护方式有所不同,老版本是静态维护,新版本是动态维护。
1、总体说明
TuringBoard的工程结构如上图所示,其中CMSIS是KEIL自带的中间件,包括NN-LIB、RTX、CMSIS头文件等内容(这里之所以使用其的原因是方便仿真时候使用RTOS VIEW)。
除上述CMSIS部分以外,工程的其他源码均以源文件的形式添加到IDE中,这里做逐一介绍:Main包括主函数与中断函数,目前的程序当中线程没有以单独的.c文件的形式做维护,后续会更新,方便管理;Boot包括启动文件与system_stm32h7xx.c,完成进入main函数前的配置工作;HAL_Lib是ST公司提供的驱动库,其中的dcmi部分做了修改;Board_BSP是针对板子适配的驱动库,介绍如下:
各个模块的配置以结构体形式做静态管理,方便维护,同时提供了回调函数:
方便与CubeMX结合,实现傻瓜式配置。
Board_HALCallback.c文件是上述提及的回调函数的集合,也是HAL中断回调函数的集合,在中断回调函数中通过线程标志位或者标志位等实现线程的切换。
SL_APP、SL_BSP、SL_Config、SL_ThirdParty是SL_RTE的组成部分,在下一章会详细描述。
SL_MV是实现机器视觉的核心算法及其支持件,在本开发板相关其余文档中会详细描述。
2、SL_RTE
2.1、总介
总的来说,SL_RTE是“好用的轮子的集合”,在本人这么多年的码代码生涯中,经历了不少换一个平台或者换一个项目就重造一遍轮子的“悲惨声调”。不可否认重造轮子肯定能一定程度上提高个人业务水平,但是这意味着时间资源的大大消耗。在这博弈的过程中,本人整理了各种自己使用过的轮子,进行了重构或者创新,整理集合为SL_RTE,并在此开源,希望能帮助到大家。
2.2、组成
SL_RTE主要有以下四个部分组成:
Config部分:即以头文件形式完成对整个RTE使用模块的配置,配合MDK环境可以实现图形化配置:
如上图,打开RTE_Config.h头文件,点击左下角的Configuration Wizard标签,切换到图像化配置界面:
这里可以实现各个模块的使用选择,以及模块内部可能存在的一些配置:
RTE部分:
这是整个SL_RTE轮子集合的精华所在。包括多块内存管理、用于实现stdio逻辑的重定向文件、一个类shell交互组件、环形队列与消息队列、时间片轮转调度、状态机模板、一个刚刚开始弄的GUI。
--RTE_BGet
关于BGet内存分配不了解的请先参阅原版代码:
SL_RTE做的工作在于精简了一些功能,改写其为多块内存管理。
--RTE_Shell
提供一个给用户快速与MCU交互的框架,相对于静态写被调用的函数,RTE_Shell使用RTE_BGet进行动态管理,有需要按照以下格式进行cmd的添加与删除。
RTE_Shell_AddCommand("Help",RTE_Shell_CMD_Help,"shell使用帮助")
RTE_Shell_DeleteCommand("Help")
Shell函数格式如下:两个参数argc和argv分别是用户输入的参数个数和各个参数的指针。
环形队列和时间片调度大家伙应该很熟悉了,这里不多说,需要注意的是SoftTimer也是动态管理的。
BSP部分:
针对不同MCU提供基本的驱动,主要有LED和KEY以及COM。
Board_Driver部分:
针对不同的开发平台提供板级驱动,主要就是各种传感器、LCD之类。



实际运行情况:
TuringBoard程序架构.docx (1.38 MB, 下载次数: 9)

可以看到各种cmd的使用,以及一个led定时器的添加和删除。
最新版本的RTE开放在群中。
我的机器视觉开发板群号为:858707065,欢迎大家前来学习交流。


此内容由EEWORLD论坛网友shannon2014原创,如需转载或用于商业用途需征得作者同意并注明出处

此帖出自stm32/stm8论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表