(三)复制相关文件

(1)继上次的代码生成后会显示如下的图

点击第一个,打开文件夹如下

(2)新建文件夹UCOSIII

在UCOSIII文件夹下,新建如下的文件夹

(3)将uc/os源文件中 Micrium_STM3240G-EVAL_OS3\Micrium\Examples\ST\STM3240G-EVAL\OS3中文件复制到APP文件夹,共11个文件,该文件夹存放的是应用程序文件和配置文件,如图

(4)Micrium_STM3240G-EVAL_OS3\Micrium\Examples\ST\STM3240G-EVAL\BSP的部分文件复制到BSP,这个文件是板载文件,存放的是板级支持包的文件夹。

(5)将Micrium_STM3240G-EVAL_OS3\Micrium\Software\uC-CPU的全部文件复制到uC-CPU,依次将剩下的UC-LIB、uCOS-III、uC-Serial中的全部文件分别复制到相应文件夹,只放第一张图,剩下图片就不放了。存放的都是底层的库文件。

(6)复制完之后打开工程.project。

打开后的文件列表如下

(四)修改系统文件

(1)在菜单栏中点击“项目”——“属性”,找到下图,这是用来添加包含文件的路径。

(2)点击Add Folder添加UCOSIII文件夹

(3)再切换到Include界面

将路径添加进去,分别是:

UCOSIII/APP

UCOSIII/BSP

UCOSIII/BSP/CMSIS

UCOSIII/BSP/OS/uCOS-III

UCOSIII/uC-CPU

UCOSIII/uC-CPU/ARM-Cortex-M4/GNU

UCOSIII/uC-LIB

UCOSIII/uC-LIB/Ports/ARM-Cortex-M4/GNU

UCOSIII/uCOS-III/Ports/ARM-Cortex-M4/Generic/GNU

UCOSIII/uCOS-III/Source

UCOSIII/uC-Serial/Driver/ST

UCOSIII/uC-Serial/Line

UCOSIII/uC-Serial/OS

UCOSIII/uC-Serial/OS/uCOS-III

UCOSIII/uC-Serial/Source

如图所示,添加完之后,点击“确定” “是”。

(4)打开app.c文件,然后点击左上角,新建app.c的头文件,因为app.c文件为uc/os的main()函数文件,现在要将其改成一个API接口文件,将app.c文件中int main(void)改为int app(void),再在芯片的底层文件夹中的main.c里引用app()函数。具体操作如下:

点击“完成”然后叉掉,打开app.h,编辑如下

这样就改好了app.c,再在main.c里包含app.h文件

最后将app()函数放在“/USER CODE BEGIN 2/”和“/USUR CODE END 2/”之间。注意:app()函数只建议放在该处,其他的应用开发函数都会放在app()函数里或者放在之前的类似“/USER CODE BEGIN 2/”和“/USUR CODE END 2/”的区域里,反正不能放在app()函数之后,因为代码不会跳转到app()函数后的代码。

(5)将三个文件夹里的IAR、RealView都右键删掉,只留下GUN

(6)打开startup.s文件,将startup.s的全部内容替换掉startup文件夹中的startup_stm32f407xx.s的全部内容,然后右键删掉第一个startup.s,这是用uC/os源码里的启动文件里的代码替换掉底层代码生成的启动文件代码,但是不能直接用文件替换,得用复制粘贴内容,不然startup_stm32f407xx.s文件会再次生成。

(7)最后在删除这个system_stm32f4xx.c文件,解决时钟冲突的问题。

点击小锤子编译,就没问题了。

本篇移植到此结束,下一篇用led的任务试验该移植是否成功移植。

