UCOSII在STM32F1上的移植
UCOSII在STM32F1上的移植
首先准备好一份STM32F1的工程、UCOSII源码。
在准备好的工程中新建一个“UCOSII”文件夹(或者取其它名字也行);

UCOSII文件夹用来存放有关UCOSII的文件,UCOS相关的文件也有几种不同用途的类型,在UCOSII文件夹中继续新建几个文件夹,用来存放不同作用的文件,我这边新建的是:“CORE”、“CONFIG”、“PORT”三个文件夹;

文件夹及文件都准备好后,打开工程,将上述文件及头文件都添加到工程中,头文件路径也包含下:

说明:“CORE”文件夹下放的是UCOSII源码,“CONFIG”文件夹下放的是UCOSII配置文件,其中的“os_cfg.h”文件中通过宏定义配置了大量参数,在此,举个例子说明下,例子中的这个宏定义也是非常重要的一个,“OS_TICKS_PER_SEC”,这个宏定义定义的是心跳包,如图所示:
,这句话的意思就是每秒钟有200次心跳;“PORT”文件夹下放的是一些需要根据不同芯片来使用或设置不同参数等这类文件的,比如其中的一个汇编文件:
如果是新手,这其中的文件的作用可以先不用深究,重点是“CORE”文件夹下的那些源码。
上述工作做完后就开始编译,如果此时编译出错,那就查原因,改正错误,此时一般常出现的错误是函数名或变量名与新增的UCOSII文件中的名字冲突之类错误,编译无错误后,就可以开始写基于UCOSII系统的代码了;
还需特别注意的一点:在UCOSII源码中的“os_cpu_c.c”文件中的函数“OS_STK *OSTaskStkInit (void (*task)(void *p_arg), void *p_arg, OS_STK *ptos, INT16U opt)”,需要注意的是,此函数是用来初始化堆栈的,如果你所使用的芯片换了,这个函数也要相应调整成能工供自己所使用的芯片使用的函数;
UCOSII体系结构

其中红色部分的代码是一些常用的源代码,在实际编程使用中,无论你使用的是什么CPU这些代码都是可以使用的,无需修改,我们只需调用就行;绿色部分是需要根据所写应用程序的不同来修改的;紫色部分是需要根据所用的CPU的不同来修改的,这一部分才是UCOSII移植中需要特别注意的;
UCOSII在STM32F1上的移植的更多相关文章
- KEIL MDK环境下uCOS-II在LPC17xx上的移植实例
1. 知识准备 要想对ucos-ii的移植有较深的理解,需要两方面知识: (1)目标芯片,这里是lpc17xx系列芯片,它们都是基于ARMv7 Cortex-M3内核,所以这一类芯片的ucos-ii移 ...
- UCOSII在STM32F407上的移植
1.ucosii移植准备工作 1.1准备基础工程: 移植的时候需要一个基础工程,为了方便起见我们就选取跑马灯实验,作为ucossii移植的基础工程. 1.2Ucossii源码: 1)Micrium官网 ...
- 怎样把UCos-ii_在STM32上的移植
下载代码 stm32 标准外设库是 stm32 全系列芯片的外设驱动,有了它能够大大加速我们 开发 stm32. 首先从 st 公司的站点下载最新的 stm32 标准外设库,写本文时最新的版本号是 V ...
- Qt4.8.5在ARM9上的移植
Qt4.8.5在ARM9开发板上的移植 以前移植过qtopia-embedded-2.2.0,俗称Qt/E,在早期的Qt框架中是使用X11桌面服务器系统,无法应用于嵌入式平台,为此产生了qtopia, ...
- OpenCV在ARM上的移植
OpenCV在ARM上的移植 与X86 Linux类似,请参考:Linux 下编译安装OpenCV 本文在此基础上进行进一步操作. 网络上很多移植编译的方法比较老,多数针对OpenCV 1.0,而且方 ...
- SPI在linux3.14.78 FS_S5PC100(Cortex A8)和S3C2440上驱动移植(deep dive)
由于工作的原因,对SPI的理解最为深刻,也和SPI最有感情了,之前工作都是基于OSEK操作系统上进行实现,也在US/OS3上实现过SPI驱动的实现和测试,但是都是基于基本的寄存器操作,没有一个系统软件 ...
- opus在arm的嵌入式平台上的移植和开发
最近产品中要用到opus,圣上一声令下,把opus移植到我们平台上,什么?opus?opus是什么?在一脸 茫然中,我这特种兵码农就赤手空拳上战场了. 废话少说,赶紧在网站:https://opus- ...
- μC/OS-II在Microblaze上的移植与使用专题--“安富利杯”赛灵思FPGA设计技巧与应用创新博文大赛参赛作品
reference:http://xilinx.eetrend.com/d6-xilinx/blog/2010-05/682.html 随着集成电路设计与制造技术的发展,FPGA芯片的容量越来越大 ...
- PCIE_DMA实例四:xapp1052在Xilinx 7系列(KC705/VC709)FPGA上的移植
PCIE_DMA实例四:xapp1052在Xilinx 7系列(KC705/VC709)FPGA上的移植 一:前言 这段时间有个朋友加微信请求帮忙调试一块PCIe采集卡.该采集卡使用xilinx xc ...
随机推荐
- Swift\本地文件管理
转载自:http://www.coloroud.com/2015/06/01/Swift-File-Manager/ 开头 看来Swift这趟浑水是非干不可,既然如此,那索性就来的彻底吧,来一次全方位 ...
- gameUnity 0.15 beta 网络游戏框架
增加了 换人 和换衣服 ,加入了动画事件.beta版本 0.15测试版本 目前就到此,正式版本 会在7月底 和 0.2版本一起推出.届时,换装系统 将不仅仅是 换装备,而是有 换装后 打怪的体验,更 ...
- hdu1501 Zipper
Zipper Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submis ...
- 常见的http状态码
[200]请求已成功,请求所希望的响应头或数据体将随此响应返回. [301]被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一.如果可能,拥有连结编辑功能 ...
- 学习笔记——代理模式Proxy
代理模式,主要是逻辑和实现解耦.具体逻辑如何,由代理Proxy自己来设计,我们只需要把逻辑Subject交给代理即可. 主要应用场景,包括创建大开销对象时,使用代理来慢慢创建:远程代理,如网络不确定时 ...
- 【将txt文本转图片】
[测试类] public static void main(String[] args) { try { File textFile = new File("F:\\java56班\\ecl ...
- apache RewriteCond RewriteRule
http://www.rockbb.com/blog/?p=319 http://www.cnblogs.com/scgw/archive/2011/12/10/2283029.html 我的理解:当 ...
- AngularJS Front-End App with Cloud Storage Tutorial Part 1: Building a Minimal App in Seven Steps
原文 : http://www.codeproject.com/Articles/1027709/AngularJS-Front-End-App-with-Cloud-Storage-Tutoria ...
- Fusioncharts图表组件API参考方法(Functions)汇总篇(续)
[摘要]: chartType()FusionCharts的JavaScript类API提供了大量的功能.下面的列表显示在每个功能的详细信息: 一.FusionCharts的类 - 实例功能 1.co ...
- iOS:判断昨天,今天,今年
- (BOOL)isThisYear { // 日历 NSCalendar *calendar = [NSCalendar currentCalendar]; NSInteger nowYear = ...