The question about adding the FlexCan module to the S32 project of the Dual motor control Demo board

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

     The question about adding the FlexCan module to the S32 project of the Dual motor control Demo board

ソリューションへジャンプ
1,136件の閲覧回数
edenli
Contributor V

Hi Gusy,

I wanna add the FlexCan to the S32 project of the Dual motor control Demo board,but there are some question in the progress,

Now,i describe the process of adding the FlexCan module:

1#,I built two files named FlexCan.h and FlexCan.c

FlexCan.c:

*******************************************************************************
*
* This file includes initial setting function of MPC5643L FlexCan peripheral module.
*
******************************************************************************/
#include "MPC5643L_qs.h"
#include "flexCan.h"

/******************************************************************************
* FlexCan functions
*****************************************************************************/
volatile FLEXCAN_tag *pFlexCan_0;
volatile FLEXCAN_tag *pFlexCan_1;

FlexCan.h:

*******************************************************************************
*
* This file includes initial setting and MACRO definitions of MPC5643L FlexCan
* peripheral module.
*
******************************************************************************/
#ifndef _FlexCan_H_
#define _FlexCan_H_
/******************************************************************************
* Global FlexCan variables definition
******************************************************************************/
// Pointer to FlexCan structure
extern volatile FLEXCAN_tag *pFlexCan_0;
extern volatile FLEXCAN_tag *pFlexCan_1;

/******************************************************************************
* FlexCan MACRO definitions
******************************************************************************/

/******************************************************************************
* FlexCan registers bit definition
******************************************************************************/

/******************************************************************************
* Exported functions
*******************************************************************************/
extern void Delay(void);
extern void InitFlexCAN_0(void);
extern void InitFlexCAN_1(void);


#endif /* _FlexCan_H_ */

2#,

add the header file to the MPC5643L_periph.h shown as below:

*******************************************************************************
*
* Detailed Description of the file.
*
******************************************************************************/
#include "siul.h"
#include "flexpwm.h"
#include "ctu.h"
#include "adc.h"
#include "eTimer.h"
#include "pit.h"
#include "dspi.h"
#include "flexCan.h"

3#,I built two files named MPC5643L_FlexCan_LLD.h and MPC5643L_FlexCan_LLD.c

MPC5643L_FlexCan_LLD.h:

*******************************************************************************
*
* This file includes initial setting and MACRO definitions of MPC5643L FlexCan
* peripheral module.
*
******************************************************************************/

#ifndef _MPC5643L_FlexCan_LLD_H_
#define _MPC5643L_FlexCan_LLD_H_

#ifdef __cplusplus
extern "C" {
#endif

#define FlexCan0_BASE 0xFFFC0000
#define FlexCan1_BASE 0xFFEC4000

/*******************************/

 

#ifdef __cplusplus
}
#endif

#endif /* _MPC5643L_FlexCan_LLD_H_ */

MPC5643L_FlexCan_LLD.c:

*******************************************************************************
*
* This file includes initial setting functions of MPC5643L FlexCan module.
*
******************************************************************************/
#include "MPC5643L_qs.h"
#include "MPC5643L_FlexCan_LLD.h"

/******************************************************************************
* FlexCan functions
*****************************************************************************/

4#,add the header file the MPC5643L_FlexCan_LLD.h to  MPC5643L_LLD.h shown as below:

*******************************************************************************
*
* Detailed Description of the file.
*
******************************************************************************/
#include "MPC5643L_ADC_LLD.h"
#include "MPC5643L_CTU_LLD.h"
#include "MPC5643L_DSPI_LLD.h"
#include "MPC5643L_ETIMER_LLD.h"
#include "MPC5643L_FlexPWM_LLD.h"
#include "MPC5643L_PIT_LLD.h"
#include "MPC5643L_SIUL_LLD.h"
#include <MPC5643L_FlexCan_LLD.h>

 

 

But there are some error popup,shown as below:

187855_187855.pngpastedImage_38.png

The tip seems said that  undefined the initFlexCan_0,but i clearly define the function in the  flexCan.h and  flexCan.c

 

I don't konw how to deal with it,The attachment is the S32 project.

Original Attachment has been moved to: Test_2.zip

0 件の賞賛
1 解決策
948件の閲覧回数
dumitru-daniel_
NXP Employee
NXP Employee

Hi edenli‌,

I managed to reproduce your issue and fix it - but i have no explanation for this behavior (you might need to ask the guys from S32DS Community)

So, how to fix it:

#1: Change the FlexCAN.C into FlexCAN.(looks like the *.C is associated with C++ source files)

#2: delete the Debug folder and use Clean Project command to remove any other intermediate files

#3: Build the project and it should work fine now that all the source file are with "*.c" extension

Hope this resolve your issue.

Best regards,

Daniel

元の投稿で解決策を見る

0 件の賞賛
5 返答(返信)
948件の閲覧回数
dumitru-daniel_
NXP Employee
NXP Employee

Hi edenli

It seems like your function definitions are not included by the main.c

As far as i can see the FlexCan.h is not included by any of the other headers used in main.c

If i include it from main.c it seems to work.

Hope this helps!

Daniel

0 件の賞賛
948件の閲覧回数
edenli
Contributor V

Hi Daniel,

the header file FlexCan.h is included in the file MPC5643L_qs.h 

pastedImage_1.png

and then 

pastedImage_2.png

next:

pastedImage_4.png

So the flexCan.h include in the main.c

but  still has the error:

pastedImage_13.png

How to deal with it,Daniel?

0 件の賞賛
949件の閲覧回数
dumitru-daniel_
NXP Employee
NXP Employee

Hi edenli‌,

I managed to reproduce your issue and fix it - but i have no explanation for this behavior (you might need to ask the guys from S32DS Community)

So, how to fix it:

#1: Change the FlexCAN.C into FlexCAN.(looks like the *.C is associated with C++ source files)

#2: delete the Debug folder and use Clean Project command to remove any other intermediate files

#3: Build the project and it should work fine now that all the source file are with "*.c" extension

Hope this resolve your issue.

Best regards,

Daniel

0 件の賞賛
948件の閲覧回数
edenli
Contributor V

Hi Daniel,

Thank you for your reply!

Next,The question about the S32 ,i will realse to theS32DS Community,Now i solve the question

Best Regards!

Eden Li

0 件の賞賛
948件の閲覧回数
dumitru-daniel_
NXP Employee
NXP Employee

Hi edenli‌,

Glad to find you fix it. 

In general - such questions are better to be addressed on the community responsible for that particular tool since they know better all the options. Nevertheless, we are trying to help with suggestion all of our members.

Best regards,

Daniel

0 件の賞賛