uC-OS2 V2.93 STM32L476 移植:环境搭建篇

这篇具有很好参考价值的文章主要介绍了uC-OS2 V2.93 STM32L476 移植:环境搭建篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

  • uC-OS2 是比较经典的 RTOS,如今软件授权已经改为 Apache License Version 2.0,意味着可以免费商用了

  • 当前 uC-OS2 的最新版本是: V2.93,打算研究一下 RTOS 的设计思想,所以想在已有的开发板:NUCLEO-L476RG,也就是 STM32L476RG 平台上进行移植、研究

开发环境

  • 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,这是个ST 强大的 工程配置生成 IDE,可以生成 Keil MDK 或者 IAR 的 STM32工程,同时配置好 STM32 HAL库,配置好系统时钟、引脚、外设等,这样一套下来,就有了一个初步的裸机工程。

  • 打开 STM32CubeMX,新建 工程,选择 board NUCLEO-L476RG,双击,进行STM32L476 的配置

  • 这里基本上看一下即可,烧写引脚、串口引脚、LED 引脚,系统时钟配置:80MHz

uC-OS2 V2.93 STM32L476 移植:环境搭建篇,uC-OS2,stm32,uC-OS2,移植

uC-OS2 V2.93 STM32L476 移植:环境搭建篇,uC-OS2,stm32,uC-OS2,移植
uC-OS2 V2.93 STM32L476 移植:环境搭建篇,uC-OS2,stm32,uC-OS2,移植

Keil MDK5 工程

  • 如果生成的Keil MDK5 工程,想再修改配置,就双击 工程下的 STM32CubeMX 配置文件 stm32l476_ucosii_led.ioc 即可,如重新配置引脚、外设、时钟等

  • 生成的Keil MDK5 工程如下,点击编译可以正常编译通过。

  • 可以写一个 LED 闪烁的 简单的裸机程序,然后下载到 开发板,确认是否可以正常工作

uC-OS2 V2.93 STM32L476 移植:环境搭建篇,uC-OS2,stm32,uC-OS2,移植

裸机 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);
    }
}

uC-OS2 V2.93 STM32L476 移植:环境搭建篇,uC-OS2,stm32,uC-OS2,移植
uC-OS2 V2.93 STM32L476 移植:环境搭建篇,uC-OS2,stm32,uC-OS2,移植

uC-OS2 V2.93 STM32L476 移植:环境搭建篇,uC-OS2,stm32,uC-OS2,移植

  • 添加 led.c 到工程,然后配置好 led.h 头文件路径,编译下载到开发板,发现开发板的 LED 开始闪烁,当前是 1秒闪烁一次

uC-OS2 V2.93 STM32L476 移植:环境搭建篇,uC-OS2,stm32,uC-OS2,移植

uC-OS2 V2.93 STM32L476 移植:环境搭建篇,uC-OS2,stm32,uC-OS2,移植

下载 uC-OS2

  • 使用 git 克隆 : 下载地址 https://github.com/weston-embedded/uC-OS2.git

  • git clone https://github.com/weston-embedded/uC-OS2.git

uC-OS2 V2.93 STM32L476 移植:环境搭建篇,uC-OS2,stm32,uC-OS2,移植

  • 待续

小结

  • 本篇初步搭建 STM32 的裸机工程,裸机下 让 LED 闪烁起来

  • 添加基本的 LED 控制驱动 到工程

  • 接下来记录 uC-OS2 在 STM32 上的移植与配置文章来源地址https://www.toymoban.com/news/detail-626554.html

