硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4234|回复: 6
收起左侧

[STM32H7] 一款机器视觉开发板(2):程序架构介绍

[复制链接]

7

主题

56

回帖

77

积分

初级会员

积分
77
发表于 2018-8-8 13:01:50 | 显示全部楼层 |阅读模式
老版本的SL_RTE可以去我的github上访问:https://github.com/sudashannon/SL_RTE
注意:本手册基于最新版本的SL_RTE,目前提供的板子配套工程中的SL_RTE为上一版本,没有更新。新旧版本的RTE主要区别在于SoftTimer、Shell等模块的维护方式有所不同,老版本是静态维护,新版本是动态维护。
1、总体说明
1.jpg file:///C:/Users/Shannon/AppData/Local/Temp/msohtmlclip1/01/clip_image002.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 11.png
可以看到各种cmd的使用,以及一个led定时器的添加和删除。
最新版本的RTE开放在群中。 TuringBoard程序架构.docx (1.38 MB, 下载次数: 120)
我的机器视觉开发板群号为:858707065,欢迎大家前来学习交流。

回复

使用道具 举报

5

主题

578

回帖

593

积分

版主

Rank: 7Rank: 7Rank: 7

积分
593
发表于 2018-8-8 14:31:46 | 显示全部楼层
这是你自己做的rte环境?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107077
QQ
发表于 2018-8-8 14:58:23 | 显示全部楼层
谢谢楼主分享。
回复

使用道具 举报

0

主题

22

回帖

188

积分

初级会员

积分
188
发表于 2018-8-10 20:00:03 | 显示全部楼层

谢谢楼主分享
回复

使用道具 举报

7

主题

33

回帖

54

积分

初级会员

积分
54
发表于 2020-5-5 12:55:16 | 显示全部楼层
框架做的很好
回复

使用道具 举报

3

主题

1231

回帖

1240

积分

至尊会员

积分
1240
发表于 2020-5-5 22:56:10 | 显示全部楼层
怎么加群呢?您的板子哪里购买?
回复

使用道具 举报

3

主题

1231

回帖

1240

积分

至尊会员

积分
1240
发表于 2020-5-5 22:56:44 | 显示全部楼层
您的板子哪里购买?同时申请加群,谢谢!
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-17 04:50 , Processed in 0.184064 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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