Keil studio problems faced ı below


I have project in mbed online compiler all thinks work fine in online compiler.I’m trying to migrate my project to keil studio because without removing the online compiler to avoid any issues.

I am facing a lot of problems
I list the problems I encountered below;
1-) Usb can’t recognize to my device.
2-)strlen() can’t use
3-)rd_sock can’t use
4-)td_sock can’t use

I hope the mbed online compiler stays with us a little longer.

1 Like

Hi @Taha_Mermer,

Thank you for your post. Would you mind providing more information. It will help us improve Keil Studio.

  1. What device are you using? Maybe it just needs a firmware update? Keil Studio doesn’t support remote deploy and debug yet on all devices. We are however increasing the number of supported boards quite regularly.
    2,3,4. They work as the program can be compiled. I however see that intellisense indeed complains that they can’t be found. Let us take a look at that.

Arek - Studio team


If you think your device might need a firmware update, go to Documentation – Arm Developer to find out what to do.

I’m using NUCLEO-F429ZI, when ı was updated the firmware USB recognition problems solved , thanks for that.
But I have still issues.
1-)strlen() can’t use
2-)rd_sock can’t use
3-)td_sock can’t use
still issue for me.
I can share a snippet of the code.

I do not know from where are points 2 and 3, but point 1 is know issue and was already reported few times (don’t ask me why it got resolved). However it is only an intellisense issue, compilation and your program will not affected, you can ignore that.

From Keil Studio’s release note:

Version 1.5.21
C++ language support fixed for some standard library functions in Mbed projects.

BR, Jan

I only use the nano stm32L432.
I currently have about 10 projects.
But when converting to studio keil, none of this works. When will the online mbed compiler stop?
Is there an offline compiler for this problem?
Gr Jos v. Engelen

Hi @Jos_Engelen_van. Do you mean that you have 10 projects that you have imported from the Online Compiler to Keil Studio Cloud? Could you expand a little on the issues you are facing so we can take a look?



I’ve spent a lot of time in the last few weeks trying to find a working offline compiler, but so far unfortunately.
So the problem I am using timers and interrupt and serial communication with pc.
For example, I want to control my heat pump with stm32L432 and send the measured values ​​back to the PC, so a data logger. This works perfectly with mbed, but now everything would have to be done again

The closest offline alternative to the online compiler would be to use the Mbed CLI but this does not offer the UI on top of the build process.

But I would not expect Keil Studio Cloud to have any issues with what you are trying to achieve. The core compilation functionality is exactly the same as offered by the Online Compiler. If you can share an example program that can’t be built in KSC then I’d be happy to take a look. If the problem is that you can’t import them at all can you try the export feature in the Online Compiler (Right-click a project, select ‘Export’ and set the Export Toolchain to ‘ZIP Archive’). If you drag and drop the resulting directory in to KSC it should work as expected.

Thanks for responding to my call, I’ll give it another try.

I was able to move some projects.

However, I had tried to make a simple project in keil. Output high at 23C and output low at 21C.

Init output and analog in and timer did not work. According to the internet this would not be possible only in C++.

That’s why I used mbed, now moved this project to keil and after several buttons this now works.

Then next problem before I change anything I normally make a copy eg version 2.

So duplicate and rename , but then can’t activate the copy is not allowed. What could this be. Gr Jos v. Engelen

I now have a project working.
printf only supports an integer.
Making a copy doesn’t work either, solved this by starting a new project and copying the code from the old one to the new one.

If the float type is what you are looking for, then - Minimal printf and snprintf

BR, Jan

To avoid problems, I adjust my laptop to receive integers

It is up to you, but if you need floats, then just add content below to your mbed_app.json file

    "target_overrides": {
        "*": {
            "target.printf_lib": "std"

if you do not have mbed_app.json file in your project already, then just create one in the root folder of your project.

BR, Jan

Thanks for the info
Gr Jos v. Engelen

Thanks for your cooperation, the problem with my projects was that I didn’t wait long enough for the project to be edited.
Gr Jos v. Engelen

ik wil attach_us gebruiken in screen1 met mbed 6.15 werkt het wel.
In screen2 met mbed 6.16 een foutmelding. deprecated?
is er een andere mogelijkheid.

Gr Jos v. Engelen
i want to use attach_us in screen1 with mbed 6.15 does it work.
In screen2 with mbed 6.16 an error message. deprecated?
is there any other possibility.

Gr Jos v. Engelen


this is not error but only a warning. This information want to tell you - Care this is not recommended to use in new programs, because in a future major release (probably something like MbedOS 7) this will be removed.

Just visit the mbed web documentation - Ticker - API references and tutorials | Mbed OS 6 Documentation
Examples do not show that, but description yes - Mbed OS Reference | TickerBase Class Reference

Tik.attach(callback(&PWM), 20us);

BR, Jan

In addition to what Jan said, if you’d like to define the interval as constant or variable then you can do it as follows:

chrono::microseconds Meting1 = 20us;

1 Like

Zoltan’s idea also lead me to a conversion from float to chrono time could be handy because you also read AnalogIn.

    float  Meting1 =  20;
    //std::chrono::microseconds chronoMeting1{static_cast<long long int>(Meting1)};
    std::chrono::microseconds chronoMeting1{static_cast<int64_t>(Meting1)};
    Tik.attach(callback(&PWM), chronoMeting1);

What do you mean @hudakz? Am I right?

Edit according to Zoltan’s suggestion below (thank you)

BR, Jan

1 Like