OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 103317|回复: 39

FreeRTOS移植STM32F103 && STM32F407

[复制链接]

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
发表于 2015-10-2 21:37:16 | 显示全部楼层 |阅读模式
STM32F103移植环境:自己画的STM32F103板子,主控芯片是STM32F103VET6,http://www.openedv.com/posts/list/26648.htm
编译环境:MDK5.14
库版本:   V3.5
RTOS版本:FreeRTOS_V8.2.2

STM32F4移植环境:原子哥探索者开发板https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-959568043.12.zWbqNM&id=41855882779
编译环境:MDK5.14
库版本:   V1.5.1
RTOS版本:FreeRTOS_V8.2.2

一、下载FreeRTOS源文件
        这个可以在百度上下载,或者在官网上面下载http://www.freertos.org/a00104.html
       下图位置即可下载了


       目前最新版本是8.2.2
二、下载源码下来,解压,将源码添加到工程
      2.1 新建一个移植工程(拷贝原子哥的也行),在工程中新建一个文件夹FreeRTOS存放源码
      2.2 打开解压到的源码“..\FreeRTOSv8.2.2”,里边有几个文件夹和文件等东西


      2.3 双击打开“FreeRTOS”文件夹,看到如下文件


      看到上图中红色圈圈的就是源码了,整个文件夹拷贝到新建工程的“FreeRTOS”文件夹中
      2.4 在源码文件夹中“..\FreeRTOSv8.2.2\FreeRTOS\Demo\CORTEX_STM32F103_Keil”这个路径下,找到文件“FreeRTOSConfig.h”,拷贝到工程文件夹“FreeRTOS”中



三、打开MDK软件,新建工程,添加文件


       添加文件如上如所示,红色框框就是添加的FreeRTOS文件了;
      “port.c”文件路径..\FreeRTOS\Source\portable\RVDS\ARM_CM3
      “heap_2.c”文件路径..\FreeRTOS\Source\portable\MemMang
      “list.c”、“queue.c”、“tasks.c”文件路径..\FreeRTOS\Source
四、添加头文件路径


五、完成以上工作之后,编写main函数了


       没错,就弄了两个灯在闪烁,至于其他的复杂操作,各位就自己摸索了,呵呵
六、到这里,大家觉得就完了???还没有呢,修改启动文件,首先见启动文件的只读属性去掉,否则修改不了(已经去掉的就略过了)


       就是上图几个地方, 修改一下就可以了。。。
       这样修改大家一定想问为啥这样修改,用原来的不行么???移植uCOS都不用这样修改,真烦啊,汇编看不懂
    先不用泄气,双击打开port.c文件看看你就知道怎么回事了,是不是所有的函数官方都给你弄好了???什么任务切换,中断关闭与打开呀,什么乱七八糟的,都完成了,你只是修改这几个地方将函数名和port.c文件中的相同就性了
七、双击打开stm32f10x_it.c文件,大家一定知道干嘛了,是吧,呵呵
八、搞定之后,就开始编译改错了,完成后就下载,看到两个灯按照不同的频率在闪烁,呵呵
九、如果用的是STM32F407的片子,打开FreeRTOSConfig.h文件,将宏定义#define configCPU_CLOCK_HZ ( ( unsigned long ) 72000000 )  改为#define configCPU_CLOCK_HZ ( ( unsigned long ) 168000000 )

FreeRTOS_STM32F1xx.zip

1.74 MB, 下载次数: 21816

FreeRTOSv8.2.2.exe

11.9 MB, 下载次数: 6546

FreeRTOS_STM32F4xx.zip

1.96 MB, 下载次数: 15371

现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

91

帖子

0

精华

高级会员

Rank: 4

积分
767
金钱
767
注册时间
2014-11-15
在线时间
91 小时
发表于 2016-1-27 17:07:31 | 显示全部楼层
再补充点内容,大家学习吧:

基于楼主的STM32F1的移植,在正点原子战舰版(硬件V2.2)的基础上,实现4个任务:
1、红灯2秒闪1次
2、黄灯1秒闪1次
3、LCD滚动切换颜色显示
4、KEY0按键启停扬声器

顶楼主!!!

FreeRTOS_STM32F1xx_AlientekWarShip.zip

1.78 MB, 下载次数: 4421

回复 支持 4 反对 0

使用道具 举报

10

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
346
金钱
346
注册时间
2013-12-20
在线时间
94 小时
发表于 2015-12-21 22:54:49 | 显示全部楼层
谢谢分享,刚也模仿了一个,成功了,只是启动程序改的似懂非懂的,改的那3个楼主解释下吧

下面准备改个按键中断控制LED的,再熟悉下freerots的中断情况是怎么用
回复 支持 1 反对 0

使用道具 举报