到了这里,关于uC-OS2 V2.93 STM32L476 移植:环境搭建篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • KEIL环境stm32移植FreeRTOS

    KEIL环境stm32移植FreeRTOS

    准备工作:keil软件,一份点灯代码,FreeRTOS源码。 1.FreeRTOS源码下载 直接在官网下载    FreeRTOS - Free RTOS Source Code Downloads, the official FreeRTOS zip file release download 2.解压资源 打开FreeRTOS文件夹 会用到的是Demo文件夹和Source文件夹。 Demo文件夹里面就是 FreeRTOS的相关例程,里面有各

    2024年02月03日
    浏览(13)
  • Keil环境下CANopenNode移植到STM32问题记录(一)---printf重定向问题

    Keil环境下CANopenNode移植到STM32问题记录(一)---printf重定向问题

    在直接将CANopenSTM32的示例工程直接移植到Keil环境下。 如果移植工程未实现printf函数重定向,则要注释掉log_printf下面的printf函数,使日志打印失效 在未在选项中勾选使用微库的时候,程序会卡死。调试会发现是卡死在了BKAP 0xAB处,网上搜索会有很多说明,是因为使用了print

    2024年02月13日
    浏览(9)
  • STM32L151C8T6 芯片数据手册

    STM32L151C8T6 芯片数据手册

    2024年02月12日
    浏览(15)
  • STM32L0 ADC使用HAL库关于校准问题的说明

    STM32L0 ADC使用HAL库关于校准问题的说明

    最近是有一个产品用到了ADC,使用的是STM32L051 芯片,使用 STM32CubeMX 生成的代码,本来以为简简单单,但是在调用 HAL ADC校准函数的时候遇到一个问题有点疑问,度娘一下也没有找到解答,还是经过翻阅了一些资料才得到答案,特此来记录一下。 我是矜辰所致,全网同名,尽

    2024年02月02日
    浏览(12)
  • STM32L4 HAL库通过串口通信改变PWM占空比

    STM32L4 HAL库通过串口通信改变PWM占空比

    使用串行通信的目的是为了让上位机能控制STM32来改变PWM的输出 这里用的是定时器TIM4的3通道,当然也可以改为其他的定时器,具体请参考手册 偷下懒,直接拿正点原子的例子程序修改了一下。 示例用的是UART1 引脚是PA9(TX),PA10(RX) 主要修改的地方在接收数据的部分,我用l

    2024年02月15日
    浏览(18)
  • 【STM32】基于HAL库建立自己的低功耗模式配置库(STM32L4系列低功耗所有配置汇总)

    【STM32】基于HAL库建立自己的低功耗模式配置库(STM32L4系列低功耗所有配置汇总)

    【STM32】基于HAL库建立自己的低功耗模式配置库(STM32L4系列低功耗所有配置汇总) 此文章是讨论将先前所有的低功耗配置功能整合起来的一个库(适用于STM32L4系列) 目前除了普通唤醒方式外 加入了UART唤醒和RTC唤醒配置 如果后续有更多唤醒加入(如I2C等 将直接在后续的文章

    2024年02月19日
    浏览(11)
  • STM32L051使用HAL库操作实例(14)- ADC采集电压

    STM32L051使用HAL库操作实例(14)- ADC采集电压

    目录 一、前言 二、ADC外设简要说明 三、STM32CubeMX配置(本文使用的STM32CubeMX版本为6.1.2) 1.MCU选型 2.时钟使能 3.外部时钟配置 4.串口配置 5.ADC引脚配置 6.配置STM32CubeMX生成工程文件 7.点击GENERATE CODE生成工程文件 四、工程源码 五、运行状态 一、前言 本文主要介绍通过HAL库搭建

    2024年01月16日
    浏览(15)
  • 用STlink烧录工具和搭配STM32 ST-LINK Utility软件烧录STM32L051的方法

    用STlink烧录工具和搭配STM32 ST-LINK Utility软件烧录STM32L051的方法

    用STlink烧录工具和搭配STM32 ST-LINK Utility软件烧录STM32L051的方法 1.下载安装软件 双击STM32 ST-LINK Utility v4.5.0.exe,按默认一直点下一步即可。 2.打开烧录软件 3.打开烧录代码 4.连接目标板 5.修改软件配置 6.重新连接目标板 7.点击烧录并校验 8.烧录校验成功 9.在烧录做以上动作之前

    2024年02月04日
    浏览(8)
  • 【STM32L496】使用HAL库实现SPI写入/读取数据(AD5421)

    【STM32L496】使用HAL库实现SPI写入/读取数据(AD5421)

    SPI协议详解(图文并茂+超详细) SPI超详细解析 【STM32笔记】HAL库中的SPI传输(可利用中断或DMA进行连续传输) AD5421是一款集成器件,设计用于环路供电型4-20mA智能发射器应用。AD5421在单芯片内提供如下特性和功能:16位DAC和电流放大器,用于对环路电流进行数字控制;用于

    2024年02月03日
    浏览(48)
  • RT-Thread STM32L433 Ali Starterkit BSP说明

    RT-Thread STM32L433 Ali Starterkit BSP说明

    本文档为STM32L433 Ali Starterkit Kit 提供的 BSP (板级支持包) 说明。 主要内容如下: 开发板资源介绍 BSP 快速上手 进阶使用方法 通过阅读快速上手章节开发者可以快速地上手该 BSP,将 RT-Thread 运行在开发板上。在进阶使用指南章节,将会介绍更多高级功能,帮助开发者利用 RT-T

    2024年02月05日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包