RTX移植

下面以Xplain STM32(使用STM32F103ZET6 CPU)开发板为例,将RTX移植到该板上运行.为了能让刚接触这个系统的人了解整个移植过程,会重新建立一个工程,将所有的源码(包括RTX内核)添加到工程中,而不使用RTX库的形式.

1. 新建一文件夹(rtx-stm32),内容如下:

-- keil包含keil的工程文件

-- misc包含连接脚本文件

-- si是source insight工程文件

--src包含源代码:

---  cm3    CPU相关文件

---  stm32 针对stm32 CPU的文件

---  rtx        操作系统内核

---  user    应用程序

新建一个工程,将工程文件保存到keil文件夹下.

2. 给工程添加源代码

将cmsis的两个文件core_cm3.c, core_cm3.h  copy到cm3下(可在其他工程找).

把STM32的启动代码,库源码copy到stm32文件夹下.

将RTX源码Keil\ARM\RL\RTX\SRC\CM   copy到rtx文件夹下,可以新建个cm文件夹,表明内核源码是针对cm3的.

从Keil\ARM\RV31\INC, Keil\ARM\RL\RTX\Config下分别copy RTL.h,RTX_lib.c和RTX_Conf_CM.c文件到rtx文件夹下.RTL_lib.c是一操作系统底层相关文件,RTX_Conf_CM.c是操作系统配置文件.

user下新建一个main.c文件,包含应用程序.具体内容可参考\Keil\ARM\RL\RTX\Examples文件夹下的例子.

工程中文件夹结构和添加的文件如下:

注意不要将RTX_lib.c添加到工程中,否则编译有错,该文件被包含在其他文件中.

3. 工程属性设置

Targe页面如下: operating system要先为None, 勾选Use MicroLib选项

C/C++页面如下:

定义宏USE_STDPERIPH_DRIVER=1, STM32F10X_HD=1, 这两个宏是与STM32源码相关的,表示 1. 要使用STM32提供的外设驱动, 2. CPU类型.

要勾选上No Auto Includes, 如果不勾的话,自动将:

Keil\ARM\RV31\INC 
Keil\ARM\CMSIS\Include 
Keil\ARM\Inc\ST\STM32F10x

添加到头文件的搜索路径中,这几个路径下包含的头文件与我们工程中的有些头文件一样,有些混乱,所以不要自动添加头文件的搜索路径,需要的时候自己添加.

Includes Paths中包含的路径有:

D:\Keil\ARM\ARMCC\include;..\src\rtx;..\src\cm3;..\src\user;..\src\cm3\stm32\Libraries\Inc;..\src\cm3\stm32\Starup

Asm页面如下:

将No Auto Includes选项勾上就行了

4. 将stm32f10x_it.c文件中的SVC_Handler, SysTick_Handler函数屏蔽,这两个函数在HAL_CM3.c中已定义好.

经过这4步,rtx可以在Xplain STM32板上跑起来了.

时间: 2024-10-08 20:04:49

RTX移植的相关文章

emWin5.24 VS2008模拟LCD12864 stm32 RTX移植 【worldsing笔记】

? emWin for 12864 并口移植 源代码下载:RTX_emWin5.24_Keil_VS2008-20141122.zip ? 硬件环境: CPU: stm32f103ve LCD:st7920控制器 12864 并口 ? 软件环境: Keil MDK4.74 VS2008 emWin5.24 ? 使用rtx操作系统 ? ? 1.实现emWin5.24在keil 和vs2008同一代码的工程,vs2008目录实现在FMC的官方模拟器上的模拟,Keil目录实现在stm32f103ve

第6章 RTX 操作系统源码方式移植

本章教程为大家将介绍 RTX 操作系统源码方式移植,移植工作比较简单,只需要用户添加需要的源码文件即可,不需要做任何的底层工作,也不需要用户做任何修改. 源码方式移植 RTX 系统 准备好工程模板后,就可以开始移植了. 首先要做的就是将所有需要的源码文件放到工程模板里面.下面分五步跟大家进行说明,当然,不限制必须使用下面的方法添加源码到工程,只要将需要的文件添加到工程模板即可.? 第 1 步:在工程模板创建 RTX 文件夹 文件 RTL.h 和 RTX_Config.h 在 MDK 安装目录中的

