首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
»
ARM
» NucleoF429工程建立与FreeRTOS移植-2
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
NucleoF429工程建立与FreeRTOS移植-2
发短消息
加为好友
look_w
当前离线
UID
1066743
帖子
8283
精华
0
积分
4142
阅读权限
90
在线时间
233 小时
注册时间
2017-6-23
最后登录
2019-5-18
论坛元老
UID
1066743
1
#
打印
字体大小:
t
T
look_w
发表于 2018-1-24 20:28
|
只看该作者
NucleoF429工程建立与FreeRTOS移植-2
第二步:移植FreeRTOS
1、FreeRTOS下载下来是一个执行文件:
点击运行后会解压出Source Code。我们只是用
Source
文件夹里的文件。
2、在工程模板文件夹下建立FreeRTOS文件夹,将解压出的
Source
中的文件全部复制到新建的
FreeRTOS
中,
3、在
Keil
工程里添加
FreeRTOS
需要的文件:
除了FreeRTOS文件夹中的所有
.c
文件以外,还需要
Heap_2.c
和
Port.c
文件,这两个文件分别位于:
...FreeRTOS\portable\MemMang
和
...\FreeRTOS\portable\RVDS\ARM_CM4F
中
除了以上的
C
文件,还需要一个
FreeRTOS
的配置头文件,
FreeRTOS
的自带的
Demo
中有
STM32F407
的例程,复制
...\FreeRTOSV8.2.3\FreeRTOS\Demo\CORTEX_M4F_STM32F407ZG-SK
下的
FreeRTOSConfig.h
到工程的
Include
中。
4、添加FreeRTOS的头文件搜索路径。
以上基本完成了移植工作,但还有一些编译错误需要解决,可能是由于版本的原因和移植方式的原因,之前在
STM32F103
上移植是并没有多少错误,但这次
F429
上多了一些。
FreeRTOS的一些中断服务程序需要代替
F429
自带的程序,比如在
FreeRTOSConfig.h
定义了这三个中断服务程序,就需要把
STM32F4xx_it.c
中的
SVC_Handler()/PendSV_Handler()/SysTick_Handler()
这三个程序屏蔽掉,否则会报重复定义错误。(另一中解决办法是修改
.s
文件中的中断向量表,网上大多数采用这种方法。)
另一类错误就是
FreeRTOSConfig.h
定义了一些开关量,但实际的程序实现并没有给出,需要用户自己编写,所以我将这些都定义为
0
,默认不编译。
在
FreeRTOS
里添加任务之前,需要改一下默认的系统时钟,否则时间不准。在进入
main
之前,程序默认初始化了系统时钟,都是按照外接
25MHz
设置到
180Mhz
的,
NucleoF429
默认无外接高速晶振,所以要改变分频,在
system_stm32F4xx.c
中
PLL_M
由原来的
25
为
8
即可
.
编译无错后,可以添加任务了。
我使用了板子上自带的三个
LED
,实现不同频率的闪烁。
步骤分别是
1
、硬件初始化,
2
、创建任务,
3
、启动任务序列。
其中,任务的实现为:
FreeRTOS在遇到延时时会自动让出
CPU
,所以三个任务会轮流执行。
GPIOC
是为了测量时间。
以上是建立工程和移植
FreeRTOS
的全部过程。如果里面有错误的地方,欢迎各位留言讨论。
-------------------------------------------------监介的分割线--------------------------------------------------
没错!下面进一段广告!!
众所周知,版主在不久前发起了
活动,深受欢迎。版主本人也自讨腰包设置了奖品,欢迎各位留言参加。还有一个:
PS:我的前一片篇博客: 其中的串口波形显示软件很棒,欢迎下载使用,有什么问题可以留言给我,会及时回复。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议