首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
»
ARM
» NucleoF429工程建立与FreeRTOS移植-1
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
NucleoF429工程建立与FreeRTOS移植-1
发短消息
加为好友
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:27
|
只看该作者
NucleoF429工程建立与FreeRTOS移植-1
NucleoF429工程建立与移植
FreeRTOS
这一个帖子只讲怎么把
FreeRTOS
移植到
NucleoF429
上并运行三个任务,至于
FreeRTOS
的相关知识,网上也有许多文章和书籍,这里就不讲了(实际原因是我对
FreeRTOS
也一知半解,希望能和诸位一起讨论学习
^_^
)
事实上
STM32CubeMx
的自带了
FreeRTOS
的模块,只要勾选后进行一些简单的配置,就可以生成可用的工程,所以这一个帖子除了“重新发明轮子”之外,有一点可取之处就是可以理清移植
FreeRTOS
需要做那些事,不使用
STM32CubeMx
时或者在其他
MCU
上移植
FreeRTOS
该怎么做。
移植分两步
:
一、使用
F4
的固件库建立一个工程模板。
二、在新建的工程上移植
FreeRTOS
。
在移植之前需要下载
F4
的固件库,我使用的固件库版本是:【
STM32F4xx_DSP_StdPeriph_Lib_V1.7.1
】。可以到
ST
的官网上下载,最新版地址:
还需要
FreeRTOS
的
Source Code
,我使用的版本是
FreeRTOSV8.2.3
,
FeeRTOS
官网:
可自行下载。
第一步:建立工程模板
具体的建立过程和文件夹结构如下:
新建文件夹
NucleoF429_FreeRTOS
。
在
NucleoF429_FreeRTOS
下新建三个文件夹
Project
和
SysLib
和
User
。
在
SysLib
新建四个文件夹:
Startup
、
CMSIS
、
inc
、
src
。
接下来在各文件中添加对应的文件
Startup:复制
startup_stm32f429_439xx.s
文件到
Startup
中,该文件位于
...\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm中。
CMSIS:复制
stm32f4xx.h
、
system_stm32f4xx.h
、
system_stm32f4xx.c
到
CMSIS
中。上述文件位于
...\Libraries\CMSIS\Device\ST\STM32F4xx\Include
和
...\Project\STM32F4xx_StdPeriph_Templates
中。
Inc: 复制
...\Libraries\STM32F4xx_StdPeriph_Driver\inc
中的
.h
文件到
Inc
文件夹中,也可以按实际需要的外设选择相应的文件。
Src:复制
...\Libraries\STM32F4xx_StdPeriph_Driver\src
中的
.c
文件到
src
文件夹中,与
inc
文件对应,按需选择。
User:复制
stm32f4xx_conf.h
、
stm32f4xx_it.c
、
stm32f4xx_it.h
三个文件到
User
中,该文件位于
...\Project\STM32F4xx_StdPeriph_Templates
在
User
中建立一个
main.c
文件,包含
stm32f4xx.h
即可。
工程需要的文件已添加完成,现在开始建立
Keil
工程,在建立
Keil
工程之前,先查看你的
Keil
是否有
STM32F429
所需要的库。如图:
如果没有
STM32F4
的库就需要添加,第一种方式是在这个
Pack Installer
中添加
第二种是到
Keil
官网先下载
F4
的
.Pack
文件,再用
Pack Installer
导入。第一种方式下载速度慢且不支持断点续传,往往下载到一半就提示下载失败,所以推荐第二种方式。
Keil
的
Pack
文件下载地址是:
http://www.keil.com/dd2/Pack
找到需要的文件下载后再用
Pack Installer
导入即可。
接下来建立工程:
Project-->New uVision Project 选中
NucleoF429_FreeRTOS
下的
Project
文件夹,工程命名为
NucleoF429_FreeRTOS
点击保存,在弹出的
Select Device
窗口选中
ST
的
STM32F429ZITx
型号后点击
OK
这时会有另一个窗口弹出,不用理会直接
OK
即可。
按顺序编辑管理结构树:
四个文件中添加的文件为:
Startup:添加文件夹
Startup
中的
.s
文件,注意
.s
默认不会显示出来,在文件类型里选择
.s
格式
CMSIS:添加文件夹
CMSIS
中的
.c
文件。
SysLib:添加文件夹
src
中的
.c
文件。
User: 添加文件夹
User
中的
.c
文件。
完成后再进行头文件搜索路径设置
注意
Define
这一栏填写:【
USE_STDPERIPH_DRIVER,STM32F429_439xx
】
之后再进行一些其他设置:
调试方式选择SWD模式。
到此,基本的设置和建立都已完成,可以进行编译。
但这时候会报 identifier "FSMC_Bank1" is undefined 等30个错误,这是由于STM32F4xx.h中没有定义FSMC_Bank1等,只有FMC_Bank1,不知道这是Bug还是我哪里设置不对,因为现在暂时不用FSMC,所以将stm32f4xx_fsmc.c排除,不进行编译。
具体操作为,在SysLib下找到stm32f4xx_fsmc.c,右键
options for file 'stm32f4xx_fsmc.c'
去掉下图中的四个勾,再进行编译就没错了
到此为止,已经建立了一个空白的
F429
工程模板。
收藏
分享
评分
回复
引用
订阅
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
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议