UCOS-III学习笔记——LPC1768移植

μC/ OS III Version: v3.03.01

μC/ CPU Version: v1.29.01

μC/ LIB Version: v1.37.00

FOR: NXP LPC1768 CPU

1.建立工程,添加C文件以及相应的头文件路径,在BSP目录中加入自己的驱动,本次移植以bsp_led.c为例,其头文件为bsp_led.h.v3.03.01版本的LPC1768- ucosIII系统中包含CSP文件包,是芯片级封装,感觉类似于STM32的库,如果后面有机会的话可以学习一下。

2.在启动启动文件中,将PendSV_Handler全部替换成OS_CPU_PendSVHandler,将SysTick_Handler全部替换成OS_CPU_SysTickHandler,共6处。或者直接将启动文件换成Evalboards例程中BSP目录下的cstartup.s文件。

3.需要修改bsp.h和bsp.c.首先,在bsp.h中添加自己的驱动头文件,#包括“bsp_led.h”。

4.在bsp.h中,将部分宏和函数声明删除,包括按键的宏,LED的函数,PB的函数,按键的函数,只保留BSP_Init函数和BSP_Start函数.BSP_Init()函数对硬件进行配置,在主要函数CPU初始化之后进行调用; BSP_Start()函数获取CPU时钟,并进行systick初始化,在初始任务中调用。将bsp.h下面自带的宏,包括GPIO的宏,BSP CONSTANS VALUES的宏和MACRO'S的宏,但是要保留寄存器的宏在下面的时间戳函数中使用。

5.在bsp.c中,将BSP_Init()函数中的内容全部删除,其主要工作是配置始终和GPIO引脚。替换成自己BSP文件的初始化和配置函数,在这里以bsp_led.c的LED_Init()为例。然后,将下面自带的函数,包括各种按键,LED,PB函数,保留时间戳相关的函数。

6.最终的主要函数在app.c中.main函数在一系列初始化后,会进行“App Task Start”任务的创建(简称Start任务),在系统开始时首先进行这个任务。在Start任务中,我们也可以创建其他的或者任务,创建完成后将Start任务删除。本次移植为了简洁,只创建执行Start任务。将App_TaskStart中的BSP_LED_Off(0)删掉,并将循环中的函数改为自己对象的函数。

至此移植工作完成,可以观察到LED一秒toggle一次。

代码分享:https//download.csdn.net/download/sinat_27066063/10779787

QQ:956599264

欢迎交流

猜你喜欢

转载自blog.csdn.net/sinat_27066063/article/details/83991662
今日推荐