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

stm32cubemx生成的代码编译错误,求指教

[复制链接]
小II 提问时间:2018-3-25 11:00 /
本帖最后由 wiikong 于 2018-3-26 22:28 编辑

mcu设置为stm32f407ve,   勾选freertos后,生成的代码编译产生错误。错误信息为:

..\Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\port.c(483): error: A1586E: Bad operand types (UnDefOT, Constant) for operator (


第一次使用f407,之前多次使用f103;并未见过此错误。
对cube的使用不太熟悉。
请问这个是什么原因??
感谢回复,不胜感激!

补充:附上工程文件。

RLTherapy.zip

下载

860.73 KB, 下载次数: 3, 下载积分: ST金币 -1

收藏 评论5 发布时间:2018-3-25 11:00

举报

5个回答
小II 回答时间:2018-3-25 11:22:16
百度有人回复要这么修改,但不知道为何;
而且这样修改一次后,若cube再次生成,又要再一次人为修改。
百度信息:
找这个定义 configMAX_SYSCALL_INTERRUPT_PRIORITY
再找 configPRIO_BITS
再找 __NVIC_PRIO_BITS
发现定为4U , 去掉U改成4就可以了
七哥 回答时间:2018-3-26 01:20:39
这么诡异!常数一般定义的话 4UL、4U,都用过,应该没有问题。
可以发个工程上来吗,看看情况。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

琦子 回答时间:2018-3-26 09:29:19
问题应该归结于__NVIC_PRIO_BITS的定义。在main.h文件的/* USER CODE BEGIN Private defines */位置添加如下代码即可解决此问题。

/* USER CODE BEGIN Private defines */
#if 0
#ifdef __NVIC_PRIO_BITS
#undef __NVIC_PRIO_BITS
#define __NVIC_PRIO_BITS      4
#endif
#endif
/* USER CODE END Private defines */

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

小II 回答时间:2018-3-26 22:29:48
toofree 发表于 2018-3-26 01:20
这么诡异!常数一般定义的话 4UL、4U,都用过,应该没有问题。
可以发个工程上来吗,看看情况。 ...

已经上传工程,有兴趣可以了解一下,
cube软件都是最新版本的。
就勾选了FreeRTOS,还有其它外设功能,就是编辑有问题。
如果只勾选FreeRTOS,不使能外设,是没问题的。
七哥 回答时间:2018-3-26 23:56:39

MOV Rd, #imm16,这条汇编指令是立即数寻址,只能是0到65535之前的数,尾部不能加任何修饰。
傲游截图20180326235418.jpg

傲游截图20180326235520.jpg

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版