OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 13194|回复: 34

FreeRTOS移植STM32F103 && STM32F407

[复制链接]

  离线 

110

主题

7274

帖子

12

精华

资深版主

Rank: 8Rank: 8

积分
10477
金钱
10477
注册时间
2013-9-10
在线时间
297 小时
发表于 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, 下载次数: 19639

FreeRTOSv8.2.2.exe

11.9 MB, 下载次数: 5904

FreeRTOS_STM32F4xx.zip

1.96 MB, 下载次数: 12169

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

使用道具 举报

  离线 

6

主题

91

帖子

0

精华

高级会员

Rank: 4

积分
760
金钱
760
注册时间
2014-11-15
在线时间
90 小时
发表于 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, 下载次数: 764

回复 支持 2 反对 0

使用道具 举报

  离线 

10

主题

38

帖子

0

精华

初级会员

Rank: 2

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

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

使用道具 举报

  离线 

7

主题

155

帖子

1

精华

高级会员

Rank: 4

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

使用道具 举报

  离线 

67

主题

2698

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

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

使用道具 举报

  离线 

37

主题

518

帖子

1

精华

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

  离线 

13

主题

271

帖子

0

精华

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

  离线 

48

主题

535

帖子

2

精华

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

  离线 

1

主题

17

帖子

0

精华

中级会员

Rank: 3Rank: 3

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

使用道具 举报

  离线 

10

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
140
金钱
140
注册时间
2013-12-20
在线时间
23 小时
发表于 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了吗,运行下来是正常的
回复 支持 反对

使用道具 举报

  离线 

110

主题

7274

帖子

12

精华

资深版主

Rank: 8Rank: 8

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

使用道具 举报

  离线 

110

主题

7274

帖子

12

精华

资深版主

Rank: 8Rank: 8

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

使用道具 举报

  离线 

24

主题

904

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1266
金钱
1266
注册时间
2012-12-27
在线时间
23 小时
发表于 2015-12-30 12:01:57 | 显示全部楼层
八度兄 非常感谢啊  学习了
回复 支持 反对

使用道具 举报

  离线 

12

主题

177

帖子

0

精华

中级会员

Rank: 3Rank: 3

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

使用道具 举报

  离线 

12

主题

428

帖子

0

精华

高级会员

Rank: 4

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

使用道具 举报

  离线 

3

主题

82

帖子

0

精华

高级会员

Rank: 4

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

使用道具 举报

  离线 

110

主题

7274

帖子

12

精华

资深版主

Rank: 8Rank: 8

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

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

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

使用道具 举报

  离线 

0

主题

5

帖子

0

精华

初级会员

Rank: 2

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

使用道具 举报

  离线 

78

主题

904

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

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

使用道具 举报

  离线 

110

主题

7274

帖子

12

精华

资深版主

Rank: 8Rank: 8

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

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

使用道具 举报

  离线 

0

主题

2

帖子

0

精华

新手上路

Rank: 1

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

使用道具 举报

  离线 

110

主题

7274

帖子

12

精华

资深版主

Rank: 8Rank: 8

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

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

使用道具 举报

  离线 

0

主题

2

帖子

0

精华

新手上路

Rank: 1

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

使用道具 举报

  离线 

110

主题

7274

帖子

12

精华

资深版主

Rank: 8Rank: 8

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

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

使用道具 举报

  离线 

2

主题

9

帖子

0

精华

初级会员

Rank: 2

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

使用道具 举报

  离线 

110

主题

7274

帖子

12

精华

资深版主

Rank: 8Rank: 8

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

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

使用道具 举报

  离线 

2

主题

9

帖子

0

精华

初级会员

Rank: 2

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

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

使用道具 举报

  离线 

110

主题

7274

帖子

12

精华

资深版主

Rank: 8Rank: 8

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

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

使用道具 举报

  离线 

142

主题

467

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

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

使用道具 举报

  离线 

0

主题

4

帖子

0

精华

新手上路

Rank: 1

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

使用道具 举报

  离线 

6

主题

18

帖子

0

精华

初级会员

Rank: 2

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

使用道具 举报

  离线 

12

主题

428

帖子

0

精华

高级会员

Rank: 4

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

使用道具 举报

  离线 

1

主题

15

帖子

0

精华

初级会员

Rank: 2

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

使用道具 举报

  离线 

0

主题

2

帖子

0

精华

初级会员

Rank: 2

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

使用道具 举报

  离线 

7

主题

35

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
257
金钱
257
注册时间
2017-8-14
在线时间
50 小时
发表于 2017-11-1 14:07:53 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

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

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2017-11-23 04:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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