ARDUINO form factor should not be used any more => use ARDUINO_UNO [-W#warnings]

KL25Z board,
Moving from Mbed 2 to Mbed-os 6.16.0 using the Keil Cloud compiler.

  1. I get “ARDUINO form factor should not be used any more => use ARDUINO_UNO [-W#warnings]” many many times why?.

  2. normally the “BufferedSerial.h” header cannot be found, why ?

  3. The compiler does not find any problems but the linker finds many they look like this

link Balancer_KL25Z_ADXL213_baremetal.KL25Z
L3912W: Option ‘legacyalign’ is deprecated.
L6218E: Undefined symbol wmemcpy (referred from /opt/ARMCompiler6.15.13/bin/…/lib/libcxx/libcpp_p.l(ios.cpp.o)).
L6218E: Undefined symbol wmemset (referred from /opt/ARMCompiler6.15.13/bin/…/lib/libcxx/libcpp_p.l(ios.cpp.o)).
L6218E: Undefined symbol __ARM_snprintf (referred from /opt/ARMCompiler6.15.13/bin/…/lib/libcxx/libcpp_p.l(locale.cpp.o)).
L6218E: Undefined symbol __ARM_vasprintf (referred from /opt/ARMCompiler6.15.13/bin/…/lib/libcxx/libcpp_p.l(locale.cpp.o)).
L6218E: Undefined symbol __ARM_vsnprintf (referred from /opt/ARMCompiler6.15.13/bin/…/lib/libcxx/libcpp_p.l(locale.cpp.o)).

any idea’s
Thanks Gerrit

Hi,

  1. I get “ARDUINO form factor should not be used any more => use ARDUINO_UNO [-W#warnings]” many many times why?.

Because the KL25Z target porintg doesn’t seem to follow latest manner of pin configuration. I recommend you just ignore the warnings. If you don’t want to, you need:

  • Update target.json from “ARDUINO” to “ARDUINO_UNO” in “supported_form_factors” of the KL25Z
  • Add proper pin names in PinNames.h
  1. normally the “BufferedSerial.h” header cannot be found, why ?

I could not reproduce this problem.

  1. The compiler does not find any problems but the linker finds many they look like this

If you use baremetal profile, default C library is small model. To use wchar support functions, you need to use standard mode. So, you can change your mbed_app.json as below:

{
    "requires": ["bare-metal"],
    "target_overrides": {
        "*": {
            "target.c_lib": "std",
            "target.printf_lib": "minimal-printf",
            "platform.minimal-printf-enable-floating-point": false,
            "platform.stdio-minimal-console-only": true
        }

I hope this helps.

Regards,
Toyo

1 Like

Hi Toyo,

I will rebuild the program without the bare metal option and see what happens.

Thank you soo much for helping me

Gerrit

Hi Toyo,

Works like a charm

Thanks mate.

Gerrit

1 Like