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
关键字:Keil环境 FreeRTOS STM32L
引用地址:
Keil环境中建立带FreeRTOS的STM32L项目
推荐阅读最新更新时间:2024-03-16 16:11
STM32F4+FreeRTOS+FreeRTosTcpIp移植教程
花了几天时间完成了FreeRTOS自带的TCP/IP协议栈在stm32F407上的移植,在此记录并分享,第一次写这个,写的不好的地方见谅。 硬件是stm32F407最小系统(内带phy控制器),所以还需要一个phy芯片,选了DP83848这款不带协议栈的芯片。 选了一款淘宝上的以太网模块,内置芯片就是DP83848,只提供RMII接口(mac和phy的通信方式),自带50M振晶 (所以不需要stm32PA8口输出时钟源)。 两者硬件接口如下: 软件方面: (1)需要完成stm32MAC控制器的初始化。(st库自带有) (2)需要完成DP83848的驱动。(st库自带有) (3)FreeRTos和Tc
[单片机]
FreeRTOS STM32移植笔记
1.前言 【1】其实说不上移植笔记,FreeRTOS已经移植至众多平台(MCU),包括MSP430,STM32等,这份笔记完全建立在官方代码的基础之上,简单的说就是修改一些设置从而完成一个呼吸灯实验。 【2】虽然有官方移植代码,但是官方移植版本为STM32的V2.X库,与现在流行的V3.5有比较大的区别。本笔记也是总结网上几篇学习笔记,主要说明如果使用V3.5库,需要做哪些修改。 【3】编译软件为IAR EWARM 6.5。 【相关博文】 【 FreeRTOS学习笔记——任务间使用队列同步数据 】——如何使用FreeRTOS队列。 【 如何在FreeRTOS下实现低功耗——MSP430F5438平台 】
[单片机]
嵌入式开发:如何使用机智云+STM32F407+ESP8266+freeRTOS设计
前言 随着物联网的发展,未来的嵌入式产品必然朝着更加智能化、场景多样化、实时性更高等趋势发展,要处理好这些任务时,一个好的RTOS少不了。对于嵌入式开发者来说,了解和学习一个RTOS也是必要项之一,上手简单、及时性和可靠性高的FreeRTOS是最佳选择,和对开发者友好、物联网开发平台机智云配合,刚好满足了我对智能化开发的需求。 下面,我将从基础入手,来讲讲使用机智云+STM32F407+ESP8266+freeRTOS的设计,分别定义了GPIO输入输出,PWM输入输出。(本文由机智云开发者发表于CSDN,ID号:霁雪寒霄) 01 WiFi模块烧录GAgent 1.1 在机智云官网上下载固件,下载好的固件如图1-1所示。 1
[单片机]
STM32与FreeRTOS学习备忘,xSemaphoreGiveFromISR
在学习FreeRTOS的时候,使用中断释放信号量时,出现了问题。 中断函数卡在xSemaphoreGiveFromISR();函数里了,具体是卡在portASSERT_IF_INTERRUPT_PRIORITY_INVALID();里。 根据注释查看http://www.freertos.org/RTOS-Cortex-M3-M4.html,里面有两点点出关键。 1. Most systems default to the wanted configuration, with the noticeable exception of the STM32 driver library. If you are using
[单片机]
沁恒CH32F103C8T6(一): Keil5环境配置,示例运行和烧录
概述 CH32F103系列是沁恒生产的32位Cortex-M3 MCU, 片上集成了时钟安全机制、多级电源管理、 通用DMA控制器等. 具有 2 路 USB2.0接口、多通道 TouchKey、 12 位 DAC 转换模块, 多通道 12 位 ADC、 多组定时器、 CAN 通讯控制器、 I2C/USART/SPI 等丰富的外设资源. 与STM32F103系列芯片相比, 管脚和寄存器兼容, 增加了USB功能, 有2个USB, 一个Host, 一个Device, 增加了DAC, 供电兼容5V Flash下载算法和内部BootLoader和STM32不兼容, 需要使用沁恒提供的算法, 或者使用沁恒的下载软件通过串口和USB下载.
[单片机]
关于由CubeMx生成stm32f4+freertos,不正常分析之堆栈大小设置
freertos官方手册上有说,移植中出现的问题大多数是由堆栈设置不合理造成的,今天结合自身遇到问题分析一下 1.任务堆栈设置过小,很容易造成硬件溢出,跳转到void HardFault_Handler(void); 调试方法,可以通过调用函数,UBaseType_t uxTaskGetStackHighWaterMark( TaskHandle_t xTask );来跟踪剩余堆栈, 不过在CubeMx中的Configuration- FreeRtos- Include parameters中使能uxTaskGetStackHighWaterMark函数; 2.整体设置过小,TOTAL_HEAP_SIZE(Conf
[单片机]
教大家如何在STM32F4上跑freeRTOS
之前挖了图解freeRTOS的坑,挖了坑就得填。今天就从使用开始,先把freeRTOS用起来。先聊一聊在STM32F407上的如何电灯,如果只用freeRTOS点灯,无疑有点杀鸡用牛刀的感觉。但是想用freeRTOS做产品,先照类似步骤则可以验证最小系统,验证freeRTOS是否能正确跑起来,再在此基础上开始做应用开发,就把任务分解了。本文主要梳理一下如何利用官方移植例子,创建一个自己demo工程,对于没用过的有点参考价值。 注:本文基于IAR for ARM 8.22.1(个人喜欢IAR),硬件采用正点原子的STM32F407探索者开发板,STLink V2。 准备工作去官网https://www.freertos.org/
[单片机]
如何利用官方移植例子,创建一个自己demo工程
之前挖了图解 freeRTOS 的坑,挖了坑就得填。今天就从使用开始,先把freeRTOS用起来。先聊一聊在 STM32 F407上的如何电灯,如果只用freeRTOS点灯,无疑有点杀鸡用牛刀的感觉。但是想用freeRTOS做 产品 ,先照类似步骤则可以验证最小系统,验证freeRTOS是否能正确跑起来,再在此基础上开始做应用开发,就把任务分解了。本文主要梳理一下如何利用官方移植例子,创建一个自己demo工程,对于没用过的有点参考价值。 注:本文基于IAR f or ARM 8.22.1(个人喜欢IAR), 硬件 采用正点原子的STM32F407探索者开发板,STLink V2。 准备工作 去官网https://www.
[单片机]