你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

ucos 在stm32上的移植总结

[复制链接]
orlando_3-17516 发布时间:2010-3-21 12:59
学习报告哈尔滨工业大学深圳研究生院 方文钊经过这两天的研究和实验,终于完成了uc/os在stm32上的移植,并成功实现两个任务的切换。现在主要说明一下。一、准备下载Micrium-ST-uCOS-II-LCD-STM32(Micrium公司关于STM32的LCD例程)作为参考。我们需要的是其中的uCOS-II\Ports和uCOS-II\Source文件夹里的内容。二、改写根据文档《uc/os-ii and ARM Cortex-M3 Processors》说明,改变其中一些关键函数,用于系统的移植。2.1编写bsp文件除了必要的硬件初始化以外,要编写OS_CPU_SysTickClkFreq()函数,这个在OS_CPU_SysTickInit()中会被调用,主要是是为了确定处理器时钟频率。参考例程程序,我的编写程序如下:INT32U  OS_CPU_SysTickClkFreq (void){        RCC_ClocksTypeDef  rcc_clocks;    RCC_GetClocksFreq(&rcc_clocks);    return ((INT32U)rcc_clocks.HCLK_Frequency);}2.2 改变中断向量表这里要用到两个启动文件:stm32f10x_vector.s和cortexm3_macro.s,这两个文件不要用例程中的,例程中的stm32f10x_vector.s定义的中断向量入口程序与固件库中stm32f10x_it.c中的中断入口程序不一样,网上许多IAR程序编译的例程文件中都有这两个文件,可以使用,但是仍然有2个入口程序不一样,这个就是PendSV和SysTickHandler。所以需要自己改变一下,ucos系统文件中定义的PendSV和SysTickHandler的入口函数分别是OS_CPU_PendSVHandler和OS_CPU_SysTickHandler,所以要把stm32f10x_vector.s中的PendSV和SysTickHandler替换一下,注意要替换两个位置。IMPORT开头的和DCD开头的。这样中断向量就指向成功了。2.3 编写适当的h文件STM32的头文件编写挺有学问,这个要自己慢慢领悟,当编译出现问题,某个东西没被声明时就是某个头文件没有包含进去。三、编写应用程序我编写的是2个led等交替闪烁的应用程序。如下:void AppStartTask_1 (void *p_arg){         (void)p_arg;        OS_CPU_SysTickInit();        while(1)        {                GPIO_SetBits(GPIOF, GPIO_Pin_6);                Delay_1ms(1000);                GPIO_ResetBits(GPIOF, GPIO_Pin_6);                OSTimeDly(OS_TICKS_PER_SEC);        }}void AppStartTask_2 (void *p_arg){         while(1)        {                           GPIO_SetBits(GPIOF, GPIO_Pin_9);                Delay_1ms(1000);                GPIO_ResetBits(GPIOF, GPIO_Pin_9);                                  OSTimeDly(OS_TICKS_PER_SEC);        }}四、完善程序最后就是要完善程序,该驱动的驱动,该启动的启动,完全做好以后,就可以在开发板上运行了。
收藏 评论9 发布时间:2010-3-21 12:59

举报

9个回答
lucky-92214 回答时间:2010-11-22 15:05:09

RE:ucos 在stm32上的移植总结

MANY THANKS!
xtaozi001 回答时间:2010-11-23 13:04:02

RE:ucos 在stm32上的移植总结

没有记录文档吗?发来参考一下啊!!
liuweisong79 回答时间:2011-4-9 00:35:13

RE:ucos 在stm32上的移植总结

网站内容不错,学习学习
bjx1234 回答时间:2011-4-10 17:40:26

回复:ucos 在stm32上的移植总结

回复第 1 楼 orlando_3于2010-03-21 04:59:25发表:
学习报告 哈尔滨工业大学深圳研究生院 方文钊 经过这两天的研究和实验,终于完成了uc/os在stm32上的移植,并成功实现两个任务的切换。现在主要说明一下。一、准备下载Micrium-ST-uCOS-II-LCD-STM32(Micrium公司关于STM32的LCD例程)作为参考。我们需要的是其中的uCOS-II\Ports和uCOS-II\Source文件夹里的内容。二、改写根据文档《uc/os-ii and ARM Cortex-M3 Processors》说明,改变其中一些关键函数,用于系统的移植。 2.1编写bsp文件除了必要的硬件初始化以外,要编写OS_CPU_SysTickClkFreq()函数,这个在OS_CPU_SysTickInit()中会被调用,主要是是为了确定处理器时钟频率。参考例程程序,我的编写程序如下: INT32U OS_CPU_SysTickClkFreq (void) { RCC_ClocksTypeDef rcc_clocks; RCC_GetClocksFreq(&rcc_clocks); return ((INT32U)rcc_clocks.HCLK_Frequency); } 2.2 改变中断向量表这里要用到两个启动文件:stm32f10x_vector.s和cortexm3_macro.s,这两个文件不要用例程中的,例程中的stm32f10x_vector.s定义的中断向量入口程序与固件库中stm32f10x_it.c中的中断入口程序不一样,网上许多IAR程序编译的例程文件中都有这两个文件,可以使用,但是仍然有2个入口程序不一样,这个就是PendSV和SysTickHandler。所以需要自己改变一下,ucos系统文件中定义的PendSV和SysTickHandler的入口函数分别是OS_CPU_PendSVHandler和OS_CPU_SysTickHandler,所以要把stm32f10x_vector.s中的PendSV和SysTickHandler替换一下,注意要替换两个位置。IMPORT开头的和DCD开头的。这样中断向量就指向成功了。 2.3 编写适当的h文件 STM32的头文件编写挺有学问,这个要自己慢慢领悟,当编译出现问题,某个东西没被声明时就是某个头文件没有包含进去。三、编写应用程序我编写的是2个led等交替闪烁的应用程序。如下: void AppStartTask_1 (void *p_arg) { (void)p_arg; OS_CPU_SysTickInit(); while(1) { GPIO_SetBits(GPIOF, GPIO_Pin_6); Delay_1ms(1000); GPIO_ResetBits(GPIOF, GPIO_Pin_6); OSTimeDly(OS_TICKS_PER_SEC); } } void AppStartTask_2 (void *p_arg) { while(1) { GPIO_SetBits(GPIOF, GPIO_Pin_9); Delay_1ms(1000); GPIO_ResetBits(GPIOF, GPIO_Pin_9); OSTimeDly(OS_TICKS_PER_SEC); } } 四、完善程序最后就是要完善程序,该驱动的驱动,该启动的启动,完全做好以后,就可以在开发板上运行了。 

非常感谢楼主分享经验
yinguangwei-173 回答时间:2011-4-10 18:24:35

RE:ucos 在stm32上的移植总结

楼主总结的简洁而易懂,先收藏啦~
beyondmars 回答时间:2011-5-4 16:40:23

回复:ucos 在stm32上的移植总结

如果能更详细些就好了!
jiangxiujiang 回答时间:2011-11-24 16:13:21

RE:ucos 在stm32上的移植总结

非常感谢~
蝶舞娇阳 回答时间:2013-5-22 14:02:12

回复:ucos 在stm32上的移植总结

楼主,这个变量在哪定义的:RCC_ClocksTypeDef?
cdkchang 回答时间:2014-2-17 16:10:49

回复:ucos 在stm32上的移植总结

啦啦啦

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版