打印
[其他ST产品]

ucos ii 移植到stm32f103ze上

[复制链接]
898|41
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
采用别人移植好的代码。即所需函数已写好。
准备工作:
1、ucos ii源码
2、stm32库
步骤:
1、建工程。
工程目录为:

2、配置ucos ii
在os_cfg.h中配置相关功能
3、修改相关函数
ucos ii需要一个定时器,在stm32中采用systick定时器,因此需要配置systick定时器
void SysTick_Configuration(void)
{
//关计数
    SysTick_CounterCmd(SysTick_Counter_Disable);
    //关中断
    SysTick_ITConfig(DISABLE);
//配置SysTick的时钟源  此时为AHB时钟
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);
//配置指系统句柄的优先级(Systick句柄  3号抢占优先级,0号子优先级)
NVIC_SystemHandlerPriorityConfig(SystemHandler_SysTick, 3, 0);
//设置重载值1ms中断 HCLK=8M时
SysTick_SetReload(800000);  
//使能Systick中断
SysTick_ITConfig(ENABLE);
    //使能Systick计数即启动计数
SysTick_CounterCmd(SysTick_Counter_Enable);
}

需要systick定时器中断,在中断里面调用ucos的相关函数,以此来作为ucos的时钟。
void SysTickHandler(void)
{
OS_CPU_SR  cpu_sr;
// OS_ENTER_CRITICAL();  //保存全局中断标志,关总中断
//   OSIntNesting++;
//   OS_EXIT_CRITICAL();  //恢复全局中断标志
OSIntEnter();
OSTimeTick();
OSIntExit();        
}


配置pendsv函数
ucos通过pendsv来实现任务调试,因此需要在启动代码中更改pendsv
将原来的PendSV改为
OSPendSV
否则,系统会卡在
OSStartHang
    B       OSStartHang                                         ; Should never get here

处。


使用特权

评论回复
沙发
两只袜子|  楼主 | 2023-8-3 16:37 | 只看该作者
4、includes.h的编写


#ifndef  __INCLUDES_H__
#define  __INCLUDES_H__

#define   DEF_FALSE 0
#define   DEF_TRUE  1

#include    "ucos_ii.h"
#include "os_cpu.h"
#include "bsp.h"
#include    "app.h"
#include    "app_cfg.h"

#include    "stm32f10x_conf.h"
#include   



#if (uC_PROBE_OS_PLUGIN > 0)
#include   
#endif

#if (uC_PROBE_COM_MODULE > 0)
#include   

#if (PROBE_COM_METHOD_RS232 > 0)
#include   
#endif
#endif



#endif

5、bsp函数配置
stm32的相关硬件配置包括RCC、systick、NVIC、等,需要注意的是,systick定时器必须在OS启动后才能启动,否则,系统会崩溃。(这里有疑问,在OSStart执行前使能systick中断,系统 还是能运行)
6、编写相关任务函数。


总结,在移植UCOS时,需要编写的函数文件有includes.h、os_cpu.c、os_cpu_a.asm、os_cpu.h、需要配置的文件有os_cgf.h、中断和启动代码。

使用特权

评论回复
板凳
caigang13| | 2023-8-3 18:01 | 只看该作者
第一个学习和使用的操作系统便是ucos-II

使用特权

评论回复
地板
mollylawrence| | 2023-8-7 07:47 | 只看该作者
参考 uC/OS-II 的移植指南和 STM32F103ZE 的相关文档

使用特权

评论回复
5
maudlu| | 2023-8-7 08:06 | 只看该作者
stm32上移植ucos-ii出现硬件错误 OSStartHang

使用特权

评论回复
6
jonas222| | 2023-8-7 19:27 | 只看该作者
sqlite怎样移植到ministm32f103开发板的ucos操作系统

使用特权

评论回复
7
cemaj| | 2023-8-7 20:01 | 只看该作者
建议参考 uC/OS-II 的官方文档和移植指南,以及 STM32F103ZE 的参考手册和开发工具的文档

使用特权

评论回复
8
nomomy| | 2023-8-7 21:55 | 只看该作者
从 Micrium 官方网站下载 uC/OS-II 的源代码和文档。 获取到适用于 STM32F103ZE 的版本。

使用特权

评论回复
9
mnynt121| | 2023-8-7 22:25 | 只看该作者
如何在 ucos 中使用stm32的usb库

使用特权

评论回复
10
youtome| | 2023-8-7 22:56 | 只看该作者
根据 STM32F103ZE 的硬件特性,在 uC/OS-II 的配置文件中进行相应的配置。这包括配置时钟频率、堆栈大小、中断优先级等。

使用特权

评论回复
11
bestwell| | 2023-8-9 17:16 | 只看该作者
uC/OS-II 使用中断来处理任务切换和时钟节拍等功能。在移植过程中,需要将中断向量表正确配置到正确的地址,并将 uC/OS-II 所需的中断优先级配置为适当的值。

使用特权

评论回复
12
belindagraham| | 2023-8-9 17:38 | 只看该作者
在 uC/OS-II 的框架下,编写应用程序代码。这包括创建任务、使用信号量、消息队列等。

使用特权

评论回复
13
yangxiaor520| | 2023-8-9 19:07 | 只看该作者
F103现在性价比不高了,太贵了。

使用特权

评论回复
14
Stahan| | 2023-8-12 00:00 | 只看该作者
yangxiaor520 发表于 2023-8-9 19:07
F103现在性价比不高了,太贵了。

这价格还可以啊

使用特权

评论回复
15
bartonalfred| | 2023-8-14 10:04 | 只看该作者
stm32f103rc与stm32f103ze程序互通吗

使用特权

评论回复
16
sesefadou| | 2023-8-14 12:23 | 只看该作者
移植 uC/OS-II 是一项复杂的任务,需要对硬件和操作系统有深入的理解。

使用特权

评论回复
17
tabmone| | 2023-8-14 13:24 | 只看该作者
堆栈足够大以容纳 uC/OS-II 的任务堆栈和其他变量。

使用特权

评论回复
18
jkl21| | 2023-8-14 17:46 | 只看该作者
uCOS-II移植STM32如何进入休眠低功耗状态?

使用特权

评论回复
19
pl202| | 2023-8-14 20:01 | 只看该作者
在将UCOS-II移植到STM32F103ZE上时,需要对UCOS-II源码进行修改和烧写,以适应STM32F103ZE的硬件平台和软件环境。

使用特权

评论回复
20
wuhany| | 2023-8-14 20:24 | 只看该作者
没看出来要问什么问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1890

主题

6533

帖子

8

粉丝