本文是网上转载,版权所有。

Keil环境中建立带FreeRTOS的STM32L项目

1、先把source文件夹复制至project目录,然后在keil中添加RTOS文件,如图:

其中heap_2.c按需选择,可以是heap_1.c等,若需croutine型任务则还需添加croutine.c文件。

2、添加include目录,位于source下的include文件夹。

3、把FreeRTOSConfig.h文件复制到source下的include文件夹,或者其他用户文件夹下也可,这是FreeRTOS的功能配置文件,要按需修改的。

4、为了能连接到portmacro.h文件,还需添加include路径Source\portable\RVDS\ARM_CM3

5、以下移植步骤细节需参考“FreeRTOS在STM32上的移植 V1.0”。首先修改PORTMACRO.H文件。基本不用修改。

6、port.c文件也基本不用修改。

7、PORTASM.S文件在keil环境是不需要的,相关的函数放在了port.c文件中。

8、修改startup文件(要选择对应芯片的文件,并且要先取消其只读属性):

SVC_Handler 修改为vPortSVCHandler

PendSV_Handler 修改为xPortPendSVHandler

SysTick_Handler 修改为xPortSysTickHandler

并在“__heap_limit”下面,“PRESERVE8”前面加入以下内容

IMPORT xPortPendSVHandler

IMPORT xPortSysTickHandler

IMPORT vPortSVCHandler

9、修改PORTMACRO.H中的configCPU_CLOCK_HZ为对应的频率值,单位是Hz。全速的STM32L可设为32000000

1、先把source文件夹复制至project目录,然后在keil中添加RTOS文件,如图:

其中heap_2.c按需选择,可以是heap_1.c等,若需croutine型任务则还需添加croutine.c文件。
2、添加include目录,位于source下的include文件夹。

3、把FreeRTOSConfig.h文件复制到source下的include文件夹,或者其他用户文件夹下也可,这是FreeRTOS的功能配置文件,要按需修改的。
4、为了能连接到portmacro.h文件,还需添加include路径Source\portable\RVDS\ARM_CM3

5、以下移植步骤细节需参考“FreeRTOS 在STM32上的移植 V1.0”。首先修改PORTMACRO.H文件。基本不用修改。
6、port.c文件也基本不用修改。
7、PORTASM.S文件在keil环境是不需要的,相关的函数放在了port.c文件中。
8、修改startup文件(要选择对应芯片的文件,并且要先取消其只读属性):
SVC_Handler 修改为vPortSVCHandler
PendSV_Handler 修改为xPortPendSVHandler
SysTick_Handler 修改为xPortSysTickHandler

并在 “__heap_limit”下面,“PRESERVE8”前面加入以下内容
IMPORT xPortPendSVHandler
IMPORT xPortSysTickHandler
IMPORT vPortSVCHandler
9、修改PORTMACRO.H中的configCPU_CLOCK_HZ为对应的频率值,单位是Hz

