μcos_II之移植篇详解.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
/* *Author:Callon Huang *Version:1.0 *Time:2014/11/5 *blog: /u/2451220761 */ 希望博客也能帮到你~ 第一步:μcosII源码下载 /downloadcenter/ STM32固件库stm32f10x_stdperiph_lib.zip的下载 第二步:新建文件夹,并准备子目录: 其中Software是μcosII源码下载完成后拷贝过来的,其它的都自己新建. App?用来存放应用程序文件, Bsp?用来存放版级驱动文件, Lib?用来存放?STM32?的标准外设库文件, Source?用来存放uCOS?文件 第三步:把Software里的uCOS-II、uC-LIB和uC-CPU文件夹到Source里并把后两者拷贝到uCOS-II文件夹里,最后如下: 第四步:找到Software\EvalBoards\ST\STM32F103ZE-SK\IAR下的BSP文件夹,复制到Source文件夹下 第五步:找到Software\EvalBoards\ST\STM32F103ZE-SK\IAR下的OS-Probe-LCD文件夹,复制到Source文件夹下并改名为APP 第六步:解压下载好的stm32f10x_stdperiph_lib.zip固件库: 找到 stm32f10x_stdperiph_lib\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver下的inc和src文件夹并复制到Lib文件夹下 第七步:复制 stm32f10x_stdperiph_lib\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS下的CM3文件夹到Lib文件夹下 第八步:删除一些不需要的文件: APP文件夹只需要: BSP文件夹只需要: 在Software\CPU\ST\STM32里也有inc和src文件夹,但是比STM32固件库的要多两个文件 stm32f10x_systick.c和stm32f10x_systick.h 把这两个文件拷贝到SysTick文件夹下. 第九步:建立工程my_ucosII,把所有的.c文件和.asm文件都加进来: ‘ 第十步:对工程进行一些设置: Device就不用说了; Target不变; Output勾选上Create HEX File,并在 里选择Obj文件夹; C/C++中 添加头文件所在路径,否则会出现大量如下编译错误: 头文件路径: Libraries文件夹是这三个 最后这部分全部设置好后,如下: 最后总体设置完如下: Debug里 最后 下载程序的时候,如果碰到 MDK中出现“Error Flash download failed-Cortex-M3”错误,可以通过上面的添加On-chip-Flash来解决。 其他没提的就不改变; 此时先修改部分代码做到最简化: app.c: #include stm32f10x_conf.h #include os_cfg.h #include ucos_ii.h #include bsp.h #define STARTUP_TASK_PRIO 4 #define LED1_TASK_PRIO 6 #define STARTUP_TASK_STK_SIZE 80 #define LED1_TASK_STK_SIZE 80 OS_STK startup_task_stk[STARTUP_TASK_STK_SIZE]; OS_STK led1_task_stk[LED1_TASK_STK_SIZE]; static void systick_init(void) { RCC_ClocksTypeDef rcc_clocks; RCC_GetClocksFreq(rcc_clocks); SysTick_Config(rcc_clocks.HCLK_Frequency/OS_TICKS_PER_SEC); } void led1_task(void *p_arg) { while(1) { LED1_ON(); OSTimeDlyHMSM(0,0,1,0); LED1_OFF(); OSTimeDlyHMSM(0,0,1,0); } } void startup_task(void *p_arg) { systick_init(); OSTaskCreate(led1_task,(void*)0,led1_task_stk[LED1_TASK_STK_SIZE-1],LED1_TASK_PRIO); G

文档评论(0)

琼瑶文档 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档