完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近将PMSM的FOC2的2.0的库移植到STM32f051xx上,移植过程中发现几个纠结的问题,看看有没有哪位前辈遇到过啊:
1在编译的时候发现如下错误(在基于051的外设库函数的工程中编译的): ..Outputsvpwm.axf: Error: L6218E: Undefined symbol STO_Get_Electrical_Angle (referred from stm32f0xx_it.o) ...Outputsvpwm.axf: Error: L6218E: Undefined symbol STO_Get_Electrical_Angle (referred from stm32f0xx_it.o). ..Outputsvpwm.axf: Error: L6218E: Undefined symbol STO_Get_wBemf_alfa_est (referred from stm32f0xx_it.o). ..Outputsvpwm.axf: Error: L6218E: Undefined symbol STO_Get_wBemf_beta_est (referred from stm32f0xx_it.o). ..Outputsvpwm.axf: Error: L6218E: Undefined symbol STO_Get_wIalfa_est (referred from stm32f0xx_it.o). ..Outputsvpwm.axf: Error: L6218E: Undefined symbol STO_Get_wIbeta_est (referred from stm32f0xx_it.o). ..Outputsvpwm.axf: Error: L6218E: Undefined symbol FOC_FluxRegulator (referred from mc_foc_drive.o). ..Outputsvpwm.axf: Error: L6218E: Undefined symbol FOC_FluxRegulator_Init (referred from mc_foc_drive.o). ..Outputsvpwm.axf: Error: L6218E: Undefined symbol FOC_FluxRegulator_Update (referred from mc_foc_drive.o). ..Outputsvpwm.axf: Error: L6218E: Undefined symbol STO_Calc_Rotor_Angle (referred from mc_foc_drive.o). ..Outputsvpwm.axf: Error: L6218E: Undefined symbol STO_Gains_Init (referred from mc_state_observer_interface.o). ..Outputsvpwm.axf: Error: L6218E: Undefined symbol STO_Gains_Update (referred from mc_state_observer_interface.o). ..Outputsvpwm.axf: Error: L6218E: Undefined symbol STO_Get_Speed (referred from mc_state_observer_interface.o). ..Outputsvpwm.axf: Error: L6218E: Undefined symbol STO_IsSpeed_Reliable (referred from mc_state_observer_interface.o). ..Outputsvpwm.axf: Error: L6218E: Undefined symbol STO_Calc_Speed (referred from stm32f10x_timebase.o). 经查证,发现引起以上错误的原因是这些函数在相应的头文件里面只是声明了一下,但是在相应的 .C文件里面没有却没有定义,刚开始还以为自己在移植的过程中不小心把这几个函数给删了呢,后来查了查原文件,确实是没有这几个函数,不知道这是库的开发人员保留让客户根据自己的需要自己编写,还是忘了写这几个函数了啊? 2,在基于103的外设库函数上编译此工程时,编译器不报错,不知道是为什么?但是在基于051的外设的库函数上编译此工程却提示了如上错误。 |
|
相关推荐
15个回答
|
|
用不着的话就注释掉
|
|
|
|
移植一般先要改一些与硬件有关的东西。
|
|
|
|
|
|
|
|
回复第 3 楼 于2014-06-17 16:16:25发表:
移植一般先要改一些与硬件有关的东西。 这些语句都是软件,,硬件不兼容的语句已经改完啦,,不明白为什么移植前为什么不报错《 |
|
|
|
可能这些语句由宏定义控制的
|
|
|
|
|
|
|
|
不要写这么多注释, 反倒看不清楚, 宏定义也难改
|
|
|
|
F0和F1还是有些区别的
|
|
|
|
头文件没有包含进去吧
|
|
|
|
明显的少了一个lib。
|
|
|
|
回复第 4 楼 于2014-06-17 16:22:10发表:
回复第 2 楼 于2014-06-17 16:04:15发表: 用不着的话就注释掉 可是不明白,为什么在没有移植前,这些函数也没有定义,但是为什么就没有报错呢? 你确定不是警告是报错? |
|
|
|
回复第 11 楼 于2014-06-19 13:22:34发表:
明显的少了一个lib。 这几天没顾上上网,没能及时回复,今天看了看那个2.0的库,发现是缺少了那两个lib。这个工程的源代码是基于stm103的,现在我自己重建工程把他移植到051上,第一次见工程的时候忘了加载这两个lib文件导致了很多函数(上面提到的)没定义的错误,后来加载了这两个文件后函数没定义的错误解决了,但是又出现了如下错误http://www.stmcu.org/file:///C:UsersAdministratorAppDataRoamingTencentUsers1835116269QQWinTempRichOle87}NZA3}S)2ESH(C19%%DQM.jpg:..Outputsvpwm.axf: Error: L6366E: mc_state_observer.o attributes are not compatible with the provided cpu and fpu attributes .,好像是有汇编指令和当前cpu不兼容,但是在MC_State_Observer_Interface.c文件中也没有发现有嵌入的汇编语言,是不是那些不兼容的汇编指令在MC_FOC_Methods_lib.lib中啊 ,但是在keil是打不开这些文件的,哎哎拦路虎真太多了。。。。。。 |
|
|
|
加我Q讨论一下吧。我最近也搞这个。
|
|
|
|
|
|
|
|
不错,很好的经验分享,辛苦麻烦了,欠缺这方面的资料,非常感谢。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
621 浏览 1 评论
1962 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1068 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1487 浏览 1 评论
LL库F030进行3个串口收发,2个串口为232,一个为485,长时间后,会出现串口1停止运行,另外两个正常,只有重启复原
1924 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 14:36 , Processed in 6.182009 second(s), Total 103, Slave 86 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号