(1)μC/OS-II系统移植到LPC17xx单片机

一、工具

  1、IDE:MCUXpresso IDE v11.2.1 

  2、下载器:J-Link

  3、芯片:LPC1768

二、准备移植

  1、μC/OS资源下载:

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

  ①进入uC/OS的官方网站:https://www.micrium.com,点击"Downloads",如下图所示:

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

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

  ④下载完成后进行解压缩,如下图 所示:

  ⑤打开下载的工程,浏览一下官方提供的工程结构,如下图所示:

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

三、开始移植

  1、新建一个裸机工程

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

 

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

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

  4、涉及到μC/OS-II系统文件的添加如下图所示:

  5、找到src文件夹,删除template.c文件,该文件是用于裸机的,在APP文件夹中有替代的用于μC/OS-II系统的文件,如下图所示:

 

  6、给新增的文件添加路径(可添加只包含.h文件的路径),如下图所示:

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

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

 

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

 

 四、验证μC/OS-II系统的移植是否正常

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

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

 五、总结

  该移植教程是我早期接触该编译环境移植的,当时对μC/OS-II理解的还不太够,很多与硬件有关的内容都没去掉,在使用的过程中可能比较繁琐,有兴趣的可以参考我的另一篇移植教程。相关链接:https://www.cnblogs.com/wenhao-Web/p/14285845.html

posted @ 2020-04-08 20:28  不要让自己太懒  阅读(521)  评论(0编辑  收藏  举报