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

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

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

评分

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

查看全部评分

bargagebaobei 回答时间: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

查看全部评分

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

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

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

傲游截图20180326235520.jpg

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版