| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 基于STM32Cube MX开发的TencentOS-Tiny软件包 -> 正文阅读 |
|
[嵌入式]基于STM32Cube MX开发的TencentOS-Tiny软件包 |
基于STM32Cube MX开发的TencentOS-Tiny软件包TencentOS-Tiny software package based on STM32Cube MX 2021/11/10 导师:汪礼超 摘要腾讯物联网操作系统(TencentOS tiny)是腾讯面向物联网领域开发的实时操作系统,具有低功耗,低资源占用,模块化,可裁剪等特性。TencentOS 为了减少开发人员移植TencentOS tiny到STM32系列单片机上的开发时间,研究了STM32Cube MX软件包的制作,基于STM32 PackCreator完成了TencentOS Tiny软件包的封装,并在STM32Cube IDE和MDK-ARM v5上完成了软件包的移植测试,从而用户在安装本软件包后,能够使用pack在STM32Cube MX上直接生成适合不同MCU的TencentOS Tiny工程。 目录 1、STM32 Cube MX软件包介绍 1、STM32 Cube MX软件包介绍1.1 软件包简介在进行嵌入式软件开发时,ARM为我们提供了软件包功能,能够将软件算法等模块进行集成封装,从而方便第三方用户使用。ARM软件包能够为微控制器设备和开发板提供支持,包含软件组件(Software
软件组件包括以下几部分:
一个完整的软件包是一个ZIP文件,包含所有需要的软件库和文件,以及一个包含软件包所有信息的包描述文件(PDSC文件),ARM软件包的结构是在CMSIS中定义的(http://www.keil.com/CMSIS/Pack)。 STM32 CubeMX是ST公司推出了专门用于生成STM32的HAL代码的代码生成软件,可以通过可视化界面完成工程的配置,同时生成能够在STM32 CubeMX、Keil等软件中运行的工程。STM32 Cube MX软件包是在ARM软件包的基础上,结合ST公司提供的软件包生成工具STM32 PackCreator制作的,利用这个软件我们可以很方便地以图形化界面的方式进行软件包的制作。 如下图所示,使用STM32PackCreator需要我们的操作系统安装Java? Runtime Environment (JRE)和JavaFX?,目前STM32CubeMX已经更新到了6.3版本,但这个版本并没有集成JavaFX,最为方便的方式是安装STM32
具体步骤如下: (1)安装STM32CubeMX6.2.0:STM32CubeMX - STM32Cube初始化代码生成器 - (2)双击安装目录下的STM32PackCreator,此时会提示需要安装JRE,点击确定,跳转到https://java.com/zh-CN/download/,然后下载安装。 (3)然后再次双击打开STM32PackCreator.exe,STM32 PackCreator的界面如下图所示。 图1.4 STM32 PackCreator界面 1.2 软件包开发1.2.1 软件包开发过程软件包的开发过程相当于完成了一项产品的制作,因此引入产品生命周期管理(PLM)的概念,PLM包括以下四个阶段:(1)概念的产生,基于软件包需求进行产品定义,并创建第一个功能原型;(2)设计,根据技术特征和要求,进行原型测试和产品的实施,通过广泛的测试验证产品的功能与规格;(3)发布,产品被制造出来并推向市场;(4)服务,对产品的维护,包括对客户的支持,最后不断优化,结束产品的周期。 在制作软件包时,主要面临以下几个过程: 图1.5 软件包开发流程 首先,根据特定组件生成软件包即根据需求将相应的头文件、库文件等软件组件利用PDSC文件进行组织,在组织完成后即可利用软件包生成工具生成对应版本的软件包,然后对新生成的软件包进行测试,给出示例测试程序,再将其包含如PDSC文件中,最后经测试完成后生成最终的软件包。 1.2.2 利用STM32PackCreator制作软件包STM32PackCreator能够通过图形化界面设计软件包,省去了我们手动编写PDSC文件和软件包生成脚本文件的步骤,使用起来非常方便快捷,以下是使用STM32PackCreator制作软件包的步骤。 (1)打开STM32 PackCreator后,点击File-new project from scratch。 图1.6 生成新软件包 (2)进行软件包的配置,包括软件包生成的文件夹、软件包的vendor、name和description属性。 图1.7 软件包初始配置 (3)配置完成后,可以看到有四个属性栏,他们分别代表软件包的基本配置、版本控制、组件内容和附加文件,如图1.7所示: (4)如下为制作Tencent OS-tiny软件包时的配置: (a)基础配置 (b)软件包版本控制 (5)制作软件包的关键在于Pack 图1.10 软件包组件配置 (6)添加附件,在Additional Files中,我们需要添加上软件包的说明文件(README.md)、利用软件包生成的示例工程(Projects)和STM32CubeMX文件夹,此时我们点击File-Save and Generate Pack,可以在之前设定的路径下看到软件包。然后我们再次将这个软件包也加入到Additional Files中,如图1.11所示,我们再次点击File-Save and Generate Pack,就可以生成一个完整的STM32CubeMX软件包了。 图1.11 STM32CubeMX文件夹 图1.12 Additional Files界面 图1.13 生成软件包 (7)另外,STM32PackCreator提供了参数预先配置的功能,使得我们在STM32 CubeMX生成工程时,可以对软件包的参数进行提前配置。首先在图1.13(a)中添加我们需要用户提前配置的一系列参数,然后在图1.13(b)中制作一个模板文件,此处我设置为头文件的形式,然后将之前设置的一系列参数添加过来并保存,这样用户在使用软件包生成工程的时候就可以预先配置参数,并在生成工程时自动生成名为tos_config的文件。 图1.14 软件包参数配置 2、TencentOS-tiny软件包2.1 软件包内容结合TencentOS tiny的算法架构,本文设计的软件包包括如表2-1所示的内容: 表2-1 软件包内容
软件包具有以下功能:
2.2 软件包安装接下来介绍Tencent.TencentOS-tiny软件包的安装,首先打开STM32 Cube 安装好的软件包可以在安装路径中查看内容,路径在Help-Updater Settings中查看。 (a)安装路径 (b) 软件包安装查看 3、软件包测试3.1 STM32 MCU移植测试(生成STM32 CubeIDE工程)移植步骤如下: (1)点击ACCESS TO MCU SELECTOR: 图3.1 打开MCU选择的界面 (2)选择STM32F407ZGTx,点击Start Project: 图3.2 选择MCU (3)点击红框中选项 图3.3 选择软件包 (4)此时生成使用STM32 图3.4 软件包配置 (5)点击Software Packs,打勾,并在下方进行软件包的参数配置。 图3.5 软件包参数配置 (6)注释掉中断函数PendSV()、void SysTick_Handler(void)等,这些在软件包中都进行了配置。 图3.6 中断函数处理 (7)进行生成工程配置,按如下界面进行配置,最后点击GENERATE CODE,并点击Open (8)在tos_config头文件中加入头文件:#include 3.2 STM32 Board移植测试(生成MDK-ARM v5工程)(1)点击ACCESS TO BOARD SELECTOR,选择Board为NUCLEO-F401RE,点击Start Project: 图3.9 Board选择 (2)点击红框中选项 图3.10 选择软件包 (3)此时生成使用MDK-ARM编译的工程,首先选择armcc版本的arch(如果是STM32 CubeIDE版本的话就点击gcc版本的arch),然后点击黄色感叹号,再点击Resolve。之后手动添加helloworld_main和cmsis_os,并选择对应MCU版本的mcu_platform。最后点击ok完成配置。 图3.11 软件包配置 (4)点击Software Packs,打勾,并在下方进行软件包的参数配置。 图3.12 软件包参数配置 (5)注释掉中断函数PendSV()、void SysTick_Handler(void)等,这些在软件包中都进行了配置。 图3.13 中断函数处理 (6)进行生成工程配置,按如下界面进行配置,最后点击GENERATE CODE,并点击Open Project。 图3.14 工程生成配置 (8)打开main_example.c,跳转到tos_config头文件,在其中加入头文件:#include “mcu_platform_M4.h”,点击Build All,如下界面所示,编译通过,完成软件包的移植。 图3.15 移植编译 3.3 单片机测试对单片机开发板进行测试,以正点原子探索者STM32F407ZGT6为例介绍TencentOS-tiny软件包的移植。 (1)点击ACCESS TO MCU SELECTOR: 图3.16 打开MCU选择的界面 (2)选择STM32F407ZGTx,点击Start Project: 图3.17 选择MCU (3)点击红框中选项 图3.18 选择软件包 (4)此时生成使用MDK-ARM编译的工程,首先选择armcc版本的arch(如果是STM32 CubeIDE版本的话就点击gcc版本的arch),然后点击黄色感叹号,再点击Resolve。之后手动添加cmsis_os,并选择对应MCU版本的mcu_platform。最后点击ok完成配置。 图3.19 软件包配置 (5)点击Software Packs,打勾,并在下方进行软件包的参数配置。 图3.20 软件包参数配置 (6)注释掉中断函数PendSV()、void SysTick_Handler(void)等,这些在软件包中都进行了配置,然后我们还需要对串口、下载等模块进行修改,如下: (a)中断函数处理 (b)中断优先级配置 (c)RCC配置 (d)SYS配置 (e)串口1配置 (f)时钟树配置 图3.21 模块配置 (7)进行生成工程配置,按如下界面进行配置,最后点击右上角GENERATE CODE,生成工程后点击Open Project。 图3.22 工程配置 (8)打开tos_config头文件,在其中加入头文件:
(9)编译,然后使用ST-LINK下载到正点原子探索者单片机中 图3.23 编译、下载程序 (10)使用串口助手查看,两个任务的延时设置不一样,运行效果也不一样: 图3.24 串口查看界面 4、开发参考1、腾讯物联网操作系统网址https://github.com/OpenAtomFoundation/TencentOS-tiny 2、ST官方教程How to develop a STM32Cube Expansion Package - stm32mcu (stmicroelectronics.cn) 3、制作STM32Cube软件包-STM32 PackCreator的使用及软件包的制作 - 极术社区 - 连接开发者与智能计算生态 (aijishu.com) 4、(1)STM32 CubeMX软件包的制作—STM32PackCreator的使用_linwei_Cui的博客-CSDN博客 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 8:27:57- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |