基于STM32Cube MX开发的TencentOS-Tiny软件包

基于STM32Cube MX开发的TencentOS-Tiny软件包
图1.1 STM32PackCreator使用要求

具体步骤如下:

(1)安装STM32CubeMX6.2.0:STM32CubeMX – STM32Cube初始化代码生成器 –
STMicroelectronics;

基于STM32Cube MX开发的TencentOS-Tiny软件包
基于STM32Cube MX开发的TencentOS-Tiny软件包
图1.3 STM32PackCreator使用前的配置

(3)然后再次双击打开STM32PackCreator.exe,STM32 PackCreator的界面如下图所示。

基于STM32Cube MX开发的TencentOS-Tiny软件包

图1.5 软件包开发流程

首先,根据特定组件生成软件包即根据需求将相应的头文件、库文件等软件组件利用PDSC文件进行组织,在组织完成后即可利用软件包生成工具生成对应版本的软件包,然后对新生成的软件包进行测试,给出示例测试程序,再将其包含如PDSC文件中,最后经测试完成后生成最终的软件包。

1.2.2 利用STM32PackCreator制作软件包

STM32PackCreator能够通过图形化界面设计软件包,省去了我们手动编写PDSC文件和软件包生成脚本文件的步骤,使用起来非常方便快捷,以下是使用STM32PackCreator制作软件包的步骤。

(1)打开STM32 PackCreator后,点击File-new project from scratch。

基于STM32Cube MX开发的TencentOS-Tiny软件包

图1.7 软件包初始配置

(3)配置完成后,可以看到有四个属性栏,他们分别代表软件包的基本配置、版本控制、组件内容和附加文件,如图1.7所示:

基于STM32Cube MX开发的TencentOS-Tiny软件包

(a)基础配置

基于STM32Cube MX开发的TencentOS-Tiny软件包

图1.10 软件包组件配置

(6)添加附件,在Additional Files中,我们需要添加上软件包的说明文件(README.md)、利用软件包生成的示例工程(Projects)和STM32CubeMX文件夹,此时我们点击File-Save and Generate Pack,可以在之前设定的路径下看到软件包。然后我们再次将这个软件包也加入到Additional Files中,如图1.11所示,我们再次点击File-Save and Generate Pack,就可以生成一个完整的STM32CubeMX软件包了。

基于STM32Cube MX开发的TencentOS-Tiny软件包

图1.12 Additional Files界面

基于STM32Cube MX开发的TencentOS-Tiny软件包

图1.13 生成软件包

(7)另外,STM32PackCreator提供了参数预先配置的功能,使得我们在STM32 CubeMX生成工程时,可以对软件包的参数进行提前配置。首先在图1.13(a)中添加我们需要用户提前配置的一系列参数,然后在图1.13(b)中制作一个模板文件,此处我设置为头文件的形式,然后将之前设置的一系列参数添加过来并保存,这样用户在使用软件包生成工程的时候就可以预先配置参数,并在生成工程时自动生成名为tos_config的文件。

基于STM32Cube MX开发的TencentOS-Tiny软件包

图1.14 软件包参数配置

2、TencentOS-tiny软件包

2.1 软件包内容

结合TencentOS tiny的算法架构,本文设计的软件包包括如表2-1所示的内容:

表2-1 软件包内容

内容 功能
arch 包括TencentOS-tinyarcharm下内核为Cortex-M0+、Cortex-M0、Cortex-M3、Cortex-M4、Cortex-M7、Cortex-M23、Cortex-M33的arch文件
kernel 包括TencentOS-tinykernel下的core、hal路径中的文件、tos_config文件
cmsis_os 对应TencentOS-tinyosalcmsis_os的文件
helloworld_main 用于测试软件包的main文件
example mcu_it.c 移植软件包时需要按照该文件对中断函数进行修改
mcu_platform.h 用户可在此文件在添加对应单片机的头文件

软件包具有以下功能:

(1)软件包针对ARMCortex-M0+、Cortex-M0、Cortex-M3、Cortex-M4、Cortex-M7、Cortex-M23和Cortex-M33内核进行了TencentOS tiny软件的封装,用户在安装软件包后能够快速将TencentOS tiny相应内核的Keil工程中;

(2)软件包能够自动适应用户所选的内核,arch文件能够根据内核自动显示,从而方便用户使用;

(3)用户在勾选一个组件时,软件包会自动提示还需要勾选其他模块,并可利用界面中的Resolve一键勾选,防止遗漏;

(4)用户可在STM32CubeMX上修改tos_config文件中的参数,对TencentOS tiny的功能进行裁剪。

2.2 软件包安装