RTX——第19章 SVC 中断方式调用用户函数(后期补历程)

本章节为大家讲解如何采用 SVC 中断方式调用用户函数. 当用户将 RTX 任务设置为工作在非特权级模式时,任务中是不允许访问特权级寄存器的,这个时候使用 SVC 中断,此问题就迎刃而解了. SVC 功能介绍SVC 用于产生系统函数的调用请求.例如,操作系统通常不让用户程序直接访问硬件,而是通过提供一些系统服务函数,让用户程序使用 SVC 发出对系统服务函数的呼叫请求,以这种方法调用它们来间接访问硬件.因此,当用户程序想要控制特定的硬件时,它就要产生一个 SVC 异常,然后操作系统提供的SVC

ARM RTX操作系统—Overview—Product Specification

Technorati Tags: [版权说明: 本文是基于本人亲自写作而成,过程中了基于相关的互联网材料或者书籍,如果有原文段落的引用,都会在后面标注为参考材料. 任何转载,必须标注来自本文. 任何出版,必须得到本人许可] RTX内核library可以使用在以下ARM设备上: ARM7 and ARM9 Cortex-M0/M1, Cortex-M3, Cortex-M4, and Cortex-R4 Cortex-M处理器拥有增强的RTOS特性.这些特性使得RTX的内核移植过程更加自动化和低错

RTX基础教程目录

6.第6章 RTX 操作系统源码方式移植 7.RTX--第7章 任务管理 8.RTX--第8章 任务优先级修改 9.RTX--第9章 任务运行在特权级或非特权级模式 10.RTX--第10章 任务调度-抢占式.时间片和合作式 11.RTX--第11章 临界段,任务锁和中断锁 12.RTX--第12章 系统时钟节拍和时间管理 13.RTX--第13章 事件标志组 14.RTX--第14章 信号量 15.RTX--第15章 互斥信号量 16.RTX--第16章 消息邮箱 17.RTX--第17章 定

【安富莱】RTX嵌入式操作系统教程发布,支持F103,F407和F429,含81个配套例程(2017-10-17)

前言说明:1. 首先感谢大家对我们安富莱电子一年来的支持,2016年我们会再接再厉推出更好的教程. 2. 估计也有网友会问RTX的优势在那里,针对这个问题,教程中第一章分为6条专门回答了这个问题,有兴趣可以看看.    这些优势里面最欣赏的还是这条,基本KEIL在每个中间件里面都说了类似的话,    The library handles the low-level USB requests without the need to write the hardware layer code.  

基于 Keil MDK 移植 RT-Thread Nano

后文rtt代表RT-Thread 在官网公众号中,看到rtt发布了rtt nano,这个就很轻量级的rtos内核,把多余的驱动都裁剪了,因此移植工作量小,可以哪来学习一番,体验rtt之美 rtt现在也集成到cubemx5.0以上的平台,类似于freertos中间件,这个做法,倒是有点类似于大厂的风格了,看好rtt. 在keil5中,有两种方法可以移植rtt nano.前提条件是:cubemx生成一个最小的裸机led系统.MRTE的方法,1.这个需要下载pack包RealThread::RT-Th

【Windows10 IoT开发系列】API 移植工具

原文:[Windows10 IoT开发系列]API 移植工具 Windows 10 IoT Core 中是否提供你的当前 Win32 应用程序或库所依赖的 API? 如果不提供,是否存在可使用的等效 API? 此工具可以为你回答这些问题,并协助你将你的当前 Win32 应用程序和库迁移到 Windows IoT Core. Windows 10 IoT 核心版 API 移植工具可在 ms-iot/iot-utilities github 存储库中找到.下载存储库 zip 并将 IoTAPIPor

LEDAPS1.3.0版本移植到windows平台----HuCsm云掩膜模块

这个是2012年左右放在百度空间的,谁知百度空间关闭...转移到博客园. 最近项目用到3.1.2版本的LEDAPS,新版本的使用情况会在后续文章中慢慢丰富. HuCsm是将LEDAPS项目中的TM/ETM+大气校正流程系列算法中的云掩膜模块由linux系统移植到windows下的产物,代码本身改动不大,使用接口不变. 包含文件: HuCsm.exe hd423m.dll hm423m.dll 编译程序需要包含的静态库有: gctp.lib hdfeos.lib hd423m.lib hm423m