Keil环境中建立带FreeRTOS的STM32L项目的更多相关文章

  1. keil C51中建立多文件时,变量重复定义的解决

    c/c++语言中有很多地方要用到extern,但是如果没有真正的了解它的意义,会给编程带来很大的麻烦,为了使大家少走弯路,特祥细的说明一下. 对于比较小的程序,一般只有一个c文件和一个头文件,全局变量 ...

  2. Keil c中自定义带可变参数的printf函数

    在嵌入式c中,往往采用串口打印函数来实现程序的调试,而在正式程序中一般是不需要这些打印代码的,通常做法是在这些调试用打印代码的前后设置一个宏定义块来实现是否启用这段代码,比如: // other us ...

  3. 搭建Vue.js环境,建立一个简单的Vue项目

    基于vue-cli快速构建 Vue是近年来比较火的一个前端框架,所以搭建Vue.js环境,要装webpack,vue-cli,Vue 安装webpack命令如下 $ cnpm install webp ...

  4. Idea开发环境中,开发springboot类型的项目,如果只引入parent节点,不添加依赖节点,maven是不会加载springboot的任何依赖的

    在SpringBoot类型的项目中,我本来是要使用pringBoot,创建一个Console项目,我原本在pom.xml中添加paren节点了,天真的认为不需要再添加其他任何依赖了,可是接下来的1个小 ...

  5. 用eclipse中自带的jetty启动项目

    1.建立datasources.xml,创建jndi <jee:jndi-lookup id="datasource" jndi-name="jndiname&qu ...

  6. Keil C51中函数指针的使用

    函数指针在C语言中应用较为灵活.在单片机系统中,嵌入式操作系统.文件系统和网络协议栈等一些较为复杂的应用都大量地使用了函数指针.Keil公司推出的C51编译器是事实上80C51 C编程的工业标准,它针 ...

  7. web环境中的spring MVC

    1. web.xml文件的简单详解 在web环境中, spring MVC是建立在IOC容器的基础上,要了解spring mvc,首先要了解Spring IOC容器是如何在web环境中被载入并起作用的 ...

  8. 开发环境中biztalk项目设置注意事项(转)

      适用版本:biztalk 2006 适用环境:开发测试环境 在开发过程中,在开发环境中,一定会是一个对项目不断的修改.编译.部署.测试,查看测试结果,发现有问题,然后回到开发环境再修改.编译.部署 ...

  9. 如何将其它javaweb项目变成可以成功在自己eclipse环境中运行的javaweb项目?

    说明:此文档仅适用于以下两种情况     (1)myeclipse项目需要在eclipse环境中运行     (2)eclipse项目,但是无法在自己的电脑eclipse环境中运行     注意:以下 ...

随机推荐

  1. iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控

    -- iOS事件全面解析 概览 iPhone的成功很大一部分得益于它多点触摸的强大功能,乔布斯让人们认识到手机其实是可以不用按键和手写笔直接操作的,这不愧为一项伟大的设计.今天我们就针对iOS的触摸事 ...

  2. gulp使用小结(二)

    接上篇文章接Gulp使用小结(一) 内容如下: 首先,偶在gulp-demos上已经提交了个较通用的栗子...俺琢磨半天,原准备分阶段搞些 Gulp 套路,但是写完介个栗子之后,觉得已经能覆盖绝大多数 ...

  3. JavaScript面试时候的坑洼沟洄——逗号、冒号与括号

    看完了javaScript数据类型和表达式与运算符相关知识后以为可以对JavaScript笔试题牛刀小试一把了,没想到有一次次的死在逗号,冒号和括号上,不得已再看看这几个符号吧. 逗号 逗号我们常见的 ...

  4. Intellij IDEA 13.1.3 创建Java Web项目

    作者QQ:1095737364 1.  Intellij 编辑工具,找到File-->New Project 2.   打开后点击java-->选中WebApplication 和Java ...

  5. Atitit  补充说明 sql知识图谱与线路图attilax总结补充说明

    Atitit  补充说明 sql知识图谱与线路图attilax总结补充说明 1. 常见编程语言的分类  :命令式语言.函数式语言.逻辑语言1 1.1. 按照编程语言的代际划分,又2gl,3gl,4gl ...

  6. java轻量级IOC框架Guice

    Google-Guice入门介绍(较为清晰的说明了流程):http://blog.csdn.net/derekjiang/article/details/7231490 使用Guice,需要添加第三方 ...

  7. LINQ系列:LINQ to SQL Where条件

    1. 单一条件查询 var expr = context.Products .Where(p => p.ProductName == "LINQ to SQL"); SELE ...

  8. JAVA基础代码分享--求圆面积

    问题描述 用户输入圆的半径,计算并显示圆的面积 代码分享 /** * @author hpu-gs * 2015/11/25 */ public class Circle { public stati ...

  9. MongoDB学习系列(2)--使用PHP访问MongoDB

    第一部分:介绍 在Windows上安装最新MongoDB步骤非常的简单,这里不做介绍.但是如果你安装的时候没有将MongoDB作为服务运行,每次你都要使用cmd切换到指定的目录下,然后在cmd中启动M ...

  10. CSS之水平垂直居中

    在css的世界里,如果我们想让一个块级元素水平居中,想必大家都知道利用margin:0 auto;嘛,这样就可以让块级元素在它的父元素中水平居中了. 列如这样: <!DOCTYPE html&g ...