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

cube生RTOS的问题

[复制链接]
watershade 发布时间:2015-7-19 23:54
今天,周么在家试验cube-RTOS,首战即很不顺利。
# B$ T. X# I; K2 e7 H" c先列举一下实验条件:
; ~$ r2 v) u& I5 @) F  Y7 `cubeMX  4.9.0 (the newest)
7 G9 a" I% O% {cubeF4   1.7.0(the newest)
% ?4 b: h0 Q. A8 {* hcubeF1   1.1.0(the newest)$ M1 M7 \1 |+ z" J! f6 u5 a: {
keil v5.12.0.0
5 @2 j% X6 N- z* A! G: q* y7 E硬件环境STM32F4-Discovery板。  T; t7 q- i+ c, a9 q* {
6 T0 v6 r, v6 J; Z  \& g/ }, m
过程和现象:  j! G: |+ R" ?- j! P
今天在看freeRTOS的教程,本想做个实验,为了快速部署项目,在mx中选择F4-Discovery板作为原始模板。启用RTOS和UART2。输出MDK V5的工程。然后打开工程,直接编译。这时提示错误如下,基本上就是说没有预定义__TARGET_FPU_VFP。
9 E. J2 O- ~3 Y" y keil.PNG
4 L2 k+ Y( l3 N& D' F3 F3 [) ?7 ~; g
1 @/ U. g% s4 Y接着,全局搜索__TARGET_FPU_VFP,发现只有两处提到,其中一处是刚才出错的位置。另一处是core_cm4.h文件中Line 118的位置。由此发现若要启用FPU还需要定义__FPU_PRESENT。尽管我不需要启用这个但是可以做个实验。我再工程设置中预定义这两个字符串。结果整个项目输出就一片糟糕,最终有134项错误,64个警告。大部分的错误都是1114错误,在于不支持register这个关键字。我暂时没法解决。
( w  J; ?. z# S( S$ J* ~( G如下图:
4 D+ H! \) j8 M/ | keil2.PNG 0 H- @8 P2 s" i( Z9 D) }- }7 w
' T- S8 o5 u4 v$ f  W
然后我做了另一个实验,我将同样的cube模板生成IAR的程序测试,直接编译通过。! ?7 c( ?1 J, m

/ F& O5 n& O  i+ }& r/ a! l最后我有利用F103建立一个模板,生成keil MDK V5工程。结果编译通过。  m! b" B! ?5 @" P$ f2 d

5 [4 ^% Z5 O7 p- M* v& C. a  Z
! V0 u6 G5 ]' E问题和分析:
9 K8 P6 p7 A) Z7 S( a1、 RTOS在F4上难道必须定义__TARGET_FPU_VFP,这样定义是不是并不意味这要使用FPU。要使用FPU还需要打开__FPU_PRESENT。
/ X$ X1 \2 O' z2、 为什么在keil中编译通不过,而在IAR中却能够通过。编译不通过的原因的确与register有关吗?怎样才能通过编译。
+ }& f0 c. ^' d3、 在F103种顺利编译,这个是不是意味着问题不来源于mx而是来源于cubef4?0 p4 O- J! y$ t  o
4、 这是不是意味着cube库有些bug,而这是其中之一。如果是我是不是倒退到老的就能解决?
# _9 q7 e5 E/ O5 H# F% {
8 I: S, P& E8 {- i- `5 `8 r希望有类似环境的可以测试一下!
$ r) p! q+ |+ t$ _+ Z3 T* Z+ F0 A- ^. i
收藏 评论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
  p: k3 t9 Y7 [0 X/ C5 q( T帮顶
3 s- f* g. W% {% ]
谢谢你,对cube还是不熟。希望有人能提出建议。
watershade 回答时间:2015-7-20 22:58:54
JackieLaura 发表于 2015-7-20 11:45
7 q2 |% B" h4 g7 x8 @是不是图片上面的那个蓝色部分的选项选择错误,应该选择 not use吧。
! u: G3 j3 B5 s. b* \
对,一直没找到。但今晚在测试的发现可能是asm设置的问题,不过现在没确定。
0 U7 c/ G) o6 b6 a2 C5 r" b' k谢谢你!
watershade 回答时间:2015-7-20 23:18:05
本帖最后由 watershade 于 2015-7-20 23:21 编辑
4 P9 a, r) E4 y3 ]4 z* U7 S
, E+ Z, ]( F  ~5 Z世界上最悲惨的是你费劲心机花了精力,却没找到答案。然后,你只是简单的从零重来一遍问题就解决了,可是问题是你连问题是怎么解决的都不知道!
; x6 a8 G/ D# e: J1 Y' r" C7 j8 h% n0 L
今晚先忙别的事情,然后将之前的所有RTOS相关的工程啥没出,但是保留mx的模型,又生成一遍。这是没问题了。
0 n0 I. m; S& z) p! u% p/ j$ e; R
稍后再找找之前的错误是什么造成的。
9 o+ x. \2 s, A" \5 Y
9 t6 l) g  ^$ }/ f( j( X9 [7 N) a" m但是初步怀疑是编译器或编译器设置造成的,与ST的cube和MX没有关系。因为记得白天用自己的笔记本试过发现port里面的__ASM都不能被识别。& @. ^& y; M5 R# ^, D- [
埃斯提爱慕 回答时间:2015-7-22 10:50:31
提示: 作者被禁止或删除 内容自动屏蔽
荆棘鸟Capt 回答时间:2015-7-25 16:55:57
领教领教了

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版