DISCO-H747I - Ethernet example not compiling

Hello,
Trying to get the ethernet working on a DISCO-H747I with OS6.11.
I am using the example code from the Ethernet API https://os.mbed.com/docs/mbed-os/v6.11/apis/ethernet.html but it fails to compile with a the following error:
Error: L6218E: Undefined symbol EMAC::get_default_instance() (referred from …/…/build/main.DISCO_H747I.o).
Is Ethernet supported for the H747I within OS6.11?
Or have I missed a step somewhere?

Thanks in advance.

Hello,

It seems, it is not enabled in default, so try to check the board page in section known-limitations which refer to this - DISCO_H747I modifications for Ethernet - | Mbed

BR, Jan

Hi Jan,

Thanks for getting back to me.
I had made the modifications to the DISCO_H747I but I hadn’t included the mbed_app.json file.
I can now compile it, but it doesn’t connect to a network.
Adding a thread_sleep_for(5000); at the start of main solved that problem and it is now connecting to a network and returning the time server data.

Thanks again for you assistance.

Erik

old thread, but I have started now also with this H747 board.
I have also modified the hardware as in the Mbed Wiki (it has more modifications than in the user manual), but I also get no Ethernet connection. It fails with error -3010, no DHCP. I’ve tried also the 5s delay, but still not ok. I also have not found how to use the 2nd core, it contains some ST demo code and prints STFirmware (Fractal) from 2019.

edit:
it is working now. I have done a full chip erase to get rid of the code for the M4. It seems hat it blocked something. And it works without a delay at the start of the program.
Now I have to find how to use the M4 core.

You should submit this as a PR to Mbed CE and make a wiki page with how you got it working! I’m sure that would be super useful to other people

yes, I should do that.
The board works out of the box with Mbed CE, the only thing is to add the upload method. This could be done by adding the setting as file in the cmake tools dir, or by adding the setting in the CMakeLists.txt in the root. I have used the easy solution.
All STM32 Mbed enabled boards should support STM32CUBE_UPLOAD_ENABLED, so it would be easier for beginners when this is set as default.