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. [转]SSL协议与数字证书原理

    1 SSL(Secure Socket Lclientyer)是netscclientpe公司设计的主要用于weserver的安全传输协议.这种协议在WESERVER上获得了广泛的应用. SSL在TC ...

  2. angularJS 判断

    判断语句: ng-switch on ng-switch-when ng-switch-when ng-if=”person.sex==1“ <ul> <li ng-repeat=” ...

  3. IDL 实现PCA算法

    在多元统计分析中,主成分分析(Principal components analysis,PCA)是一种分析.简化数据集的技术.主成分分析经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特 ...

  4. git使用之如何将github库下载到本地与如何将代码上传github

    git使用之如何将github库下载到本地与如何将代码上传github ---------------------------------------------------------------- ...

  5. Linux查看端口被哪个进程占用

    netstat -lnp|awk 'BEGIN{prt=":443$"}{if ($4 ~ prt) print $0}' 查看443端口

  6. Html 中表单提交的一些知识总结——防止表单自动提交,以及submit和button提交表单的区别

    转自:http://jackaudrey.blog.163.com/blog/static/1314217882010590041833/ 在页面中有多个input type="text&q ...

  7. 常用的dos命名

    注销:logoff 注册表:regedit 查看显存:dxdiag 删除文件: del +文件 删除文件夹: rd+(/s)+文件名 (/s表示删除文件下的子目录和文件); 系统配置实用程序: msc ...

  8. JSON & XML 简析

    转载自:http://my.oschina.net/aofe/blog/269260 JSON: XML: JSON格式说明: HTML & XML 的对比 HTML: XML: HTML5新 ...

  9. Linux字符编码转换 UTF8转GB3212

    在LINUX上进行编码转换时,既可以利用iconv函数族编程实现,也可以利用iconv命令来实现,只不过后者是针对文件的,即将指定文件从一种编码转换为另一种编码.    一.利用iconv函数族进行编 ...

  10. 可信执行环境TEE(转)

    硬件威胁:ARM的架构设计 软件威胁 TEE是中等安全级别 可信执行环境(TEE)是Global Platform(GP)提出的概念.针对移动设备的开放环境,安全问题也越来越受到关注,不仅仅是终端用户 ...