接下来介绍Tencent.TencentOS-tiny软件包的安装,首先打开STM32 Cube
MX软件,如图2.1(a)所示,点击INSTALL/REMOVE,然后将软件包拖进来,点击I agree to
all the terms of the preceding License
Agreement,再点击next进行安装,安装完成界面如图2.1(b)所示。

基于STM32Cube MX开发的TencentOS-Tiny软件包
(b)
图2.1 软件包安装

安装好的软件包可以在安装路径中查看内容,路径在Help-Updater Settings中查看。

基于STM32Cube MX开发的TencentOS-Tiny软件包

(b) 软件包安装查看
图2.2 软件包安装

3、软件包测试

3.1 STM32 MCU移植测试(生成STM32 CubeIDE工程)

移植步骤如下:

(1)点击ACCESS TO MCU SELECTOR:

基于STM32Cube MX开发的TencentOS-Tiny软件包

图3.2 选择MCU

(3)点击红框中选项

基于STM32Cube MX开发的TencentOS-Tiny软件包
基于STM32Cube MX开发的TencentOS-Tiny软件包

图3.5 软件包参数配置

(6)注释掉中断函数PendSV()、void SysTick_Handler(void)等,这些在软件包中都进行了配置。

基于STM32Cube MX开发的TencentOS-Tiny软件包
基于STM32Cube MX开发的TencentOS-Tiny软件包
图3.7 工程生成配置

(8)在tos_config头文件中加入头文件:#include
“mcu_platform_M4.h”,点击Build All,如下界面所示,编译通过,完成软件包的移植。

基于STM32Cube MX开发的TencentOS-Tiny软件包
基于STM32Cube MX开发的TencentOS-Tiny软件包

图3.10 选择软件包

(3)此时生成使用MDK-ARM编译的工程,首先选择armcc版本的arch(如果是STM32 CubeIDE版本的话就点击gcc版本的arch),然后点击黄色感叹号,再点击Resolve。之后手动添加helloworld_main和cmsis_os,并选择对应MCU版本的mcu_platform。最后点击ok完成配置。

基于STM32Cube MX开发的TencentOS-Tiny软件包

图3.11 软件包配置

(4)点击Software Packs,打勾,并在下方进行软件包的参数配置。

基于STM32Cube MX开发的TencentOS-Tiny软件包

图3.13 中断函数处理

(6)进行生成工程配置,按如下界面进行配置,最后点击GENERATE CODE,并点击Open Project。

基于STM32Cube MX开发的TencentOS-Tiny软件包
基于STM32Cube MX开发的TencentOS-Tiny软件包

图3.15 移植编译

3.3 单片机测试

对单片机开发板进行测试,以正点原子探索者STM32F407ZGT6为例介绍TencentOS-tiny软件包的移植。

(1)点击ACCESS TO MCU SELECTOR:

基于STM32Cube MX开发的TencentOS-Tiny软件包

图3.17 选择MCU

(3)点击红框中选项

基于STM32Cube MX开发的TencentOS-Tiny软件包

图3.19 软件包配置

(5)点击Software Packs,打勾,并在下方进行软件包的参数配置。

基于STM32Cube MX开发的TencentOS-Tiny软件包

(a)中断函数处理

基于STM32Cube MX开发的TencentOS-Tiny软件包

(c)RCC配置

基于STM32Cube MX开发的TencentOS-Tiny软件包

(e)串口1配置

基于STM32Cube MX开发的TencentOS-Tiny软件包
基于STM32Cube MX开发的TencentOS-Tiny软件包

图3.22 工程配置

(8)打开tos_config头文件,在其中加入头文件:,然后使用如下的main文件:

/* USER CODE BEGIN Includes */#include "cmsis_os.h"/* USER CODE END Includes *//* USER CODE BEGIN 0 *///task1#define TASK1_STK_SIZE		512void task1(void *pdata);osThreadDef(task1, osPriorityNormal, 1, TASK1_STK_SIZE);//task2#define TASK2_STK_SIZE		512void task2(void *pdata);osThreadDef(task2, osPriorityNormal, 1, TASK2_STK_SIZE);void task1(void *pdata){   int count = 1;   char buffer[64] = {0};   while(1) {   	snprintf(buffer, sizeof(buffer), "task 1 %04drn", count++);   	HAL_UART_Transmit(&huart1, (uint8_t*)buffer, strlen(buffer), 0xFFFF);  osDelay(2000);   }}void task2(void *pdata){   int count = 1;   char buffer[64] = {0};   while(1) {   	snprintf(buffer, sizeof(buffer), "task 2 %04drn", count++);   	HAL_UART_Transmit来源:linwei_Cui
                                                        

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年10月13日
下一篇 2021年10月13日

相关推荐