打印
[STM32F0]

程序移植的问题

[复制链接]
3837|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
与时俱进|  楼主 | 2018-1-14 19:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
从STM32F103程序移植到STM32F030,遇到
__set_FAULTMASK(1);
这个语句链接通不过,错误信息是:
F030R8\F030R8.axf: Error: L6218E: Undefined symbol __set_FAULTMASK (referred from gizwits_product.o).
查询__set_FAULTMASK()函数在cmsis_armcc.h文件里定义如下:
__STATIC_INLINE void __set_FAULTMASK(uint32_t faultMask)
{
  register uint32_t __regFaultMask       __ASM("faultmask");
  __regFaultMask = (faultMask & (uint32_t)1);
}
请教是什么原因?
沙发
sdlls| | 2018-1-14 22:19 | 只看该作者
__set_FAULTMASK是不是没有定义?

使用特权

评论回复
板凳
与时俱进|  楼主 | 2018-1-15 21:42 | 只看该作者
sdlls 发表于 2018-1-14 22:19
__set_FAULTMASK是不是没有定义?

主楼后半部分指明,函数已在cmsis_armcc.h文件里定义。
并且程序已包含了此.h文件。

使用特权

评论回复
地板
caijie001| | 2018-1-16 21:29 | 只看该作者
机智云?

使用特权

评论回复
5
51xlf| | 2018-1-16 22:15 | 只看该作者
找不到这个定义。

使用特权

评论回复
6
51xlf| | 2018-1-16 22:20 | 只看该作者
看看你的工程代码

使用特权

评论回复
7
i1mcu| | 2018-1-16 22:20 | 只看该作者
与时俱进 发表于 2018-1-15 21:42
主楼后半部分指明,函数已在cmsis_armcc.h文件里定义。
并且程序已包含了此.h文件。 ...

使用右键 goto decalaration?

使用特权

评论回复
8
与时俱进|  楼主 | 2018-1-16 22:26 | 只看该作者

是的,移植自动生成的机智云程序。__set_FAULTMASK()函数已定义,但是__set_FAULTMASK(1);移植到STM32F030通不过。

使用特权

评论回复
9
与时俱进|  楼主 | 2018-1-16 22:42 | 只看该作者
i1mcu 发表于 2018-1-16 22:20
使用右键 goto decalaration?

右键goto definition提示函数未定义;但是从project窗口可以看出函数所在的c文件已经包含cmsis_armcc.h了,为什么?

使用特权

评论回复
10
捉虫天师| | 2018-1-17 23:08 | 只看该作者
在工程 配置中也要是设置头文件路径,不是包含在工程就可以的

使用特权

评论回复
11
与时俱进|  楼主 | 2018-1-18 23:02 | 只看该作者
捉虫天师 发表于 2018-1-17 23:08
在工程 配置中也要是设置头文件路径,不是包含在工程就可以的

是不是指Option For Target----C/C++----Include Paths的路径设置?
这个地方已经设置了。

使用特权

评论回复
12
与时俱进|  楼主 | 2018-9-26 10:00 | 只看该作者
真正的原因是M3有FAULTMASK寄存器而M0没有。
因此需把
__set_FAULTMASK(1);
语句改成
__set_PRIMASK(1);

使用特权

评论回复
13
CaLipton| | 2018-9-26 21:50 | 只看该作者
真正的原因是M3有FAULTMASK寄存器而M0没有

找到问题就好,看来M3和M0的区别还是挺大的

使用特权

评论回复
14
Erichk| | 2018-9-26 23:12 | 只看该作者
工程 配置中也要是设置头文件路径的

使用特权

评论回复
15
Lewisnx| | 2018-9-30 13:13 | 只看该作者
右键 goto decalaration

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

75

主题

1290

帖子

2

粉丝