OpenEdv-开源电子网

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

FreeRTOS移植失败

[复制链接]

2

主题

9

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2016-9-13
在线时间
6 小时
发表于 2016-9-13 22:07:11 | 显示全部楼层 |阅读模式
1金钱
准备学些FreeRTOS,把代码移植到板子上,不工作;
任务:
1.串口1每500ms发送数据

硬件:
1.STM32F103ZE
2.内部晶振

软件:
1.MDK 5.11

库:
1.3.5

FreeRTOS版本:
1.V8.2.1

问题:
1.系统进入硬件故障中断



谁能解决;
在此拜谢

projectFreeRTOS.zip

736.53 KB, 下载次数: 156

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2016-9-13
在线时间
6 小时
 楼主| 发表于 2016-9-13 22:08:14 | 显示全部楼层
基本上都是按照网上说明进行移植的,但是不管移植多少遍都移植出错.
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2016-9-13
在线时间
6 小时
 楼主| 发表于 2016-9-13 22:32:19 来自手机 | 显示全部楼层
不要沉下去
回复

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
11922
金钱
11922
注册时间
2015-11-5
在线时间
2086 小时
发表于 2016-9-14 09:17:57 | 显示全部楼层
1、能具体描述下问题么,就像我直接发一个工程给你参考一样,你光发一个工程上来基本没人愿意给你仔细查看的
2、建议使用v8的最后一个版本v8.2.3
3、如果没有研究过FreeRTOS源码的话,不建议随意改硬件底层配置,出问题了很难发现的
拿来长岛冰茶换我半晚安睡
回复

使用道具 举报

70

主题

6697

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12687
金钱
12687
注册时间
2012-11-26
在线时间
3710 小时
发表于 2016-9-14 09:32:58 | 显示全部楼层
直接用cubemx,配置好你要的参数,软件会帮你自动生成
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2016-9-13
在线时间
6 小时
 楼主| 发表于 2016-9-14 10:18:00 | 显示全部楼层
试过, 一时间适应不了, 准备以后慢慢改,现在还不会用它.
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2016-9-13
在线时间
6 小时
 楼主| 发表于 2016-9-14 10:20:31 | 显示全部楼层
发现在哪里出了问题,
1.#define configTOTAL_HEAP_SIZE                ( ( size_t ) ( 9 * 1024 ) ) 配置太小的话系统运行会异常
2.目前使用内部时钟时,会导致进入硬件异常中断.重新配置为外部时钟,倍频72mhz问题就不再出现.(为啥?为啥会出现这个问题)
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2016-9-13
在线时间
6 小时
 楼主| 发表于 2016-9-14 10:27:42 | 显示全部楼层
FreeRTOS 发表于 2016-9-14 09:17
1、能具体描述下问题么,就像我直接发一个工程给你参考一样,你光发一个工程上来基本没人愿意给你仔细查看 ...

2个问题现象:
1.配置为内部时钟后,出现启动进入systeminit()后就进入硬件异常处理程序;但是重新配置为外部晶振后问题不再出现;
注:内部晶振的配置应该没有问题,因为不使用系统一切都没哟问题,使用系统后问题就马上出来;

2.另外之前意外发现可以使用内部晶振(依然不知道咋解决的,也许就没有解决,只是表面上可以启动程序了),但是发现:
   a.建立一个简单的任务:每500ms发送一次数据,前几秒正常, 到后来数据就没有了.


本人交流能力比较差, 感谢您的耐心.
回复

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
11922
金钱
11922
注册时间
2015-11-5
在线时间
2086 小时
发表于 2016-9-14 10:45:50 | 显示全部楼层
本帖最后由 FreeRTOS 于 2016-9-14 10:50 编辑
jlicon 发表于 2016-9-14 10:27
2个问题现象:
1.配置为内部时钟后,出现启动进入systeminit()后就进入硬件异常处理程序;但是重新配置为外 ...

使用内部时钟是不会出现系统死机的情况的,FreeRTOS也不会管你用内部RC震荡还是外部晶振
我之前弄过一个机子单片机是STM32F051,用内部RC震荡,照样正常跑没死,记得当时也没改FreeRTOS的任何配置,建议你检查下SystemInit()是否被你改乱了
拿来长岛冰茶换我半晚安睡
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2016-9-13
在线时间
6 小时
 楼主| 发表于 2016-9-14 11:05:13 | 显示全部楼层
FreeRTOS 发表于 2016-9-14 10:45
使用内部时钟是不会出现系统死机的情况的,FreeRTOS也不会管你用内部RC震荡还是外部晶振
我之前弄过一个 ...

配置为内部时钟的方法为:
1.让SetSysClock()函数失效(直接屏蔽),系统从SystemInit()退出进入main函数直接配置内部时钟;
2.让SetSysClock()函数失效(直接屏蔽),再配置内部时钟后,系统从SystemInit()退出;

以上两种办法不行;

回复

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
11922
金钱
11922
注册时间
2015-11-5
在线时间
2086 小时
发表于 2016-9-14 11:28:11 | 显示全部楼层
jlicon 发表于 2016-9-14 11:05
配置为内部时钟的方法为:
1.让SetSysClock()函数失效(直接屏蔽),系统从SystemInit()退出进入main函数直 ...

不知道你为何要弄SetSysClock(),问题应该就是出现在SystemInit(),这个函数跟FreeRTOS没多大关系的
拿来长岛冰茶换我半晚安睡
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2016-9-13
在线时间
6 小时
 楼主| 发表于 2016-9-14 16:54:24 | 显示全部楼层
FreeRTOS 发表于 2016-9-14 11:28
不知道你为何要弄SetSysClock(),问题应该就是出现在SystemInit(),这个函数跟FreeRTOS没多大关系的

在SystemInit()中,前面的都是将时钟恢复默认,然后SetSysClock()进行配置;
我要么把按照如图所示

配置外部时钟

配置外部时钟

不让其配置成外部时钟或死在SetSysClock();


要么将SetSysClock()直接屏蔽掉;


然后再进行内部时钟配置;




回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 23:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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