[AT32F415] 发现AT32官方库BUG 8月22日

[复制链接]
 楼主| wangchuanqiushu 发表于 2021-8-22 17:52 | 显示全部楼层 |阅读模式
官方库在支持c++时部分文件缺失
#ifdef __cplusplus
}
#endif

在at32f4xx_syscfg.h文件中上句放在了#endif /*__AT32F4XX_SYSCFG_H */前边,此时工程使用的AT32F415并未定义AT32F421xx,故编译器将#ifdef __cplusplus也给屏蔽了,导致缺失#ifdef __cplusplus,c++编译报错。

修改建议将#ifdef __cplusplus放到第171行后边

打赏榜单

ArterySW 打赏了 5.00 元 2021-09-09
理由:BSP问题反馈属实

musich 发表于 2021-8-23 05:41 来自手机 | 显示全部楼层
厉害
muyichuan2012 发表于 2021-8-23 08:54 | 显示全部楼层
感谢楼主反馈,该问题已经在2021年3月18日的V1.3.0版本修改。
请使用最新版本的bsp,谢谢。
xbwpc 发表于 2021-8-23 19:36 | 显示全部楼层
muyichuan2012 发表于 2021-8-23 08:54
感谢楼主反馈,该问题已经在2021年3月18日的V1.3.0版本修改。
请使用最新版本的bsp,谢谢。 ...

说到对C++的支持,雅特力所有型号的GCC startup.s里面都没有在跳转main之前调用__libc_init_array,会导致C++静态变量没有被正确初始化。
muyichuan2012 发表于 2021-8-23 19:48 来自手机 | 显示全部楼层
感谢反馈,另外请问st的库有做这部分操作没?
xbwpc 发表于 2021-8-23 20:13 | 显示全部楼层
muyichuan2012 发表于 2021-8-23 19:48
感谢反馈,另外请问st的库有做这部分操作没?

有,ST的是这么写的:
/* Call static constructors */
  bl __libc_init_array
/* Call the application s entry point.*/
  bl main
muyichuan2012 发表于 2021-8-23 20:25 来自手机 | 显示全部楼层
收到  
onlycook 发表于 2021-9-1 09:23 来自手机 | 显示全部楼层
哈哈,说到底是楼主没用最新版本的bsp
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

5

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部