0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

UCOS2_STM32F1移植详细过程 (四)

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-04-07 11:38 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Ⅰ、概述

上一篇文章是讲述uC/OS-II Ports下面os_cpu_a.asm、os_cpu_c.c和os_cpu.h文件底层端口代码的移植(修改)和说明,接着上一篇文章来讲述关于UCOS移植应用部分的代码。

该文主要针对uC/OS-II 上层应用(配置OS、新建任务等)来讲述。

请下载“UCOS2_STM32F1_3个简单任务”作为参考工程。

Ⅱ、下载(请到我博客下载)

笔者将F0、F1、F3、F4移植到最新UCOS2.92上。移植好的、独立的4个工程供大家下载学习、研究。建立的任务都是一样的,只是针对芯片内核不同,Ports目录下相关的源代码有差异、标准外设库也存在差异。每一个系列针对不同型号芯片只需要适当改一下“型号”就行了。

提供下载的软件工程都是在板子上运行,保证没问题才上传至360云盘。下载提供下载的软件工程是在上一篇文章的基础上增加了os_cfg.h系统配置中文注释,包含了STM32F0、F1、F3、F4系列独立的软件工程。

UCOS2.92_STM32(F0、1、3、4)3个简单任务(增加os_cfg中文注释)

360云盘下载地址:

https://yunpan.cn/cBsmgInzX856G访问密码 4242

UCOS源代码工程

官网下载(需要账号):

https://www.micrium.com/downloadcenter/download-results/?searchterm=hm-stmicroelectronics&supported=true

360云盘下载(定期更新至最新):

https://yunpan.cn/cRzcf8eSacEhE访问密码 1235

ST标准外设库

官网下载(需要账号):

http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software.html?querycriteria=productId=SC961

360云盘下载(定期更新至最新):

https://yunpan.cn/cSaCpGejMSfr8访问密码 60ae

参考资料:

https://yunpan.cn/cRCdSt73GwT6j访问密码 499e

Ⅲ、工程目录结构说明


文件结构和工程目录结构对应关系如上图所示。

第一类(标准外设库):

Startup Code:启动代码

STM32F10x_StdPeriph_Driver:标准外设库库驱动

CMSIS:标准接口

第二类(µC/OS-II实时内核):

uC/OS-II Source:内核源代码(与处理器无关)

uC/OS-II Ports:OS端口底层代码(与处理器、编译平台有关)

第三类(用户应用):

Bsp:应用底层代码(初始化、驱动等)

App:应用实现代码(配置OS、应用等)

该文主要针对第三类APP进行移植描述,包括os_cfg.h、app_cfg.c、app_task.c文件等。

Ⅳ、配置os_cfg.h文件

os_cfg顾名思义,它就是系统配置的意思,它位于工程App目录结构下面,主要是系统上层配置和应用。

1.各项参数


各项参数里面针对初学者,主要有三个重要的参数,其他参数暂时可以不用深入理解。

三个重要的参数:

#define OS_LOWEST_PRIO 63u

#define OS_MAX_TASKS 10u

#define OS_TICKS_PER_SEC 100u

这三个参数需要重点理解,详情可参看中文注释。

对于HOOKS函数是我们上一篇文章讲述os_cpu_c.c里面相关的函数,这里OS_CPU_HOOKS_EN会被系统调用,将其定义为使能。

关于OS_DEBUG_EN,我们不使用系统自带的调试功能,就不使能。

2.任务堆栈大小


这里和我们自己建立的任务堆栈差不多的意思,将会在下面讲述app_cfg讲解。

3.任务管理


任务管理主要是针对uC/OS-II Source结构下os_task.c文件里面的源代码,os_task.c文件里面就包含了任务建立、删除、挂起等关于任务的一些函数接口,我们需要使用那些功能,这里就需要打开。

如创建任务:

#define OS_TASK_CREATE_EN 0u

#define OS_TASK_CREATE_EXT_EN 1u

我们使用扩展方式创建任务,也就是升级版本创建任务的函数。

4.系统其他功能


