(1)在MCUXpresso编译器上移植uCOS-II

一、准备工具

  1. MCUXpresso编译器软件;
  2. LCP1768单片机;
  3. 下载器J-Link;
  4. 基于LPC1768单片机的官方uCOS-II例程,下载链接:www.micrium.com。

二、准备移植

  1. uCOS资源下载:

  去uCOS官网下载与单片机匹配的uCOS-II例程,我使用的是LPC1768单片机,具体操作如下图所示。

  ①进入uCOS的官方网站,点击-->Downloads

  ②根据单片机型号,找到对应的资源,我选择的是LPC1768单片机:

图二  ③选择基于uCOS-II系统的工程进行下载,下载前需要登录个人账号,没有的请根据引导自行注册:

  ④下载完成后进行解压缩:

 

  ⑤工程打开所示:

  ⑥从展开的工程目录可以看到该工程支持三种编译器,分别是IAR(6.x版本)、MDK(4.x版本)和TrueSTUDIO(3.x版本),这里我需要的是TrueSTUDIO编译器的工程,因为它和MUCXpresso编译器都是基于eclipse:

三、开始移植

  1. 打开MCUXpresso编译软件,新建一个裸机工程。

  该裸机工程由MCUXpresso编译软件自动生成,包含两个工程文件,一个是涉及硬件资源的CMSIS_CORE_LPC17xx工程,一个是用户定义的template工程;template工程使用的硬件资源会从CMSIS_CORE_LPC17xx工程里面调用,切勿删除。编译一下确保裸机工程没有问题:

  2. 打开下载的例程,参照下载的例程,在个人工程中添加如下图所示的文件夹,并添加对应的文件。在添加文件的时候需要注意,在含有IAR、GNU和RealView三个文件夹的文件夹中,只选择GUN文件夹中的文件进行添加:

  3. APP和BSP文件夹中文件的添加如下图所示:

  4. 涉及到uCOS-II系统文件的添加如下所示:

  5. 找到src文件夹,删除template.c文件,该文件是用于裸机的,在APP文件夹中有替代的用于uCOS-II系统的文件:

  6. 给新增的文件添加路径(可添加只包含.h文件的路径):

  7. 在个人工程中的src文件中找到如下图所指示的.c文件,对照下载的uCOS-II例程的.s文件修改两个函数OS_CPU_PendSVHandler和OS_CPU_SysTickHandler,这两个函数涉及到任务的挂起切换和uCOS-II的系统时钟:

 

  同时别忘记添加函数的引用,这两个函数的定义在os_cpu_a.asm文件中,使用汇编写的,在os_cpu.h文件中被声明:

 

  8. 至此uCOS-II系统的移植工作完成接下来进行验证。

 四、验证uCOS-ii系统的移植是否正常

  1. 创建两个任务分别是App_TaskStart和App_TaskJoy,在任务中添加两个计数器变量,通过观察计数器值的变化验证任务切换是否正常:

  2. 设断点进行调试。两个任务能来回切换,两个计数器累加正常,说明移植成功:

原文地址:https://www.cnblogs.com/wenhao-Web/p/12662553.html