社区导航

 
查看: 352|回复: 3

[原创] 一款基于STM32H7的机器视觉开发平台(2)软件框架

[复制链接]

215

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-8-8 13:11:35 | 显示全部楼层 |阅读模式
老版本的SL_RTE可以去我的github上访问:https://github.com/sudashannon/SL_RTE
注意:本手册基于最新版本的SL_RTE,目前提供的板子配套工程中的SL_RTE为上一版本,没有更新。新旧版本的RTE主要区别在于SoftTimer、Shell等模块的维护方式有所不同,老版本是静态维护,新版本是动态维护。
1、总体说明
1.jpg
TuringBoard的工程结构如上图所示,其中CMSIS是KEIL自带的中间件,包括NN-LIB、RTX、CMSIS头文件等内容(这里之所以使用其的原因是方便仿真时候使用RTOS VIEW)。
除上述CMSIS部分以外,工程的其他源码均以源文件的形式添加到IDE中,这里做逐一介绍:Main包括主函数与中断函数,目前的程序当中线程没有以单独的.c文件的形式做维护,后续会更新,方便管理;Boot包括启动文件与system_stm32h7xx.c,完成进入main函数前的配置工作;HAL_Lib是ST公司提供的驱动库,其中的dcmi部分做了修改;Board_BSP是针对板子适配的驱动库,介绍如下:
各个模块的配置以结构体形式做静态管理,方便维护,同时提供了回调函数:
2.jpg 3.jpg
方便与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环境可以实现图形化配置:
4.jpg
如上图,打开RTE_Config.h头文件,点击左下角的Configuration Wizard标签,切换到图像化配置界面:
5.jpg
这里可以实现各个模块的使用选择,以及模块内部可能存在的一些配置:
6.jpg
RTE部分:
这是整个SL_RTE轮子集合的精华所在。包括多块内存管理、用于实现stdio逻辑的重定向文件、一个类shell交互组件、环形队列与消息队列、时间片轮转调度、状态机模板、一个刚刚开始弄的GUI。
--RTE_BGet
关于BGet内存分配不了解的请先参阅原版代码:
SL_RTE做的工作在于精简了一些功能,改写其为多块内存管理。
7.jpg
--RTE_Shell
提供一个给用户快速与MCU交互的框架,相对于静态写被调用的函数,RTE_Shell使用RTE_BGet进行动态管理,有需要按照以下格式进行cmd的添加与删除。
RTE_Shell_AddCommand("Help",RTE_Shell_CMD_Help,"shell使用帮助")
RTE_Shell_DeleteCommand("Help")
Shell函数格式如下:两个参数argc和argv分别是用户输入的参数个数和各个参数的指针。
8.jpg
环形队列和时间片调度大家伙应该很熟悉了,这里不多说,需要注意的是SoftTimer也是动态管理的。
BSP部分:
针对不同MCU提供基本的驱动,主要有LED和KEY以及COM。
Board_Driver部分:
针对不同的开发平台提供板级驱动,主要就是各种传感器、LCD之类。



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


回复

使用道具 举报

1315

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 2018-8-8 16:12:04 | 显示全部楼层
大牛啊,看看了


回复

使用道具 举报

1

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 7 天前 | 显示全部楼层
厉害了


回复

使用道具 举报

1025

TA的帖子

0

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

荣誉会员勋章

发表于 6 天前 | 显示全部楼层
学习学习。


回复

使用道具 举报

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

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2018-8-16 23:38 , Processed in 0.127649 second(s), 17 queries , Gzip On, Redis On.

快速回复 返回顶部 返回列表