了解过UOCS系统的人可能知道,UCOS系统有多种功能,也就是可以建立多任务之间通信的功能,每一种功能对应一个源代码文件。

从上图可以看得出来,每一种功能够有使能全局的宏定义,只有使能了全局宏定义才可以使用里面的功能,里面各个模块(函数接口)也是配置了使用和不使用的的宏定义。

关于UCOS2更多功能,我会在后期整理关于UCOS系统相关的知识,也就是这里所说的其他功能,敬请关注微信等待,后期第一时间在微信发布消息。

Ⅴ、配置app_cfg.h、.c文件

app_cfg.c文件位于工程App目录结构下面,主要用于系统应用的配置。

1.任务优先级、堆栈


我们建立任务需要对任务优先级和堆栈进行一个定义,它位于app_cfg.h文件下面。

这里任务数和最小优先级数值需要和os_cfg.h文件的宏定义对应才行。

2.系统滴答


我们在前两篇文章讲述过关于系统滴答的,但讲的是屏蔽Micrium官网提供的OS_CPU_SysTick配置(位于os_cpu_c.c文件下)。

这里是兼容ST(也是M3内核标准的)的函数接口,所以就不使用Micrium官网提供的OS_CPU_SysTick配置。

3.建立任务


我们建立任务就是在系统里面分配一定的空间,给我们的应用提供一个函数接口(AppTask1、AppTask2、AppTask3)。我们一旦启动了系统(开始任务),相关的函数就会逐步执行。

Ⅶ、建立任务(app_task.c)


我们使用操作系统的最终目的还是需要执行我们的应用,我们这里简历了3个简单的应用(任务),位于app_task.c源文件下面。

应用比较简单,就是变化LED,至于OSTimeDly(50)函数,可能初学者不是很理解,其实就是延时50个滴答。

我们在os_cfg.h文件中定义#define OS_TICKS_PER_SEC 100u,也就是每秒100个滴答,OSTimeDly(50)就是延时了0.5秒的意思。

Ⅷ、文件比较工具

对于前面几篇文章,可能有些人比较关注我们移植的过程中到底修改了那些文件,这里就给大家推荐一下“文件比较工具”,网上有很多相关的工具,可以自己搜索下载。也可以到我360云盘下载:

https://yunpan.cn/cBsYfRw3Iiut3访问密码 7155

