现在的位置: 首页uC/OS uC/GUI>正文
ucos ii 2.86 移植笔记(STM32)
2012年03月25日 uC/OS uC/GUI 暂无评论

一:缺少 app_cfg.h os_cfg.h

app_cfg.h 是用户应用程序的一些定义,链接等,新建一个空文件即可

os_cfg 是uCOS的配置文件  将Source文件夹中的os_cfg_r.h改名,然后根据自已的情况修改

二: OS_TASK_TMR_PRIO 未定义

从官方PDF中得知,从UCOS 2.81中引入了 timer manager的这么个东东.根据其说明,应该是可以创建一个定时任务,可以进行任务回调的功能.而OS_TASK_TMR_PRIO就是定义timer manager任务的优先级.

我们可以在app_cfg.h中将其定义,,优先级现在就任意吧.当然也可以使用绝招,在os_cfg.h中将OS_TMR_EN禁用.当然这是在不使用timer manager功能的前提下.

三:发现一堆app_***Hook的函数未定义

据网上的人们说,这是一个调用一些钩子程序,拿来调试应用程序用的,我们直接在os_cfg.h中将OS_APP_HOOKS_EN设为0,禁用掉.其功能以后研究

四:OS_CPU_SysTickClkFreq 未定义

根据文档,在os_cpu_c.c中会调用OS_CPU_SysTickInit初始化SysTick,在这个函数中还会调用OS_CPU_SysTickClkFreq取得当前CPU频率.

这样,根据国际惯例,在bsp中实现这个函数即可.之后就能够通过编译了.u32 OS_CPU_SysTickInit(void);

五:将OS_CPU_PendSVHandler与OS_CPU_SysTickHandler添加到启动文件的向量表中,原因大家都懂的

最后就是建立自已的任务了,要注意的是,所有系统的初始化放到第一个任务中进行,初始化完成后可以删除任务或是进行其他操作,主要的初始化对象为systick时钟,

注意不能偷懒,只能修改启动文件,而不能修改stm32xxx_it.c进行转跳.

IMPORT OS_CPU_PendSVHandler
IMPORT OS_CPU_SysTickHandler
DCD      OS_CPU_PendSVHandler
DCD     OS_CPU_SysTickHandler

最后:在合适位置(OSStart(); 之前) 运行 OS_CPU_SysTickInit();

这样,UCOS就算成功移置



给我留言

留言无头像?


无觅相关文章插件,快速提升流量