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上的移植的更多相关文章

  1. KEIL MDK环境下uCOS-II在LPC17xx上的移植实例

    1. 知识准备 要想对ucos-ii的移植有较深的理解,需要两方面知识: (1)目标芯片,这里是lpc17xx系列芯片,它们都是基于ARMv7 Cortex-M3内核,所以这一类芯片的ucos-ii移 ...

  2. UCOSII在STM32F407上的移植

    1.ucosii移植准备工作 1.1准备基础工程: 移植的时候需要一个基础工程,为了方便起见我们就选取跑马灯实验,作为ucossii移植的基础工程. 1.2Ucossii源码: 1)Micrium官网 ...

  3. 怎样把UCos-ii_在STM32上的移植

    下载代码 stm32 标准外设库是 stm32 全系列芯片的外设驱动,有了它能够大大加速我们 开发 stm32. 首先从 st 公司的站点下载最新的 stm32 标准外设库,写本文时最新的版本号是 V ...

  4. Qt4.8.5在ARM9上的移植

    Qt4.8.5在ARM9开发板上的移植 以前移植过qtopia-embedded-2.2.0,俗称Qt/E,在早期的Qt框架中是使用X11桌面服务器系统,无法应用于嵌入式平台,为此产生了qtopia, ...

  5. OpenCV在ARM上的移植

    OpenCV在ARM上的移植 与X86 Linux类似,请参考:Linux 下编译安装OpenCV 本文在此基础上进行进一步操作. 网络上很多移植编译的方法比较老,多数针对OpenCV 1.0,而且方 ...

  6. SPI在linux3.14.78 FS_S5PC100(Cortex A8)和S3C2440上驱动移植(deep dive)

    由于工作的原因,对SPI的理解最为深刻,也和SPI最有感情了,之前工作都是基于OSEK操作系统上进行实现,也在US/OS3上实现过SPI驱动的实现和测试,但是都是基于基本的寄存器操作,没有一个系统软件 ...

  7. opus在arm的嵌入式平台上的移植和开发

    最近产品中要用到opus,圣上一声令下,把opus移植到我们平台上,什么?opus?opus是什么?在一脸 茫然中,我这特种兵码农就赤手空拳上战场了. 废话少说,赶紧在网站:https://opus- ...

  8. μC/OS-II在Microblaze上的移植与使用专题--“安富利杯”赛灵思FPGA设计技巧与应用创新博文大赛参赛作品

    reference:http://xilinx.eetrend.com/d6-xilinx/blog/2010-05/682.html   随着集成电路设计与制造技术的发展,FPGA芯片的容量越来越大 ...

  9. PCIE_DMA实例四:xapp1052在Xilinx 7系列(KC705/VC709)FPGA上的移植

    PCIE_DMA实例四:xapp1052在Xilinx 7系列(KC705/VC709)FPGA上的移植 一:前言 这段时间有个朋友加微信请求帮忙调试一块PCIe采集卡.该采集卡使用xilinx xc ...

随机推荐

  1. over-float清除浮动++隐藏溢出

    overflow:hidden这个CSS样式是大家常用到的CSS样式,但是大多数人对这个样式的理解仅仅局限于隐藏溢出,而对于清除浮动这个含义不是很了解.一提到清除浮动,我们就会想到另外一个CSS样式: ...

  2. POJ 1523 SPF (去掉割点能形成联通块的个数)

    思路:使用tarjan算法求出割点,在枚举去掉每一个割点所能形成的联通块的个数. 注意:后来我看了下别的代码,发现我的枚举割点的方式是比较蠢的方式,我们完全可以在tarjan过程中把答案求出来,引入一 ...

  3. 多校 Cow Bowling

    题目链接:http://acm.hust.edu.cn/vjudge/contest/124435#problem/I 密码:acm Sample Input Sample Output 分析: #i ...

  4. 教你用CSS代码写出的各种形状图形

    做网页设计时经常要用到各种形状的图形,对于规则的图形很简单,但是对于不规则的图形,一般我们都是用图片,今天就在这里教大家怎样用css代码写出各种规则不同的图形 1.正方形 #square {width ...

  5. jQuery validation

    之前做客户端验证感觉自己javascript 不行,虽然能写出来一完整的验证,但从不自信,一直觉得客户端验证是比较繁琐的事情,但是又不能不做,只到最开始接触ajax ,遇到了一个jQuery vali ...

  6. linux下CPU信息查询

    1.查看逻辑CPU个数: #cat /proc/cpuinfo |grep "processor"|sort -u|wc -l24 2.由于有超线程技术有必要查看一下物理CPU个数 ...

  7. android - 自定义(组合)控件 + 自定义控件外观

    转载:http://www.cnblogs.com/bill-joy/archive/2012/04/26/2471831.html android - 自定义(组合)控件 + 自定义控件外观   A ...

  8. 转 区别 getChildFragmentManager getSupportFragmentManager

    The definition of getChildFragmentManager() is: Return a private FragmentManager for placing and man ...

  9. gen_grant_dml.sql

    set echo off feedback off verify off pagesize 0 linesize 120 define v_grantee                = & ...

  10. HDFS读写程序小测试

    WriteHdfs: package aa; import java.io.*; import org.apache.hadoop.conf.Configuration; import org.apa ...