图1.1 STM32PackCreator使用要求
具体步骤如下:
(1)安装STM32CubeMX6.2.0:STM32CubeMX – STM32Cube初始化代码生成器 –
STMicroelectronics;
图1.3 STM32PackCreator使用前的配置
(3)然后再次双击打开STM32PackCreator.exe,STM32 PackCreator的界面如下图所示。
图1.5 软件包开发流程
首先,根据特定组件生成软件包即根据需求将相应的头文件、库文件等软件组件利用PDSC文件进行组织,在组织完成后即可利用软件包生成工具生成对应版本的软件包,然后对新生成的软件包进行测试,给出示例测试程序,再将其包含如PDSC文件中,最后经测试完成后生成最终的软件包。
1.2.2 利用STM32PackCreator制作软件包
STM32PackCreator能够通过图形化界面设计软件包,省去了我们手动编写PDSC文件和软件包生成脚本文件的步骤,使用起来非常方便快捷,以下是使用STM32PackCreator制作软件包的步骤。
(1)打开STM32 PackCreator后,点击File-new project from scratch。
图1.7 软件包初始配置
(3)配置完成后,可以看到有四个属性栏,他们分别代表软件包的基本配置、版本控制、组件内容和附加文件,如图1.7所示:
(a)基础配置
图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.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 软件包内容
内容 | 功能 | |
---|---|---|
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)所示。
(b)
图2.1 软件包安装
安装好的软件包可以在安装路径中查看内容,路径在Help-Updater Settings中查看。
(b) 软件包安装查看
图2.2 软件包安装
3、软件包测试
3.1 STM32 MCU移植测试(生成STM32 CubeIDE工程)
移植步骤如下:
(1)点击ACCESS TO MCU SELECTOR:
图3.2 选择MCU
(3)点击红框中选项
图3.5 软件包参数配置
(6)注释掉中断函数PendSV()、void SysTick_Handler(void)等,这些在软件包中都进行了配置。
图3.7 工程生成配置
(8)在tos_config头文件中加入头文件:#include
“mcu_platform_M4.h”,点击Build All,如下界面所示,编译通过,完成软件包的移植。
图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.13 中断函数处理
(6)进行生成工程配置,按如下界面进行配置,最后点击GENERATE CODE,并点击Open Project。
图3.15 移植编译
3.3 单片机测试
对单片机开发板进行测试,以正点原子探索者STM32F407ZGT6为例介绍TencentOS-tiny软件包的移植。
(1)点击ACCESS TO MCU SELECTOR:
图3.17 选择MCU
(3)点击红框中选项
图3.19 软件包配置
(5)点击Software Packs,打勾,并在下方进行软件包的参数配置。
(a)中断函数处理
(c)RCC配置
(e)串口1配置
图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进行处理,非常感谢!