cancel
Showing results for 
Search instead for 
Did you mean: 

Bug report STM32CUBEMX and Touchgfx designer

Hello,

I dont know what is the problem, but when USB is configured in CDC mode in CUBEMX (maybe other modes also can generate the same problem, havent tested yet.) and the code is generated with CUBEMX, touchgfx code genereation will result in file omition from KEIL. There is no matter with STM32CUBEIDE since folders and files are not touched.

One suggestion: Touchgfx designer consider some standard place for user code like stm32cubemx so in the regeneration of code, user code remain untouched.

The IOC file to ease the problem regeneration is attached.

1 ACCEPTED SOLUTION

Accepted Solutions

Thank you for the precision.

I was able to reproduce and indeed the generation deletes links to usbd_x files in the .uvprojx file.

I will investigate and transmit to the right persons. I will come back to you when a fix has been done.

Thank you for letting us know.

/Alexandre

View solution in original post

14 REPLIES 14
Alexandre RENOUX
Principal

Hello,

Can you elaborate what file is missing exactly ? What kind of error do you encounter ?

Also when checking the .ioc file, I noticed that the FATFS IP settings are incomplete (missing something in the Platform Settings tab).

/Alexandre

Thank you for your attention.

To reproduce the matter, first of all one most use keil 5.27 or above with stm32cubemx 6.0.0 and touchgfx 4.14.

Then one should produce project with stm32cubemx while usb in cdc mode and touch gfx is activated. Then generating the gui with touchgfx will remove usb cdc from project since both of them are under middleware folder. Then for fixing the issue one must regenerate the code with cubemx to solve ommition of USB_CDC middleware from project file.

The matter doesnt exist with cubeide since the files arent ommited from their directory.

I took your ioc file and everything is working.

Here are the steps I did :

  • Open .ioc with CubeMX 6.0.1
  • Generate code from CubeMX
  • Verify that STM32_USB_Device_Library is still in Middleware (yes)
  • Open .touchgfx.part with TouchGFX Designer 4.14.0
  • Generate code from Designer
  • Verify that STM32_USB_Device_Library is still in Middleware (yes)
  • Open project in Keil 5.31
  • The USB files are in the project
  • Compile - No errors

Could you try again ?

/Alexandre

Dear Alexander,

The procedure is OK even in my system until you said.

Now, after the first compilation, return to Tochgfx, design some basic ui, regenerate and then you can see these errors.

VIDEO5\VIDEO5.axf: Error: L6218E: Undefined symbol USBD_CDC (referred from usb_device.o).
VIDEO5\VIDEO5.axf: Error: L6218E: Undefined symbol USBD_CDC_RegisterInterface (referred from usb_device.o).
VIDEO5\VIDEO5.axf: Error: L6218E: Undefined symbol USBD_Init (referred from usb_device.o).
VIDEO5\VIDEO5.axf: Error: L6218E: Undefined symbol USBD_RegisterClass (referred from usb_device.o).
VIDEO5\VIDEO5.axf: Error: L6218E: Undefined symbol USBD_Start (referred from usb_device.o).
VIDEO5\VIDEO5.axf: Error: L6218E: Undefined symbol USBD_GetString (referred from usbd_desc.o).
VIDEO5\VIDEO5.axf: Error: L6218E: Undefined symbol USBD_CDC_ReceivePacket (referred from usbd_cdc_if.o).
VIDEO5\VIDEO5.axf: Error: L6218E: Undefined symbol USBD_CDC_SetRxBuffer (referred from usbd_cdc_if.o).
VIDEO5\VIDEO5.axf: Error: L6218E: Undefined symbol USBD_CDC_SetTxBuffer (referred from usbd_cdc_if.o).
VIDEO5\VIDEO5.axf: Error: L6218E: Undefined symbol USBD_CDC_TransmitPacket (referred from usbd_cdc_if.o).
VIDEO5\VIDEO5.axf: Error: L6218E: Undefined symbol USBD_LL_DataInStage (referred from usbd_conf.o).
VIDEO5\VIDEO5.axf: Error: L6218E: Undefined symbol USBD_LL_DataOutStage (referred from usbd_conf.o).
VIDEO5\VIDEO5.axf: Error: L6218E: Undefined symbol USBD_LL_DevConnected (referred from usbd_conf.o).
VIDEO5\VIDEO5.axf: Error: L6218E: Undefined symbol USBD_LL_DevDisconnected (referred from usbd_conf.o).
VIDEO5\VIDEO5.axf: Error: L6218E: Undefined symbol USBD_LL_IsoINIncomplete (referred from usbd_conf.o).
VIDEO5\VIDEO5.axf: Error: L6218E: Undefined symbol USBD_LL_IsoOUTIncomplete (referred from usbd_conf.o).
VIDEO5\VIDEO5.axf: Error: L6218E: Undefined symbol USBD_LL_Reset (referred from usbd_conf.o).
VIDEO5\VIDEO5.axf: Error: L6218E: Undefined symbol USBD_LL_Resume (referred from usbd_conf.o).
VIDEO5\VIDEO5.axf: Error: L6218E: Undefined symbol USBD_LL_SOF (referred from usbd_conf.o).
VIDEO5\VIDEO5.axf: Error: L6218E: Undefined symbol USBD_LL_SetSpeed (referred from usbd_conf.o).
VIDEO5\VIDEO5.axf: Error: L6218E: Undefined symbol USBD_LL_SetupStage (referred from usbd_conf.o).
VIDEO5\VIDEO5.axf: Error: L6218E: Undefined symbol USBD_LL_Suspend (referred from usbd_conf.o).

Thank you for the precision.

I was able to reproduce and indeed the generation deletes links to usbd_x files in the .uvprojx file.

I will investigate and transmit to the right persons. I will come back to you when a fix has been done.

Thank you for letting us know.

/Alexandre

Thank you Alexandere

It would be more great to add other gui libraries like LVGL that is really wonderful and easy to add to ST (done my self with the help of LVGL group) and readd the omitted GUI library (Emwin) to the CUBEmx project maker. This way ST will be able to defeat and remove the rival companies since they provide no similar support (LIKE STM32CUBEMX or STM32CUBEPROG).

One suggestion for other product STM32CUBEPROG. Please add programing MCU via JLINK.

Dear @Alexandre RENOUX​ 

Any news?

Any new release to solve the mentioned problem?

Hi Vahid, can you give me an update on this? You're saying that pre-touchgfx, the project compiles - When you generate from designer then suddenly USBD dependencies are missing? Are they provided as library or code?

/Martin

Hello dear @Martin KJELDSEN​ 

Sorry for my late and delayed answer. Unfortunately yes, The problem persists with the Touchgfx designer 4.14 and 4.15, Cubemx code generator 6.0.1 or 6.1.0. The procedure for the reproduction of the issue has been discussed in the earlier discussion but for remembrance, it is as follows:

  • Open .ioc with CubeMX 6.0.1 or 6.1.0
  • Generate code from CubeMX
  • Verify that STM32_USB_Device_Library is still in Middleware (yes)
  • Compile the code (Failes due to lack of Touchgfx files)
  • Open .touchgfx.part with TouchGFX Designer 4.14.0 or 4.15
  • Design some UI
  • Generate code from Designer
  • Verify that STM32_USB_Device_Library is still in Middleware (No)
  • Open project in Keil 5.31
  • Compile (Fail due to lack of USB files)
  • Regenerate code from Cubemx
  • Compile (Success!)

Anyway, @Alexandre RENOUX​ has observed the problem earlier, If I couldn't discuss it clearly, he is the right person to clarify where the problem is.