13

主题

303

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2262
金钱
2262
注册时间
2015-2-3
在线时间
559 小时
发表于 2015-10-3 11:08:00 | 显示全部楼层
66666 等原子哥回来上班  应该就会置酷了!
STM32/LPC1788/51
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2015-10-3 14:07:05 | 显示全部楼层
敬礼,坐等置酷~
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

38

主题

526

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1419
金钱
1419
注册时间
2011-11-27
在线时间
122 小时
发表于 2015-10-4 09:51:58 | 显示全部楼层
good tie must ding~
永远保持一颗学习的心态。
回复 支持 反对

使用道具 举报

13

主题

296

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2066
金钱
2066
注册时间
2012-5-26
在线时间
291 小时
发表于 2015-12-2 11:48:29 | 显示全部楼层
刚用到,谢谢分享~
活着才是王道!健康是一切的前提!
回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1367
金钱
1367
注册时间
2014-2-13
在线时间
169 小时
发表于 2015-12-2 12:33:12 | 显示全部楼层
还在用V6.0.5版本
回复 支持 反对

使用道具 举报

4

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
438
金钱
438
注册时间
2013-7-16
在线时间
71 小时
发表于 2015-12-22 09:24:57 | 显示全部楼层
407的工程是否能打印浮点数?
是否能进行浮点数运算?
回复 支持 反对

使用道具 举报

10

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
346
金钱
346
注册时间
2013-12-20
在线时间
94 小时
发表于 2015-12-22 22:56:30 | 显示全部楼层
lz你好
我今天晚上在LED基础上搞了个按键控制蜂鸣器
//外部中断2服务程序
void EXTI2_IRQHandler(void)
{
taskENTER_CRITICAL();

if(KEY2==0)   //按键KEY2
{
BEEP=!BEEP;
}

EXTI_ClearITPendingBit(EXTI_Line2);  //清除LINE2上的中断标志位  
taskEXIT_CRITICAL();
}

中断部分这样处理就OK了吗,运行下来是正常的
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-12-23 17:57:10 | 显示全部楼层
回复【8楼】ap0405209:
---------------------------------
407有硬件浮点数运算单元,可以用硬件来算,速度快
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-12-23 17:58:02 | 显示全部楼层
回复【9楼】crossok:
---------------------------------
可以这样
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

头像被屏蔽

6168

主题

7036

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
19705
金钱
19705
注册时间
2012-12-27
在线时间
25 小时
发表于 2015-12-30 12:01:57 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

13

主题

185

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
270
金钱
270
注册时间
2014-4-9
在线时间
9 小时
发表于 2015-12-30 17:23:44 | 显示全部楼层
新版本论坛支持一下楼主
大海啊,全是水; 骏马啊,四条腿。
回复 支持 反对

使用道具 举报

12

主题

432

帖子

0

精华

高级会员

Rank: 4

积分
729
金钱
729
注册时间
2012-6-21
在线时间
59 小时
发表于 2016-1-12 16:29:45 | 显示全部楼层
谢谢。下载看看。。。。。
呵呵。
回复 支持 反对

使用道具 举报

4

主题

102

帖子

0

精华

高级会员

Rank: 4

积分
900
金钱
900
注册时间
2013-8-28
在线时间
114 小时
发表于 2016-1-26 11:12:37 | 显示全部楼层
原先用ucos,现在学习下freertos,谢谢分享
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2016-1-28 17:41:16 | 显示全部楼层
Bula 发表于 2016-1-27 17:07
再补充点内容,大家学习吧:

基于楼主的STM32F1的移植,在正点原子战舰版(硬件V2.2)的基础上,实现4个 ...

牛逼
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

0

主题

11

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
342
金钱
342
注册时间
2016-1-27
在线时间
42 小时
发表于 2016-2-15 13:43:16 | 显示全部楼层
MARK一下,以后用的上,谢谢楼主
回复 支持 反对

使用道具 举报

86

主题

982

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1846
金钱
1846
注册时间
2013-4-15
在线时间
163 小时
发表于 2016-5-3 17:58:49 | 显示全部楼层
真NB  啥系统都能移植了  我最近准备研究ucosii的移植  到时候参考你的那篇帖子  还没找到在哪
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2016-5-3 20:59:29 | 显示全部楼层
合肥-文盲 发表于 2016-5-3 17:58
真NB  啥系统都能移植了  我最近准备研究ucosii的移植  到时候参考你的那篇帖子  还没找到在哪

