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

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

3天内不再提示

UCOS2_STM32F1移植详细过程 (二)

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

扫码添加小助手

加入工程师交流群

Ⅰ、概述

打开上一篇文章新建的工程,是提取的ST标准库里面源代码文件和UCOS工程包源代码文件。下载过的朋友可能会知道,直接编译那个工程会有大片的错误和警告,原因在于那个工程是没有经过修改源代码的工程,接下来就是讲述一步一步修改源代码的过程(也就是所谓的移植过程)。

该文接着上一篇文章来讲述“UCOS移植详细过程”,上一篇文章是讲述准备工作、文件提取并整理、新建UCOS工程等工作。该文讲述UCOS移植过程中修改部分源代码(底层代码、系统配置等)工作。

Ⅱ、ST芯片配置

配置ST型号的方法有两种:使用标准库源代码配置和工程配置

1.源代码配置

打开工程 -> 打开源代码“stm32f10x.h”文件。

使用F103大容量的芯片:取消第68行STM32F10X_MD的注释,这里需要和我们的启动代码匹配startup_stm32f10x_hd.s。

使用标准外设库:取消第105行USE_STDPERIPH_DRIVER的注释,使用标准外设库,我们使用stm32f10x_conf.h文件来配置使用到的外设库。

2.工程配置

打开工程-> Project -> Options for Target -> C/C++,在该选项预定义里面添加STM32F10X_MD,USE_STDPERIPH_DRIVER这两个宏定义即可。

注意:两种方法用一种即可。效果图如下:

Ⅲ、配置系统滴答时钟

系统的运行离不开系统滴答,就像我前面说过的:系统滴答的作用,就是驱动整个系统工作的心脏,如果没有了它,就等于人没有了心跳。

1.初始化滴答

我们使用ST的滴答SysTick来配置作为操作系统的滴答时钟,芯片SysTick是属于内核(Cortex-M3)的一部分,所以,在初始化的时候是调用CM3里面的源代码(SysTick_Config函数)。

这里说明一下,只要使用Cortex-M3内核的芯片都有这个功能,可以说SysTick是专门为系统而设计的。


系统滴答配置如上图,位于app_cfg.c源文件下面。

2.滴答中断配置

中断函数需要调用系统相关的函数,也就是系统进行滴答相关的函数,这里是规定这么调用的。

Ⅳ、裁剪系统(配置os_cfg.h)

对于我们常说的系统可裁剪,其实就是对系统某些功能打开和关闭,使用到的功能才打开,不使用的功能就关闭(即使能和失能),这个文件就集中在os_cfg.h文件里面。

这里先说一下重要的几个选项:

1.最低优先级OS_LOWEST_PRIO

这个与我们配置任务优先级有关系,最低优先级任务配置的最大值。我们所说的任务优先级关系是:优先级越小,数值越大; 相反,优先级越大,数值越小。

位于os_cfg.h文件第39行:

#define OS_LOWEST_PRIO 63

2.系统每秒滴答数OS_TICKS_PER_SEC

这个宏定义的意思就是说,系统每秒钟滴答多少次,它与系统延时(OSTimeDly)关系比较重要,我们的例子中OS_TICKS_PER_SEC等于100,调用OSTimeDly(100);相当于的延时100个滴答,即延时1秒的意思。

位于os_cfg.h文件第51行:

#define OS_TICKS_PER_SEC 100

3.任务堆栈大小OS_TASK_xxx_STK_SIZE

这个几个宏定义在使用相应功能的时候有用,如果RAM资源有限,这个任务堆栈的大小最好根据任务来评估一下,资源有限时不要太大,当然也不能小于程序正常运行。

位于os_cfg.h文件第55 - 57行:

#define OS_TASK_TMR_STK_SIZE 128

#define OS_TASK_STAT_STK_SIZE 128

#define OS_TASK_IDLE_STK_SIZE 128

4.其他

还有很多与系统其他资源相关的配置,正常的情况下是需要的时候才开启,不用尽量关闭。一是节约资源,二是减少编译时间。后期我会将中文注释在后面。

Ⅴ、下载

我将移植完成,建立了3个简单任务的例程放在360云盘供大家下载与参考:

https://yunpan.cn/cRIpR5bwHMCCY访问密码 3885

UCOS2基于STM32F107的软件工程包(官网原版):

Micrium官网下载地址(需要账号):

https://www.micrium.com/download/micrium_stm32f107_ucos-ii

我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

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

    关注

    0

    文章

    49

    浏览量

    16292
  • ucos2
    +关注

    关注

    0

    文章

    15

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

    深入解析C8051F000/1/2/5/6/7与C8051F010/1/2/5/6/7混合信号MCU

    深入解析C8051F000/1/2/5/6/7与C8051F010/1/2/5/6/7混合信号M
    的头像 发表于 04-15 10:30 111次阅读

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

    。想着就动手,本文记录了APM32F4移植ThreadX RTOS的过程,供各位做个参考,权当抛砖引玉了。
    的头像 发表于 04-02 11:30 650次阅读
    基于极海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 561次阅读

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

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

    M1F SMAF整流极管规格书

    M1F SMAF整流极管,电流:1A 50V
    发表于 10-30 16:50 0次下载

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

    STMicroelectronics STM32MP257F-EV1评估板是用于STM32MP257FAI3的开发平台,采用Arm® Cortex®-A35和M33内核。它支持用于主处理器(双核
    的头像 发表于 10-20 11:49 1515次阅读
    <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 1366次阅读
    <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 2082次阅读
    机智云配网教程第三期:单片机代码<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 1340次阅读
    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次下载

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

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