这里我们拿Beyond Compare为例,给大家看一下效果:

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 移植
    +关注

    关注

    1

    文章

    417

    浏览量

    29534
  • STM32F10
    +关注

    关注

    0

    文章

    49

    浏览量

    16299
  • ucos2
    +关注

    关注

    0

    文章

    15

    浏览量

    3716
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深入剖析STM32L010F4/K4:低功耗32位MCU的卓越之选

    的一款低功耗32位MCU,凭借其出色的性能和丰富的功能,在众多应用场景中展现出了强大的竞争力。本文将对STM32L010F4/K4进行详细的剖析,为电子工程师们在设计过程中提供有价值的参考。 文件下载
    的头像 发表于 04-15 15:40 242次阅读

    基于极海APM32F4的Azure RTOS ThreadX移植过程分享

    。想着就动手,本文记录了APM32F4移植ThreadX RTOS的过程,供各位做个参考,权当抛砖引玉了。
    的头像 发表于 04-02 11:30 823次阅读
    基于极海APM32<b class='flag-5'>F</b>4的Azure RTOS ThreadX<b class='flag-5'>移植</b><b class='flag-5'>过程</b>分享

    STM32F042x4/STM32F042x6微控制器深度解析:特性、应用与设计要点

    STM32F042x4/STM32F042x6微控制器深度解析:特性、应用与设计要点 在嵌入式系统开发领域,微控制器的选择至关重要,它直接影响着产品的性能、功能和成本。今天,我们就来深入探讨一下意法
    的头像 发表于 03-19 17:15 626次阅读

    SN74LVC157A-Q1:汽车级21数据选择器/多路复用器的详细解析

    SN74LVC157A-Q1:汽车级21数据选择器/多路复用器的详细解析 作为一名电子工程师,在设计
    的头像 发表于 01-15 14:55 1051次阅读

    LAT1171+STM32F745 USART1 Bootloader 失败原因分析与解决

    使用 STM32F745 进行产品开发的时候,出现了使用 STM32CubeProgramer 无法通过 USART1 Bootloader 进行程序升级的问题。为了解决客户的问题,我在 NUCLEO-
    发表于 01-11 17:33 0次下载

    STM32MP257F-EV1评估板深度解析与技术应用指南

    STMicroelectronics STM32MP257F-EV1评估板是用于STM32MP257FAI3的开发平台,采用Arm® Cortex®-A35和M33内核。它支持用于主处理器(双核
    的头像 发表于 10-20 11:49 1648次阅读
    <b class='flag-5'>STM32MP257F-EV1</b>评估板深度解析与技术应用指南

    移植 rt_vsnprintf_full.c 替换掉 原来的 rt_vsnprintf 之后 打印后出现死机,什么原因导致的?

    1.环境: RTT4.1.1 STM32F407 移植代码链接:https://blog.csdn.net/Porter_007/article/details/140172740 移植
    发表于 10-09 06:55

    STM32+esp8266连接机智云,上传温湿度数据并控制继电器开关(平台配置、代码生成、代码移植

    本教程将详细介绍如何将STM32微控制器与ESP8266Wi-Fi模块连接到机智云平台,实现温湿度数据的上传与继电器的远程控制。通过此过程,您将学会如何配置机智云平台,烧录ESP8266固件,
    的头像 发表于 07-15 18:54 1442次阅读
    <b class='flag-5'>STM32</b>+esp8266连接机智云,上传温湿度数据并控制继电器开关(平台配置、代码生成、代码<b class='flag-5'>移植</b>)

    STM32F10xxx参考手册

    STM32F1XX数据手册中文版
    发表于 07-10 16:09 10次下载

    机智云配网教程第三期:单片机代码移植实战

    stm32f103c8t6,WiFi模块:ESP-01s,下载器:ST-LINK2.软件:keil5的工程文件模板,mcu代码包代码资源:未移植移植后(注:本文是基于
    的头像 发表于 07-01 17:32 2128次阅读
    机智云配网教程第三期:单片机代码<b class='flag-5'>移植</b>实战

    Analog Devices / Maxim Integrated MAX96714/F/R单GMSL2/1转CSI-2解串器数据手册

    Analog Devices MAX96714/F/R单GMSL2/1转CSI-2解串器可将GMSL™2/
    的头像 发表于 06-12 11:21 1373次阅读
    Analog Devices / Maxim Integrated MAX96714/<b class='flag-5'>F</b>/R单GMSL<b class='flag-5'>2</b>/<b class='flag-5'>1</b>转CSI-<b class='flag-5'>2</b>解串器数据手册

    STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4编程手册

    电子发烧友网站提供《STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4编程手册.pdf》资料免费下载
    发表于 06-06 17:06 17次下载

    STM32F40xxx和STM32f41xx flash编程手册

    PM0081_STM32F40xxx and STM32F41xxx单片机编程手册
    发表于 06-06 17:02 8次下载

    MAX96724/F/R通道 GMSL2/1 到 CSI-2 反串行器技术手册

    MAX96724/F/R 反串行器可以将路 GMSL ^™^ 2/1 输入转换为 12
    的头像 发表于 05-27 18:21 2208次阅读
    MAX96724/<b class='flag-5'>F</b>/R<b class='flag-5'>四</b>通道 GMSL<b class='flag-5'>2</b>/<b class='flag-5'>1</b> 到 CSI-<b class='flag-5'>2</b> 反串行器技术手册

    STM32与机智云连接实现步骤与技巧(下篇):机智云代码移植与优化

    机智云SDK,集成API,实现数据传输和设备状态同步,并分享移植过程中的常见问题及解决方法,帮助开发者顺利实现云端连接。机智云相关代码开始移植相关移植步骤
    的头像 发表于 05-23 18:10 1348次阅读
    <b class='flag-5'>STM32</b>与机智云连接实现步骤与技巧(下篇):机智云代码<b class='flag-5'>移植</b>与优化