1.一步一步移植ucos到stm32f103开发版(修订版)
先到官方下载ucos源码,比较接近的是http://micrium.com/download/micrium_stm32f103-sk_ucos-ii/,本文就采用该文件
开发工具版本为MDK511
1.新建ucos工程,选择STM32F103VE,选择CMSIS下的CORE和Device下的Startup,以及Device下的StdPeriph Drivers下的Framework,RCC,和GPIO
2.工程中和实际目录中都新建几个目录,APP,UCOS,BSP,LIB,CPU,Output
3.工程上右键,Options,Output页签,Select Foldeer for Objects,进入Output目录,点击OK
4.把Micrium\Software\uCOS-II\Source目录中的文件拷贝到UCOS目录下,并添加到工程中
5.工程Options中,C/C++页签,Include Paths,点击后面省略号可选择include目录,添加UCOS路径
6.复制Micrium\Software\EvalBoards\ST\STM3210B-EVAL\RVMDK\OS-Probe目录下的文件app_cfg.h,os_cfg.h和includes.h到APP目录中,并在Include Paths中添加APP
7.复制Micrium\Software\uCOS-II\Ports\arm-cortex-m3\Generic\RealView目录下的所有文件到CPU目录,添加到工程和Include Path中
8.工程Options中,C/C++页签,Defines中添加 USE_STDPERIPH_DRIVER
9.把RTE和RTE\Device\STM32F103VE添加进Include Paths中
10.修改os_cfg.h文件,#define OS_APP_HOOKS_EN 1为0
11.BSP目录下新建BSP.c文件,添加内容如下:
#include <BSP.h>CPU_INT32U BSP_CPU_ClkFreq (void)
{RCC_ClocksTypeDef rcc_clocks;RCC_GetClocksFreq(&rcc_clocks);return ((CPU_INT32U)rcc_clocks.HCLK_Frequency);
}INT32U OS_CPU_SysTickClkFreq (void)
{INT32U freq;freq = BSP_CPU_ClkFreq();return (freq);
}
12.复制Micrium\Software\EvalBoards\ST\STM3210B-EVAL\RVMDK\BSP目录下的bsp.h到 BSP目录中
13.复制Micrium\Software\uC-CPU\ARM-Cortex-M3\RealView目录和Micrium\Software\uC-CPU目录下的所有文件到CPU目录下,并添加到工程和Include Path中
14.复制Micrium\Software\uC-LIB目录下的所有.h文件到LIB目录下,并添加到Include Path中
15.注释掉bsp.h中的#include <stm32f10x_lib.h>和#include <lcd.h>
16.app_cfg.h文件中,修改为#define APP_OS_PROBE_EN 0
17.APP目录下新建app.c文件,内容为
#include <includes.h>int main(){OSInit();OSStart();return 0;
}
18.注释掉includes.h文件中的#include <stm32f10x_lib.h>和#include <lcd.h>
至此,第一步准备工作完成,虽然未实现任何功能,至少编译不再报错了
1.一步一步移植ucos到stm32f103开发版(修订版)相关推荐
- 机智云代码移植_一步一步移植麒麟座例程到机智云GoKit V2.1
本帖最后由 hiyle 于 2016-12-14 15:53 编辑 由于麒麟座开发版申请很慢,而很多朋友之前都有机智云的GoKit的开发版,我们可以利用起来学习OneNET的接入. 例程:麒麟座One ...
- 【ARM】一步一步移植Linux Kernel 2.6.13到板子
1环境搭建所需材料 2环境搭建所需材料之间的关系 3所使用的开发板 4译内核 1修改makefile 2拷贝配置文件 3编译得到zImage 4把zImage转成uImage 5开发板串口连接 6ub ...
- 用C语言写ucos中断服务程序,在ARM处理器上移植uCOS II的中断处理
uCOS II是一个源码公开.可移植.可固化.可剪裁和抢占式的实时多任务操作系统,其大部分源码是用ANSI C编写,与处理器硬件相关的部分使用汇编语言编写.总量约200行的汇编语言部分被压缩到最低限度 ...
- 一步一步教你如何将 yolov3/yolov4 转为 caffe 模型
实际工作中,目标检测 yolov3 或者 yolov4 模型移植到 AI 芯片中,经常需要将其先转换为 caffe1.x 模型,大家可能或多或少也有这方面的需求.例如华为海思 NNIE 只支持caff ...
- 【Linux】一步一步学Linux——初识Linux命令解析器(10)
00. 目录 文章目录 00. 目录 01. Shell简介 02. Shell分类 03. 交互式shell和非交互式shell 04. 登录shell和非登录shell 05. Shell类型 0 ...
- unity跑酷怎么添加金币_【Unity3D实战】零基础一步一步教你制作跑酷类游戏(填坑完整版)...
在两个月前曾写了一篇<[Unity3D实战]零基础一步一步教你制作跑酷类游戏(1)>,里面一步一步演示了制作跑酷类游戏,然而由于时间原因,只写到了让角色往前移动为止.这个坑一直没有时间去填 ...
- pve 加大local容量_一步一步实现Proxmox (pve)环境的家庭服务器(WIN,DSM,软路由)...
本帖最后由 wolfgangsk07 于 2019-4-12 17:04 编辑 一步一步实现Proxmox (pve)环境的家庭服务器(WIN,DSM,软路由) 导语:ESXI由于其操作的简便,得到了 ...
- 【Linux】一步一步学Linux——Linux发展史(01)
00. 目录 文章目录 00. 目录 01. Linux概述 02. Linux简史 03. Linux主要特性 04. Linux之父 05. Linux相关术语 06. Linux其它 07. L ...
- 【Unity3D实战】零基础一步一步教你制作跑酷类游戏
原转载自 https://blog.csdn.net/sun15980/article/details/51093048 ,已失效 新 [Unity3D开发小游戏]Unity3D零基础一步一步教你制作 ...
最新文章
- java聊天程序步骤解析_java网络之基于UDP的聊天程序示例解析
- 基因结构图绘制-单个基因
- SAP QM-IDI 初探
- 面试官问我:spring、springboot、springcloud的区别,我笑了
- html定义好的css样式不能被渲染
- 开源个小工具simple-repo
- 计算机初赛基础知识,备战初赛计算机基础知识
- 大数据-HDFS 配置与使用
- ucenter php7.0版,UCenter1.5.0/UCenter Home1.5/Discuz! 7.0
- Java服务器上显示图片问题_java,_服务器读取图片到jsp显示问题,java - phpStudy
- ztree隐藏指定节点后面的(重命名和删除)图标
- 字符串交错组成--很优美的递归算法
- int main(int argc,char *argv[])该函数中int argc和argv[]两个参数的理解你懂多少?
- NumberFormat和DecimalFormat
- linux同花顺乱码,打开同花顺软件全是问号
- HttpWatch软件介绍与基本使用
- ElasticSearch汇总
- Windows 中如何远程访问内网计算机
- python八进制表示_八进制python
- 音乐手记之民谣二:Chamber
热门文章
- Ubuntu 查看隐藏的文件
- android selector的用法解析
- 【luogu3398】 仓鼠找sugar [LCA 倍增]
- 如何编写可测试的golang代码
- Vue-Resource请求PHP数据失败的原因
- java.sql.Exception:setString 只能处理少于 32766 个字符的字符串
- C语言对mysql数据库的操作
- jquery图片播放切换插件
- MySql按日期进行统计(前一天、本周、某一天)[转载]
- Android模拟器学framework和driver之传感器篇1(linux sensor driver)