u8国际,u8国际官方网站,u8国际网站最新,u8国际网站,u8国际网址,u8国际链接
这个图表达了什么信息呢,其实就是告诉移植者需要将那些文件移植到你的工程当中,首先是uC/OS-ii的源文件,就是、.....这些文件,其实是uC/OS-ii的Port文件,包括4个,分别是,,,,还有是用户应用程序里的包含文件,这个里面不能照搬,选择使用两个文件,分别为和,其他三个,可以自己编写,为什么不套用另外那三个呢,主要是因为那三个文件是针对官方开发板创建的任务,里面包含的信息量太大,编译的时候,肯定会有大量的错误(因为我们是一直到我们自己的板子),所以最好自己写最简单的,至于怎么写,后面再详细说,可以先建2个空文件,分别是和,这两个文件的含义很简单,APP是自己的应用程序C文件,是对我们自己的应用程序做的配置文件,看到这里可能会有个疑问,文件怎么处理呢,答案是舍弃,因为官方提供的案例是自己写启动文件,文件是向量表,我们使用的是STM32固件库里的启动代码,所以就不用使用了。BSP部分有两个文件和,这个也建议直接舍弃,这个是官方文档中针对他们的的开发板写的一些底层的设备驱动,我们自己的开发板跟他们的不同,所以根本就没必要要,至此,将刚刚分析的这些必须的文件加入到上面创建的无操作系统裸板程序中,进行编译。肯定会有很多错误,下面我们就一一的修改这些错误。添加到项目后的文件树,如下图所示:
这些文件其实是ucosiiport文件包括4个分别是还有是用户应用程序里的包含文件这个里面不能照搬选择使用两个文件分别为和其他三个可以自己编写为什么不套用另外那三个呢主要是因为那三个文件是针对官方开发板创建的任务里面包含的信息量太大编译的时候肯定会有大量的错误因为我们是一直到我们自己的板子所以最好自己写最简单的至于怎么写后面再详细说可以先建2文件分别是和这两个文件的含义很简单app是自己的应用程序c文件是对我们自己的应用程序做的配置文件看到这里可能会有个疑问文件怎么处理呢答案是舍弃因为官方提供的案例是自己写启动文件文件是向量表我们使用的是stm32固件库里的启动代码所以就不用使用了
uCOS-ii的核心作用就是任务调度,要使用STM32的一个特殊中断——PendSV,就是可挂起系统任务中断,通过该中断进行系统的调度。还有就是uCOS-ii需要一个基准时间,那么STM32中有一个专用的定时器,嘀嗒定时器SysTick,这个定时器,就是专为操作系统而设计的,通过这个滴答定时器给uCOS-ii提供一个时间基准,每隔固定的时间出发一个PendSV中断,进行任务的调度。所以呢,在官方案例的移植文档AN-1018中也特别提到这一点,要将启动代码中所有“PendSV_Handler”和“SysTick_Handler”,替换成“OS_CPU_PendSVHandler”和“OS_CPU_SysTickHandler”,这样就相当于将uCOS-ii的“神经”跟你的项目的“神经”搭在了一起。
这个步骤是移植的核心:上面说的其他的修改,都是一些附属的格式方面的修改,而启动代码的修改才是移植的核心,这里简单的分析2个问题,一是,什么叫移植,二是移植的操作系统如何能够被我们的工程所应用。所谓移植,打一个恰当的比喻——,就是将A的到B身上,使A的器官能够为B所用。所以移植绝对不是简单的“复制”,不仅要放到你的工程项目中,更重要的是要能够和你的项目建立联系。那么uCOS-ii怎么跟STM32建立联系呢?
@HASHKFK