Chinaunix首页 | 论坛 | 博客
  • 博客访问: 343295
  • 博文数量: 67
  • 博客积分: 2468
  • 博客等级: 上尉
  • 技术积分: 1050
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-05 01:21
文章分类

全部博文(67)

文章存档

2013年(1)

2012年(65)

2011年(1)

分类: 嵌入式

2012-09-01 21:04:58

开发工具:MDK4.23

系统版本:ucos_II

STM32芯片:STM32F2x7VG

在上一篇《初识ucos_II》中,留下了很多脚印。这里,再次把脚印留下:

 

1MDK中的资源:

在安装好MDK后,安装目录下有很多有用的资源,和开发板配套光盘中的差不多类似。比如:

\ARM\Boards\ST\STM3220G-EVAL\Blinky,就是就STSTM3220G-EVAL这个评估板的LED闪烁实例。

\ARM\Examples\ST\STM32F10xFWLib\Examples\CRC,目录是固件库中CRC校验的程序。

 

2ucos_II内核结构的认识:

ucos_II源码中的ReadMe文档还是很值得一看的。

\STucos_source\Micrium\Software\CPU\ST\STM32这个目录中存放的是STM32的固件库的.h.c文件。

\STucos_source\Micrium\Software\EvalBoards评估板上的工程示例,有RVMDKIAR的。

\STucos_source\Micrium\Software\uC-CPU存放的CPU硬件初始化相关的文件。

\STucos_source\Micrium\Software\uC-LCD存放的是LCD MODULE RTOS INTERFACE SOURCE FILELCD MODULE SOURCE FILE

\STucos_source\Micrium\Software\uC-LIB存放的是STANDARD MEMORY OPERATIONSASCII STRING MANAGEMENT

\STucos_source\Micrium\Software\uCOS-II\Ports存放和任务相关的系统调用的源文件。

\STucos_source\Micrium\Software\uCOS-II\Source存放ucos操作系统各种机制的源文件。

\STucos_source\Micrium\Software\uC-Probe存放探针的源文件,调试用。

 

最后强力推荐看源代码文档,里面会有很清楚的说明,比如os_task.c中对INT8U  OSTaskChangePrio (INT8U oldprio, INT8U newprio)的说明:


点击(此处)折叠或打开

  1. /*
  2. *********************************************************************************************************
  3. * CHANGE PRIORITY OF A TASK
  4. *
  5. * Description: This function allows you to change the priority of a task dynamically. Note that the new
  6. * priority MUST be available.
  7. *
  8. * Arguments : oldp is the old priority
  9. *
  10. * newp is the new priority
  11. *
  12. * Returns : OS_ERR_NONE is the call was successful
  13. * OS_ERR_PRIO_INVALID if the priority you specify is higher that the maximum allowed
  14. * (i.e. >= OS_LOWEST_PRIO)
  15. * OS_ERR_PRIO_EXIST if the new priority already exist.
  16. * OS_ERR_PRIO there is no task with the specified OLD priority (i.e. the OLD task does
  17. * not exist.
  18. * OS_ERR_TASK_NOT_EXIST if the task is assigned to a Mutex PIP.
  19. *********************************************************************************************************
  20. */

  21. #if OS_TASK_CHANGE_PRIO_EN > 0
  22. INT8U OSTaskChangePrio (INT8U oldprio, INT8U newprio)
  23. {
  24. #if (OS_EVENT_EN)
  25.     OS_EVENT *pevent;
  26. #if (OS_EVENT_MULTI_EN > 0)
  27.     OS_EVENT **pevents;
  28. #endif
  29. #endif

……………………

 

3)开发板配套光盘中各个目录的认识:

像我的这个板子配套的光盘里有以下内容:

\STM32F2x7VGT6-DK-A-CD\Code\Code\PC-SoftWare

\STM32F2x7VGT6-DK-A-CD\Code\Code\STM32F2x7_ETH_LwIP_V1.0.2

\STM32F2x7VGT6-DK-A-CD\Code\Code\STM32F2xx_AN3374_FW_V1.0.0

\STM32F2x7VGT6-DK-A-CD\Code\Code\STM32F2xx_StdPeriph_Lib_V1.0.0固件库和其工程示例。

\STM32F2x7VGT6-DK-A-CD\Code\Code\STM3220F-EVAL-MDK423评估板示例工程。

\STM32F2x7VGT6-DK-A-CD\Document

\STM32F2x7VGT6-DK-A-CD\Tools

这里值得注意的是,光盘中的工程是裸机程序,不是在ucos系统上跑的。由此在网上找了个“STM32F2系列工程模版”。

 

4ucos_II的移植:

在《嵌入式实时操作系统uCOS-II》第二版的后面几张介绍了ucos的移植,但是在80x86上面。

STM32上的移植可参考野火嵌入式工作室做的。

 

5MDK文档的组织

有两点我很不习惯:

第一,MDK工程视图中的目录很可能和你的本地目录不对应,都是MDKmanage components惹的祸。

第二,有可能MDK工程视图中只把.c的文件加入进去了,而.h的文件没有。.h的文件通过配置C/C++的编译,选择了。这点感觉有点乱。

 

6)加入第三方库文件

在意法半导体的社区里(http://www.stmcu.org/),有各个系列STM32的固件库和一些第三方库文件,是很不错的。

 

7)剩下的工作

当把ucos_II移植好后,剩下的工作就是自己应用程序的编写了。这个还有好多路要走呢……

阅读(3209) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

时间看来2012-09-07 17:48:02

ucOS学习笔记(4)——一步一步移植ucOS到STM32  
http://blog.163.com/tianyake@yeah/blog/static/7493314120114511507343/

时间看来2012-09-06 15:37:59

奔奔 STM32F207 入门学习笔记系列之一STM32F2x搭建开发环境
from:http://bbs.ednchina.com/BLOG_ARTICLE_3000523.HTM

注意:File Group是用来组织文件的,用户可以按照自己的习惯来安排。这里的File Group用途为:
User:     用于组织用户编写的源文件。
Lib:      用于组织ST官方的外设驱动固件。
STM32_EVAL:   用于组织STM32F2xx评估板DevKit1207的板级驱动文件。
CMSIS:       用于组织CMSIS(Cortex MCU软件接口标准)文件。
MDK