无聊搞搞
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2016-5-27
在线时间
7 小时
发表于 2016-5-27 10:27:57 | 显示全部楼层
请问大神,为什么我按照你的步骤来移植FreeRTOS到探索者上,会出现一运行到xTashDelay时会跳到HardFault,用你上传的历程不会。源码都跟你一模一样,
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2016-5-27 15:54:07 | 显示全部楼层
臭铁 发表于 2016-5-27 10:27
请问大神,为什么我按照你的步骤来移植FreeRTOS到探索者上,会出现一运行到xTashDelay时会跳到HardFault, ...

现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2016-5-27
在线时间
7 小时
发表于 2016-5-27 16:00:52 | 显示全部楼层
你工程配置那边有什么需要注意的吗、我把usb microlib勾起来就不会进入hardfault  但是我看你上传的工程,并没有勾选就可以正常运行。
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2016-5-27 17:43:30 | 显示全部楼层
臭铁 发表于 2016-5-27 16:00
你工程配置那边有什么需要注意的吗、我把usb microlib勾起来就不会进入hardfault  但是我看你上传的工程, ...

具体我也忘记了,好久没弄了,你看看
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

10

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
462
金钱
462
注册时间
2014-8-14
在线时间
129 小时
发表于 2016-9-3 12:13:18 | 显示全部楼层
LZ,能否请问一下,这个系统节拍你是怎么确定的呀。
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2016-9-3 13:24:31 | 显示全部楼层
Cindre鞡 发表于 2016-9-3 12:13
LZ,能否请问一下,这个系统节拍你是怎么确定的呀。

这个我记得是没改,官方的配置
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

10

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
462
金钱
462
注册时间
2014-8-14
在线时间
129 小时
发表于 2016-9-4 10:53:31 | 显示全部楼层
八度空间 发表于 2016-9-3 13:24
这个我记得是没改,官方的配置

嗯,谢谢回复。我昨天看了下代码,官方直接吧systick寄存器全部自己定义了,自己完成初始化。
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2016-9-4 21:56:04 | 显示全部楼层
Cindre鞡 发表于 2016-9-4 10:53
嗯,谢谢回复。我昨天看了下代码,官方直接吧systick寄存器全部自己定义了,自己完成初始化。

现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

145

主题

477

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1264
金钱
1264
注册时间
2012-4-2
在线时间
69 小时
发表于 2016-10-8 15:38:24 | 显示全部楼层
牛  学习
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2016-10-26
在线时间
0 小时
发表于 2016-10-26 14:53:55 | 显示全部楼层
同事说你的还不错,让我看看
回复 支持 反对

使用道具 举报

6

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
148
金钱
148
注册时间
2015-9-15
在线时间
24 小时
发表于 2016-10-28 15:35:21 | 显示全部楼层
学习了
回复 支持 反对

使用道具 举报

12

主题

432

帖子

0

精华

高级会员

Rank: 4

积分
729
金钱
729
注册时间
2012-6-21
在线时间
59 小时
发表于 2017-1-3 12:44:46 来自手机 | 显示全部楼层
好,。。。。。
回复 支持 反对

使用道具 举报

4

主题

28

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2013-11-21
在线时间
42 小时
发表于 2017-1-3 14:24:24 | 显示全部楼层
已下载,当作模版来用
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2017-1-16
在线时间
9 小时
发表于 2017-3-21 22:55:59 | 显示全部楼层
学习啦
回复 支持 反对

使用道具 举报

13

主题

71

帖子

0

精华

高级会员

Rank: 4

积分
696
金钱
696
注册时间
2017-8-14
在线时间
131 小时
发表于 2017-11-1 14:07:53 | 显示全部楼层
谢谢分享
yi?我的二哈哪去了
回复 支持 反对

使用道具 举报

38

主题

68

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
282
金钱
282
注册时间
2015-12-16
在线时间
49 小时
发表于 2019-1-17 17:19:40 | 显示全部楼层
请问怎样将启动文件的只读属性去掉呢?
回复 支持 反对

使用道具 举报

2

主题

474

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6077
金钱
6077
注册时间
2018-6-27
在线时间
524 小时
发表于 2019-1-19 08:01:14 | 显示全部楼层
学习学习,学习学习。
回复 支持 反对

使用道具 举报

1

主题

37

帖子

0

精华

高级会员

Rank: 4

积分
592
金钱
592
注册时间
2017-6-15
在线时间
75 小时
发表于 2019-3-13 16:54:09 | 显示全部楼层
厉害厉害!
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2016-1-15
在线时间
23 小时
发表于 2019-9-19 21:32:28 | 显示全部楼层
这个移植还是挺有意义的
回复 支持 反对

使用道具 举报

2

主题

57

帖子

0

精华

高级会员

Rank: 4

积分
532
金钱
532
注册时间
2014-3-3
在线时间
51 小时
发表于 2024-7-12 21:44:35 | 显示全部楼层
感谢楼主,很久没有玩了,下载下来温故一下做些小东西玩玩。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 11:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表