stm32CubeMx+TrueSTUDIO+uc/os-III移植开发(二)的更多相关文章

  1. uc/os iii移植到STM32F4---IAR开发环境

    也许是先入为主的原因,时钟用不惯Keil环境,大多数的教程都是拿keil写的,尝试将官方的uc/os iii 移植到IAR环境. 1.首先尝试从官网上下载的官方移植的代码,编译通过,但是执行会报堆栈溢 ...

  2. uC/OS - III 移植 IAR平台

    关于移植uC/OS-III 网上已经有很多教程了此处只是做个记录 首先下载源码然后解压得到下面的文件: 然后在模版工程里新建各种文件夹: 最后全部都添加进工程: OK了,编译一下,惊呆了,竟然 0错误 ...

  3. stm32CubeMx+TrueSTUDIO+uc/os-III移植开发(一)

    自从接触到stm32cubemx后,发现使用起来很方便,用来做项目开发的话,由于是图形化操作界面,工作效率比较快.如果要学习操作系统,以前的IDE如keil,IAR等IDE对操作系统的代码调试起来不够 ...

  4. 在STM32F401上移植uC/OS的一个小问题 [原创]

    STM32F401xx是意法半导体新推出的Cortex-M4内核的MCU,相较于已经非常流行的STM32F407xx和STM32F427xx等相同内核的MCU而言,其特点是功耗仅为128uA/MHz, ...

  5. uC/OS II原理分析及源码阅读(一)

    uC/OS II(Micro Control Operation System Two)是一个可以基于ROM运行的.可裁减的.抢占式.实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,是和 ...

  6. 关于uC/OS的简单学习(转)

    1.微内核 与Linux的首要区别是,它是一个微内核,内核所实现的功能非常简单,主要包括: 一些通用函数,如TaskCreate(),OSMutexPend(),OSQPost()等. 中断处理函数, ...

  7. 【小梅哥SOPC学习笔记】NIOS II处理器运行UC/OS II

    SOPC开发流程之NIOS II 处理器运行 UC/OS II 这里以在芯航线FPGA学习套件的核心板上搭建 NIOS II 软核并运行 UCOS II操作系统为例介绍SOPC的开发流程. 第一步:建 ...

  8. 基于uIP和uC/OS-II嵌入式网络开发

    基于uIP和uC/OS-II嵌入式网络开发 ——uIP主动发送数据分析 摘要:uIP协议栈简单易用,可以为16位单片机或者是更低级的处理器使用,占用的资源很少,相关移植网上有详细介绍,本文主要讨论uI ...

  9. javaweb学习之Servlet开发(二)

    javaweb学习总结(六)--Servlet开发(二) 一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个< ...

随机推荐

  1. 手写实现vue的MVVM响应式原理

    文中应用到的数据名词: MVVM   ------------------        视图-----模型----视图模型                三者与 Vue 的对应:view 对应 te ...

  2. 软件工程实验一 Git代码版本管理

    实验一  GIT 代码版本管理 一.实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2)熟练掌握git的基本指令和分支管理指令: 二.实验内容: 1)安装git: 2)初始配置git ,gi ...

  3. 前端、HTML+CSS+JS编写规范(终极版)

    HTMLCSS文档规范 HTML和CSS文档必须采用UTF-8编码格式: HTML文档必须使用HTML5的标准文档格式: HTMLCSS编写规范 HTML和CSS的标签.属性.类名.ID都必须使用小写 ...

  4. 浏览器内核之 HTML 解释器和 DOM 模型

    微信公众号:爱写bugger的阿拉斯加如有问题或建议,请后台留言,我会尽力解决你的问题. 前言 此文章是我最近在看的[WebKit 技术内幕]一书的一些理解和做的笔记.而[WebKit 技术内幕]是基 ...

  5. [LeetCode] 1103. Distribute Candies to People 分糖果

    题目: 思路: 本题一开始的思路就是按照流程一步步分下去,算是暴力方法,在官方题解中有利用等差数列进行计算的 这里只记录一下自己的暴力解题方式 只考虑每次分配的糖果数,分配的糖果数为1,2,3,4,5 ...

  6. Ubuntu中VMware tools的安装步骤

    按照下面的步骤,轻松解决!! 1.点击导航栏中的虚拟机,下面的安装VMware tools 2.点击桌面上的光盘,进入后,将tar.gz文件复制到桌面,然后右击提取到此处: 3.在桌面打开终端,cd到 ...

  7. 教你高效使用数据可视化BI软件创建医院卫生耗材运营监控大屏

    灯果数据可视化BI软件是新一代人工智能数据可视化大屏软件,内置丰富的大屏模板,可视化编辑操作,无需任何经验就可以创建属于你自己的大屏.大家可以在他们的官网下载软件.   本文以医院卫生耗材运营监控大屏 ...

  8. video 在iphone手机的ios系统和微信端无法自动播放

    描述:video 在iphone手机,微信端无法自动播放,ios系统下不能自动播放视频.而且如果没有autoplay属性,在微信端点击一次,弹不出视频,要一直触着两秒后才可以打开视频.如果点击播放的话 ...

  9. 01.UNIX基础知识

    1.UNIX体系结构 什么叫做内核? 内核是一种软件,它控制计算机硬件资源,并提供程序的运行环境. 什么叫操作系统? 在广义上,操作系统包括了内核和一些其他软件,这些软件使得计算机能够发挥作用,如可以 ...

  10. 使用Filter来过滤掉需要排除的数组对象

    问题描述:有个地方需要根据判断是否是总分公司来控制转正入口的显影,list是获取到的所有入口的数组,需要判断数组里哪个对象的title为"员工转正",本来打算用for循环的,之后发 ...