最近工作繁忙,一直没有时间好好研究LPC54114开发板,很不好意思,后面尽量多抽出时间带大家玩转LPC54114,这次带来RTX系统教程,后面会以RTX为主玩转LPC54114。RTX操作系统是一款优秀的实时性操作,尤其在M3和M4内核实时性特别好。其优点就不多介绍,大家可以自己查找相关资料。下面介绍如何移植RTX到LPC54114上面。 对于RTX操作系统的移植有两种方法,一种是RTX系统源码移植,一种是RTX系统库移植,相对来说后者比较简单,我个人更喜欢源码移植,为了让大家更容易入门,我先介绍后者移植方法,如果大家想要系统源码移植步骤,我后面再补上。 步骤1:选择一个模板,本次我们选择SDK_2.2_LPCXpresso54114\boards\lpcxpresso54114\driver_examples\gpio\led_output作为模板,打开工程,设置如下图所示:
步骤2:添加RTX 系统的配置文件, 配置文件在MDK的安装目录Keil_v5\ARM\RL\RTX\Config下面,文件名为 RTX_Conf_CM.c,将这个文件复制到 MDK 工程的 SDK_2.2_LPCXpresso54114\boards\lpcxpresso54114\driver_examples\gpio\led_output 文件夹下面,并添加到MDK 工程上
通过上面两步,我们的RTX 操作系统的移植就完成了,就是这么简单。 下面如图所示就是RTX配置
具体配置说明如下 Task Configuration Number of concurrent running tasks
参数范围 0 – 250
表示同时运行的最大任务数,这个数值一定要大于等于用户实际创建的任务数,空闲任务不包含
在这个里面。比如当前的数值是 6,就表示用户最多可以创建 6 个任务。
Number of tasks with user-provided stack
参数范围 0 – 250
表示自定义任务堆栈的任务数,如果这个参数定义为 0 的话,表示所有的任务都是使用的配置向导里面第三个参数 Task statck size 大小。 比如:
Number of concurrent running tasks = 5
Number of tasks with user-provided stack = 0
表示允许用户创建 5 个任务,所有的 5 个任务都是分配第三个参数 Task statck size 大小的任务堆栈空间。
Number of concurrent running tasks = 5
Number of tasks with user-provided stack = 3
表示允许用户创建 5 个任务,其中 3 个任务是用户自定义任务堆栈大小,另外 2 个任务是用的第三个参数 Task statck size 大小的任务堆栈空间。 Task statck size
表示系统分配的任务堆栈大小,单位字节。
Check for the stack overflow
选择是否使能任务堆栈监测,选上单选框表示使能,取消单选框表示禁能。
Run in privileged mode
选择是否使能特权级模式,选上单选框表示使能任务工作在特权级模式,取消单选框表示任务工作在非特权级模式。
Tick Timer Configuration
Hardware timer
Core SysTick 表示选择系统滴答定时器,因为 M3/M4 内核带有滴答定时器,一般都是选用滴答定时器作为系统时钟节拍。
Peripheral Timer 表示使用外设定时器。
Timer clock value
表示定时器主频,单位 Hz。
Timer tick value
表示系统时钟节拍周期,单位 us。
System Configuration
Round-Robin Task switching
选择是否使能时间片调度,选上单选框表示使能时间片调度,取消单选框表示不使用时间片调度。
Round-Robin Timeout [ticks]
范围 1 – 1000。
表示时间片的大小,单位是系统时钟节拍个数。
Number of user timers 表示用户定时器个数,即软定时器个数。
ISR FIFO Queue size
表示 ISR FIFO 队列大小。 中断服务程序中调用以 isr_ 开头的函数时,会将请求类型存到此缓冲中。
范围 1 – 250。
以上就是RTX基本的配置信息。下一节讲解如何使用RTX在LPC54114上面。
|