uC-OS2 V2.93 STM32L476 移植:環境構築

序文

  • uC-OS2 は比較的古典的な RTOS ですが、現在はソフトウェアの認可が変更されておりApache License Version 2.0、無料で商用利用が可能です。

  • uC-OS2 の最新バージョンは V2.93 で、RTOS の設計思想を検討する予定なので、既存の開発ボード: STM32L476RG プラットフォームである NUCLEO-L476RG を移植して研究したいと考えています。

開発環境

  • win10 64ビット

  • Keil uVision5、MDK V5.36

  • uC-OS2 V2.93

  • 開発ボード:NUCLEO-L476RG、MCUはSTM32L476RG

  • STM32CubeMX 6.9.1、STM32 のベアメタル プロジェクトの生成に使用

STM32 ベアメタル プロジェクト

  • まずダウンロードしてインストールしますSTM32CubeMX 6.9.1。これは、Keil MDK または IAR STM32 プロジェクトを生成できる ST の強力なプロジェクト構成生成 IDE であり、同時に STM32 HAL ライブラリの構成、システム クロック、ピン、ペリフェラルなどの構成を行うことができます。予備的なベアメタル プロジェクト。

  • を開きSTM32CubeMX、新しいプロジェクトを作成し、ボードを選択しNUCLEO-L476RG、ダブルクリックして STM32L476 を設定します。

  • 基本的にはここを見てください。プログラミング ピン、シリアル ポート ピン、LED ピン、システム クロック構成: 80MHz

ここに画像の説明を挿入

ここに画像の説明を挿入
ここに画像の説明を挿入

Keil MDK5 プロジェクト

  • 生成された Keil MDK5 プロジェクトの構成を変更したい場合は、プロジェクトの下にある STM32CubeMX 構成ファイルをダブルクリックするだけですstm32l476_ucosii_led.ioc(ピン、ペリフェラル、クロックなどの再構成など)。

  • 生成された Keil MDK5 プロジェクトは次のようになります。[コンパイル] をクリックして通常通りコンパイルします。

  • LED を点滅させる単純なベアメタル プログラムを作成し、それを開発ボードにダウンロードして、正常に動作するかどうかを確認できます。

ここに画像の説明を挿入

ベアメタル LED ドライバー

  • デフォルトで生成されたプロジェクトではLEDピンが設定されていますが、もちろん手動で設定することも可能です

  • 新しいled.c

#include "main.h"

void led_grn_ctrl(unsigned int bon)
{
    
    
    if (bon == 0x01) /* LEDG ON */
    {
    
    
        HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_SET);
    }
    else
    {
    
    
        HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_RESET);
    }
}
  • 新しいled.h
#ifndef __LED_H__
#define __LED_H__

void led_grn_ctrl(unsigned int bon);

#endif

  • led.c と led.h を Keil MDK5 プロジェクトに追加します

  • main.c を変更して LED を点滅させる

#include "main.h"
#include "led.h"

UART_HandleTypeDef huart2;

void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_USART2_UART_Init(void);

/**
  * @brief  The application entry point.
  * @retval int
  */
int main(void)
{
    
    
    HAL_Init();
    SystemClock_Config();
    MX_GPIO_Init();
    MX_USART2_UART_Init();

    while (1)
    {
    
    
        led_grn_ctrl(1);
        HAL_Delay(1000);
        led_grn_ctrl(0);
        HAL_Delay(1000);
    }
}

ここに画像の説明を挿入
ここに画像の説明を挿入

ここに画像の説明を挿入

  • led.c をプロジェクトに追加し、led.h ヘッダー ファイル パスを設定し、それをコンパイルして開発ボードにダウンロードすると、開発ボード上の LED が点滅し始めます。現在は 1 秒に 1 回点滅しています。

ここに画像の説明を挿入

ここに画像の説明を挿入

uC-OS2をダウンロード

ここに画像の説明を挿入

  • つづく

まとめ

  • この記事では、最初に STM32 のベアメタル プロジェクトをビルドし、ベアメタルの下で LED を点滅させます。

  • 基本的な LED 制御ドライバーをプロジェクトに追加する

  • 次に、STM32 での uC-OS2 の移植と構成を記録します。

おすすめ

転載: blog.csdn.net/tcjy1000/article/details/132050595