TencentOS-tiny 移植到STM32F407(MDK)

目录

一、移植前的准备工作

1. 硬件(STM32测试板)

2. 软件

3. 裸机工程

3.1选择芯片STM32F407VET6

3.2 Pinout&Configuration >> 配置GPIO

3.3 Pinout&Configuration >> 配置时钟源

3.4 Pinout&Configuration >> 配置串口

3.5 时钟配置

3.6 生成工程配置

3.7 生成代码配置

3.8 生成代码

3.9 裸机代码结构

二、移植TencentOS-tiny

1. TencentOS-tiny 架构

2. 获取TencentOS-tiny源码

3. TencentOS-tiny源码文件

4.添加TencentOS-tiny源码

4.1 添加分组目录

4.2 添加arch源码

4.3 添加内核源码

4.4 添加cmsis_os源码

4.5 添加tos_config

4.7 添加头文件

5. 修改stm32f4xx_it.c代码

5.1 添加tos头文件

5.2 修改PendSV_Handler 中断函数

5.3 修改SysTick_handle中断函数

6. 修改usart.c代码

6.1 printf函数重定向

7. 修改mian.c代码

7.1 添加cmsis_os.h头文件

7.2 添加Task函数

7.3 内核初始化,创建Task,开启调度

三、验证TencentOS-tiny移植结果


一、移植前的准备工作

1. 硬件(STM32测试板)

MCU:STM32F407VET6(RAM: 196K ,FLASH: 512K,最高168MHz工作频率)

晶振:8MHz

2. 软件

编译器环境:Keil MDK-ARM Version 5.33

STM32cube 初始化代码生成器:STM32CubeMX Version 6.20

3. 裸机工程

使用 STM32cubeMX 生成裸机代码

3.1选择芯片STM32F407VET6

3.2 Pinout&Configuration >> 配置GPIO

板载三个指示灯,原理图如下图所示。

接着配置控制指示灯的引脚,配置为推挽输出,输出电平为高电平,保证初始化后指示灯是灭的。

user Label(用户标签)中填写内容是用来表示该引脚的,代替实际引脚,提高代码的移植性。STM32cubeMX生成程序时会在 main.h 中添加宏定义,如下所示。

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __MAIN_H
#define __MAIN_H

......

/* Private defines -----------------------------------------------------------*/
#define BLUETOOTH_EN_Pin GPIO_PIN_2
#define BLUETOOTH_EN_GPIO_Port GPIOE
#define BLUETOOTH_RST_Pin GPIO_PIN_3
#define BLUETOOTH_RST_GPIO_Port GPIOE
#define LED_Run_Pin GPIO_PIN_4
#define LED_Run_GPIO_Port GPIOE
#define LED_Status_Pin GPIO_PIN_5
#define LED_Status_GPIO_Port GPIOE
#define LED_Error_Pin GPIO_PIN_6
#define LED_Error_GPIO_Port GPIOE

3.3 Pinout&Configuration >> 配置时钟源

3.4 Pinout&Configuration >> 配置串口

3.5 时钟配置

芯片的最高时钟频率可达到168MHz

3.6 生成工程配置

3.7 生成代码配置

3.8 生成代码

3.9 裸机代码结构


二、移植TencentOS-tiny

1. TencentOS-tiny 架构

TencentOS tiny 由一个轻量级 RTOS 内核 + 多个物联网组件构成,其主体架构图(引用 腾讯物联网终端操作系统)如下图所示:

2. 获取TencentOS-tiny源码

可直接前往Github:https://github.com/Tencent/TencentOS-tiny 直接进行下载。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值