VS2013+uCOSII V2.91(uCOSII移植)

VS2013+uCOSII V2.91(uCOSII移植)最近在看任哲的 嵌入式实时操作系统原理及应用 看了前面 8 章 虽然能看懂书上的代码 但因为没有动手写过 心里没有底 所以还是得动手写点代码测试 书上推荐的是 BorlandC3 1 但因为 Win10 不知道什么原因 安装不了 就放弃了 uCOSII 既然是用 C 写的可移植实时操作系统 能不能移植到 PC 上用 VS 编译呢 于是就在网上搜索了一下 果然有前辈开路 下面开始讲述怎么把 uCOSII 移植到 VS20

1、下载uCOSII源码
http://download.csdn.net/detail/zx/ (V2.91)
这里写图片描述
这里写图片描述
源码目录很简单,Source下存的就是uCOSII源文件。



2、新建VS2013工程
为了目录结构清晰,在工程目录下新建3个文件夹App,Ports,Source。将下载的源文件拷贝到工程目录的Source中,App用于存放用户代码,Ports用于存放与移植平台相关的代码。工程目录如下:
这里写图片描述

3、添加项目文件
Ports下的与移植平台相关解决方案目录
这里写图片描述
首先其中App存放的是用户代码,uCOSII中存的是uCOSII源文件,Ports存放的是与移植平台相关的代码,其中


include 是自己编写的 os_cpu.h 定义了和处理器及编译器相关的定义及一些全局函数声明。 os_cpu_c.c 任务堆栈和时钟节拍中断服务相关代码。这两个文件移植的时候都是需要修改的,因为移植到不同的机器上这三个文件有所不同所以,可以到官网下载已经移植好的程序或者从UCOS II官网提供的移植范例里面找,UCOSII源码中没有包含这些文件。 为

4、项目配置
设置编译平台
这里写图片描述
添加头文件包含目录
这里写图片描述



5、编译
编译后发现还很多错误
这里写图片描述
uCOSII.h源码中头文件包含了os_cfg,但在源文件中没有找到os_cfg,但能找到一个相似的os_cfg_r.h,去网上搜索一下os_cfg_r.h,原来os_cfg_r.h是一个系统配置文件,可以设置打开或者关闭系统功能,暂时不管它,先修改为os_cfg.h。
继续编译还是有错
这里写图片描述
错误定位到创建OSTmr_Task的任务优先级,系统提示这个任务优先级没有宏定义。先Ctrl+F搜索一下OS_TASK_TMR_PRIO,果然又有新发现
这里写图片描述
OSTmr_Task是系统定时器的时候用到,解决的办法有两种,







1、关闭系统定时功能OS_TMR_EN定义成0u2、自己定义一个OS_TASK_TMR_PRIO 
#include <os_core.c> #include <os_flag.c> #include <os_mbox.c> #include <os_mem.c> #include <os_mutex.c> #include <os_q.c> #include <os_sem.c> #include <os_task.c> #include <os_time.c> #include <os_tmr.c>

如果再将所有的os_代码进行编译链接,当然会出现重复。问题找到了解决方法是:

1.移除ucosii.c 2.移除ucosii.c中包含的.c文件。

我这里选择移除ucosii.c中包含的.c文件,两种我都试过,因为这样项目看起来简洁一些,其实无所谓。

winmm.lib是Windows多媒体相关应用程序接口 timeBeginPeriod 设置应用程序或驱动程序使用的最小定时器分辨率   timeEndPeriod 清除应用程序或驱动程序使用的最小定时器分辨率   timeGetDevCaps 查询定时器设备以确定其性能   timeGetSystemTime 检取从WINDOWS开始已逝去的毫秒数   timeGetTime 检取从WINDOWS开始已逝去的毫秒数,此函数比上一条函数开销小   timeKillEvent 毁掉指定的定时器回调事件   timeSetEvent 设置一个定时器回调事件

另附工程下载地址:http://download.csdn.net/detail/zx/

最后感谢前辈开路!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230270.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月8日 下午6:01
下一篇 2026年3月8日 下午6:22


相关推荐

  • 讯飞星火怎么用_讯飞星火认知大模型怎么用

    讯飞星火怎么用_讯飞星火认知大模型怎么用

    2026年3月14日
    3
  • 讯飞星火app

    讯飞星火app

    2026年3月14日
    1
  • 【OpenCV】角点检测:Harris角点及Shi-Tomasi角点检测

    【OpenCV】角点检测:Harris角点及Shi-Tomasi角点检测角点特征检测与匹配是 ComputerVisi 应用总重要的一部分 这需要寻找图像之间的特征建立对应关系 点 也就是图像中的特殊位置 是很常用的一类特征 点的局部特征也可以叫做 关键特征点 keypointfeat 或 兴趣点 interestpoin 或 角点 conrner 关于角点的具体描述可以有几种 一阶导数 即灰度的梯度 的局部最大所对应的像素点

    2026年3月26日
    1
  • java程序员表情包,跳槽大厂必看!

    java程序员表情包,跳槽大厂必看!今年互联网形式依旧严峻 再次爆发几次大规模裁员潮 我决定把这篇文章分享出来帮助那些对前途感到迷茫的朋友 在猎头的眼里 我已不是根正苗红的程序员 何为根正苗红 计算机专业毕业 从毕业起就从事特定方向的开发工作 这才是猎头眼中的香饽饽 毕业之后的那段岁月 可以用悲惨形容 每当和人提起 我总会有点自嘲的说 睡过凌晨一点的办公室 吃过凌晨三点的便利店 做过凌晨五点的首班车 但是回头想想 我却要感谢那不堪的经历 让我找到了适合自己的方向 作为技术人员 我一直有个疑问 什么是你引以为傲的资本 面对已经来临

    2026年3月18日
    4
  • DynDNS免费动态域名解析

    DynDNS免费动态域名解析转载自以下网址 http hi baidu com ahong1288 blog item 80af3b12bd37 html nbsp 你大概有一个家庭网络 它有固定的宽带连接 可以让你七天 24 小时任意访问外部的网络世界 但是 如果要想从公共互联网上访问家里的网络 你又该怎么做呢 如果你想为你的宽带帐号多付 2 到 4 倍钱的话 那么你就可以拿到一个固定 IP 地址 一个永远不会再

    2026年3月19日
    1
  • python 算法:Descending Order

    python 算法:Descending OrderYourtaskisto negativeinte Essentially rearrangethe

    2026年3月19日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号