如何利用kei mdk自带ucos

本文详细介绍了如何在STM32上移植uCOS-III实时操作系统,包括选择合适的编译器(如KeilMDK)、创建工程、选择芯片型号、配置RTOS并设置中断向量表等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

u/COS-III之移植

首先下载STM32编译器软件,这里选择KeiL MDK.其它人也可以选择IAR、或者其它编译器软件:

Keil MDK软件下载:官方链接:https://www.keil.com/demo/eval/arm.htm

下载完后:

安装教程,不在说明。

首先打开软件,创建工程如图:


创建工程名称


创建完成会跳出一个让窗口,这个窗口是让你选择所用的芯片。

 

选择自己需要的芯片

 

如果没找到自己的芯片,点击工具栏那个绿色图。然后选择自己的芯片。

如果还是没有如下,在官方网找对应的芯片库。一般更新就会有的。


 

选择完成后会再跳出一个窗口这时候,在下面我们看到有一个ROTS(实时操作系统),点击就能看到了ucos III


注意:如果没有出现ROTS选项的话,退出创建工程,回到如下界面,点击Pack Instal蓝色图标出现图二界面,选择自己所需要的操作系统,这里我们选择Micrium ROTS 然后点击更新安装。安装完成后。重新回到上面步骤。


选择完毕后出现如下:



现在基本已经移植完毕。

注意:RTOS下面是uCOSIII的文件。

其中app_cfg.c是空文件,是你的app.c的头文件,不过我们一般都是用main.cmain.h...

cpu_cfg.h lib_cfg.g 是几个简单的CPULib的参数,基本不用修改。

os_cfg.h OS的裁剪配置文件,就是关闭一些你用不上的函数和功能块,例如消息队列Q你没用这个功能,那么QQdel,abort函数等,都能禁止,主要是减少代码大小用的。按需要修改

os_app_cfg.h  系统心跳频率,以及几个系统任务stat systick tmr idle的优先级,堆栈大小等的配置参数。按需要修改。

os_cpu.c.c没错,整个OS就这一个.c能让你修改,因为这就是所有的空钩子函数,你需要用到就填写代码好了,还有systick中断处理函数也在这里。

4 创建app.c添加到sourcegourp1 喜欢就单击改个名字不叫sourcegroup1..

  写上你的main函数,创建你几个任务。

  例如任务1创建任务232亮闪烁LED1, 3闪烁LED2

  但是你会发现uCOS没工作。

  uCOS工作,需要几个条件。

  1:启用systick定时器。

      OS_CPU_SysTickInit(9000);                              //72M下,8分频,1ms心跳的初始值。
       SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);     //
上面自带的初始化频率是72M,这里选择外部时钟  HCLK/8

     然后OSInit();  创建主任务,OSStart();   

2 中断向量映射

    OS需要用到2个中断,一个是PendSV_handler,一个是SysTick_handler

    OS自带了这2个中断函数,但是名字是OS_CPU_PendSV_handler一个是OS_CPU_SysTick_handler.

    以前的做法之一是把后面的改成前面的名字。但是这个新版本os_cpu_a.s是禁止修改的,说明keil不建议这样做

    你如果不想用系统的,就得自己写2个同名函数,但是没必要。

    那么我们直接修改中断向量表文件,把startup_stm32f10x_hd.s 里面的PendSV_handler全替换成OS_CPU_PendSV_handler

    SysTick_handler全替换成OS_CPU_SysTick_handler这个目的和结果和改名是一样的。

    不同芯片的中断相连表文件会不同,如果不用OSstm标准库以前带了个stm32f10x_it.c文件,里面就是几个系统中断的同名函数。

 


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值