你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

cube生RTOS的问题

[复制链接]
watershade 发布时间:2015-7-19 23:54
今天,周么在家试验cube-RTOS,首战即很不顺利。3 Y. B/ u  u3 d5 q
先列举一下实验条件:& v% Y# _1 w! n1 J
cubeMX  4.9.0 (the newest)
/ K. o$ G: D) M: Q- E9 Y5 DcubeF4   1.7.0(the newest)
7 l7 u( G; q+ n; f/ i1 zcubeF1   1.1.0(the newest)
  L* q. P/ J$ {keil v5.12.0.0/ D* r: L& e7 B3 r7 x2 {+ S6 k
硬件环境STM32F4-Discovery板。
" k( r6 Y3 X/ k2 ]0 p* r/ Z
1 V! p6 p; @- u" W4 \! h过程和现象:
1 v' @; F$ S9 h今天在看freeRTOS的教程,本想做个实验,为了快速部署项目,在mx中选择F4-Discovery板作为原始模板。启用RTOS和UART2。输出MDK V5的工程。然后打开工程,直接编译。这时提示错误如下,基本上就是说没有预定义__TARGET_FPU_VFP。
8 f/ P  Q; I+ H! M keil.PNG
" m5 W0 q& X9 \8 Z6 k; ^
2 i9 I! T' y, U: @2 E: E! d+ _接着,全局搜索__TARGET_FPU_VFP,发现只有两处提到,其中一处是刚才出错的位置。另一处是core_cm4.h文件中Line 118的位置。由此发现若要启用FPU还需要定义__FPU_PRESENT。尽管我不需要启用这个但是可以做个实验。我再工程设置中预定义这两个字符串。结果整个项目输出就一片糟糕,最终有134项错误,64个警告。大部分的错误都是1114错误,在于不支持register这个关键字。我暂时没法解决。
4 T0 L" F* Y2 p; m) ?6 i如下图:
1 j- d( `$ D* j1 ?7 a' q% A! j) M keil2.PNG
1 t8 [9 I/ [, ?2 q
, I# ?, a0 i5 ]6 d8 l然后我做了另一个实验,我将同样的cube模板生成IAR的程序测试,直接编译通过。/ n! U' R" j8 F2 E* `" s

4 R5 p, g6 W% Y% i: y# X2 H最后我有利用F103建立一个模板,生成keil MDK V5工程。结果编译通过。" a# r: J' a) O/ C" g* g/ G; O8 T

9 ^+ r! ^- ^; A. O1 X- M  S8 `" Z( u- \, _- G5 M0 ~0 p4 @# D
问题和分析:5 P* T% @, {# u% S+ |. |# _# Q
1、 RTOS在F4上难道必须定义__TARGET_FPU_VFP,这样定义是不是并不意味这要使用FPU。要使用FPU还需要打开__FPU_PRESENT。
0 [3 a; i4 L) ^. T1 p- V$ x1 n2、 为什么在keil中编译通不过,而在IAR中却能够通过。编译不通过的原因的确与register有关吗?怎样才能通过编译。
, k1 ^# j0 Y4 D/ M' q3、 在F103种顺利编译,这个是不是意味着问题不来源于mx而是来源于cubef4?
6 O8 C2 K; w4 ]2 O5 R' @. S. X. Y4、 这是不是意味着cube库有些bug,而这是其中之一。如果是我是不是倒退到老的就能解决?. b7 @$ C0 ^+ d" e2 R
/ ?8 F7 v: W- b! z& @8 M
希望有类似环境的可以测试一下!
% s* _( m' R3 p/ J3 P
赞 收藏 评论9 发布时间:2015-7-19 23:54

举报

9个回答
你好我好大家好! 回答时间:2015-7-20 08:44:09
帮顶                    
yanhaijian 回答时间:2015-7-20 10:18:46
还是用成熟的系统吧。
moyanming2013 回答时间:2015-7-20 11:41:03
感觉是F4直接从F1复制而来,但一些问题未能测试解决。
JackieLaura 回答时间:2015-7-20 11:45:56
是不是图片上面的那个蓝色部分的选项选择错误,应该选择 not use吧。
1.png
watershade 回答时间:2015-7-20 22:55:50
你好我好大家好! 发表于 2015-7-20 08:44
+ T0 Y+ d7 m- P5 z* a; K( G, ^帮顶

8 k1 ?% l  C. O- W  {谢谢你,对cube还是不熟。希望有人能提出建议。
watershade 回答时间:2015-7-20 22:58:54
JackieLaura 发表于 2015-7-20 11:45
8 N' |" c$ g5 ~6 I9 r6 m. Z0 h是不是图片上面的那个蓝色部分的选项选择错误,应该选择 not use吧。

; X* t& z2 I& j/ A/ g/ h/ ^对,一直没找到。但今晚在测试的发现可能是asm设置的问题,不过现在没确定。. ]8 R# W5 h% b, C1 K3 i  s9 h
谢谢你!
watershade 回答时间:2015-7-20 23:18:05
本帖最后由 watershade 于 2015-7-20 23:21 编辑 ' D9 w8 u# E$ j6 t( t& H
, V& c* t! f! E* y; W
世界上最悲惨的是你费劲心机花了精力,却没找到答案。然后,你只是简单的从零重来一遍问题就解决了,可是问题是你连问题是怎么解决的都不知道!
+ f4 c, M" O- v# N
6 W% j2 ]! d) C5 i今晚先忙别的事情,然后将之前的所有RTOS相关的工程啥没出,但是保留mx的模型,又生成一遍。这是没问题了。
- ?) ]2 _' E+ a" ~0 }" g9 Y  `8 J5 Y, K4 L0 I  X, s9 K8 H  {% H" z
稍后再找找之前的错误是什么造成的。4 v9 j$ m1 t( x
) _6 G: G' K8 A, a- T
但是初步怀疑是编译器或编译器设置造成的,与ST的cube和MX没有关系。因为记得白天用自己的笔记本试过发现port里面的__ASM都不能被识别。
4 v! W$ I9 ~  z% q+ v5 x
埃斯提爱慕 回答时间:2015-7-22 10:50:31
提示: 作者被禁止或删除 内容自动屏蔽
荆棘鸟Capt 回答时间:2015-7-25 16:55:57
领教领教了
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版