作者:时间看来

转自:http://blog.chinaunix.net/uid-25194149-id-3334772.html

开发工具:MDK4.23

系统版本:ucos_II

STM32芯片:STM32F2x7VG

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

1)MDK中的资源:

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

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

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

2)ucos_II内核结构的认识:

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

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

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

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

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

\STucos_source\Micrium\Software\uC-LIB存放的是STANDARD MEMORY OPERATIONS和ASCII 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: Thisfunction allows youto change the priority of a task dynamically. Note that the new
  6. * priority MUST be available.
  7. *
  8. * Arguments : oldpis the old priority
  9. *
  10. * newp is the new priority
  11. *
  12. * Returns : OS_ERR_NONEis thecall 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系列工程模版”。

4)ucos_II的移植:

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

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

5)MDK文档的组织

有两点我很不习惯:

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

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

6)加入第三方库文件

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

7)剩下的工作

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

MDK+STM32F2X7VG+ucos_II相关推荐

  1. 使用Keil MDK以及标准外设库创建STM32工程

    应部分网友要求,最新加入固件库以及开发环境使用入门视频教程,同时提供例程模板,个人录制,欢迎指正.下载地址:http://dl.dbank.com/c0w0ehqynd 2013.3补充在线视频教程 ...

  2. Keil MDK下如何设置非零初始化变量(转)

    源:Keil MDK下如何设置非零初始化变量 一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备.而keil mdk在默 ...

  3. ADS与RealView MDK

    在 ARM + Linux 培训班学习,讲师一般首先讲解用 ADS 或 RealView MDK 去调试 ARM 开发板.原因在于: 1.掌握 ARM 体系结构.ARM 是一种计算机,掌握其体系结构也 ...

  4. MDK中软仿真下Debug-(printf)Viewer

    在用MDK软件做软件仿真时,通常用到printf()函数,为了在软仿下,用printf()函数能在 Debug (printf) Viewer窗口下能看到正确数据,需做以下配置: (1) 打开keil ...

  5. 在 Keil uVision4 MDK下配置开发STM32F103Z完整教程

    转载的,请原作者勿怪,以下为原链接: http://www.51hei.com/bbs/dpj-30359-1.html(欢迎直接查看原作者) 环境搭建: 1.安装 Keil uVision4 MDK ...

  6. KEIL MDK LIB库文件的制作

    作者:yangluoning <KEIL MDK LIB库文件的制作> 来源:CSDN  原文:https://blog.csdn.net/yangluoning/article/deta ...

  7. MDK编译后生成bin文件占用FLASH大小说明

    转自:http://blog.csdn.net/kuangdoushi/article/details/69499933 MDK编译程序完成后,如下所示: linking... Program Siz ...

  8. MDK调试STM32出现“could not stop cortex-m device”解决办法

    今天遇到了下面的问题: 现象:并且j-link的灯变红了,不是正常的绿色,测量发现RST脚的电压异常,本来是通过10K电阻拉高的,电压应该是3.3V,但是测得0.9V,把RST引脚和3.3V短接,j- ...

  9. MDK 工程宏定义的应用

    这个宏定义是指工程的Options窗口--"C/C++"--"Preprocerssor Symbols"下的宏定义. 在这里宏定义了可以让编译器选择性的编译某 ...

最新文章

  1. RDKit | RDKit(2019.09)新增相似性图函数
  2. 基于Visual Studio2010与.NET 4.0--多显示器支持使开发效率事半功倍
  3. rpm mysql 指定目录_rpm 安装并配置MySQL(包含指定数据存储路径)
  4. Swift 4.1带来条件一致性等语言上的提升
  5. jetty之嵌入式运行jetty
  6. 2020.8.28丨转录组、全转录组方案设计和案例解析
  7. linux命令sm,Linux系统命令和使用技巧8则
  8. 计算机模块一试题答案,2016年职称计算机考试模块综合试题及答案(1)
  9. win10安装mysql8.0,一台电脑上安装多个mysql
  10. 2021mac新卡牌游戏:展翅翱翔wingspan
  11. 微信小程序页面onLoad获取app.js的onLaunch数据(异步获取用户信息)
  12. 2023首届西安浐灞·保利戏剧节——以“觅”为主题 即将开启
  13. 隐马尔科夫模型模型:原理、实现
  14. python实现word文档合并 v2.0
  15. MyBatis从入门到精通(一)—MyBatis基础知识和快速入门
  16. 使用Nodejs+Protractor搭建测试环境
  17. c++中绝对值的函数
  18. 员工满意度模型定期检讨工作规范有哪些?
  19. do还是doing imagine加to_请问,是“imagine sb. to do sth. ”还是“imagine sb. doing sth.”?...
  20. Mac idea快捷键

热门文章

  1. 【PAT】1021 个位数统计
  2. 笔记本锂离子电池的激活保养
  3. 奔图3305_奔图打印机耗材型号对照表
  4. [浙大网新易盛] 春节后面试别人的经历总结之一,好岗位分享给还在找工作中的软件开发爱好者们
  5. LA3516 Exploring Pyramids
  6. html语音输入功能讯飞,讯飞输入法中实现“语音输入”,手机代替麦克风
  7. PHP单元测试框架PHPUnit的使用方法
  8. java身份证号码验证是否有效,校验是否成年
  9. 从福昕阅读器到Adobe Acrobat Professional
  10. 2020下半年软考报名指南