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

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. 七种机器内部排序的原理与C语言实现,并计算它们的比较次数与移动次数。

    内部排序是指待排序列完全存放在内存中所进行的排序过程,适合不太大的元素序列. 排序是计算机程序设计中的一种重要操作,其功能是对一个数据元素集合或序列重新排列成一个按数据元素某个相知有序的序列.排序分为 ...

  2. PYTHON黑帽编程1.5 使用WIRESHARK练习网络协议分析

    Python黑帽编程1.5  使用Wireshark练习网络协议分析 1.5.0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks At ...

  3. Silverlight及WPF中实现自定义BusyIndicator

    在开发Silverlight或者WPF项目时,当我们调用Web服务来加载一些数据时,由于数据量比较大需要较长的时间,需要用户等待,为了给用户友好的提示和避免用户在加载数据过程中进行重复操作,我们通常使 ...

  4. 玩转Windows服务系列——Windows服务小技巧

    伴随着研究Windows服务,逐渐掌握了一些小技巧,现在与大家分享一下. 将Windows服务转变为控制台程序 由于默认的Windows服务程序,编译后为Win32的窗口程序.我们在程序启动或运行过程 ...

  5. ie a absolute bug

    给a设置position:absolute时,在IE下,尽管display:block;width:100%;height:100%,依然无法点击.但是加一个背景颜色就可以了.如果不需要背景,再把背景 ...

  6. 跟我一起数据挖掘(21)——redis

    什么是Redis Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工 ...

  7. 设计模式之里氏代换原则(LSP)

    里氏代换原则(Liskov Substitution Principle, LSP) 1 什么是里氏代换原则 里氏代换原则是由麻省理工学院(MIT)计算机科学实验室的Liskov女士,在1987年的O ...

  8. jQuery源码分析系列(40): 动画设计

    前言 jQuery动画是通过animate这个API设置执行的,其内部也是按照每一个animate的划分封装了各自动画组的行为, 包括数据过滤.缓动公式.一些动画默认参数的设置.元素状态的调整.事件的 ...

  9. python3 字符串与列表常用功能

    一.字符串常用功能 1. capitalize(),将字符串的首字母变成大写,其余全部置为小写:如果字符串中有多个单词,也只是将第一个单词的首字母置为大写:例: >>> name = ...

  10. OpenCASCADE Conic to BSpline Curves-Hyperbola

    OpenCASCADE Conic to BSpline Curves-Hyperbola eryar@163.com Abstract. Rational Bezier Curve can repr ...