installation of a library that is not specific to arduino

hello everyone here, here I have a problem, I would like to manage the mutltitasking with arduino DUE card, for that I wanted to import the library multitasking system salvo in the arduino IDE but I do not know how to customize arduino so that it can manage libraries written in C language ... can someone help me to install a library that is not made for arduino in the arduino IDE?

Post a link to where you got the library from. Please use the chain links icon on the toolbar to make it clickable.

I did not download the library myself it is my framer who provided it to me

Well it's going to be difficult to give you much help if we can't look at the library's source code.

Arduino can handle C code no problem. An Arduino sketch is C++. When you include a C library from a C++ file you need to wrap it in extern "C" {}.

However, it may not be as easy as that. A library written for a PC may require much more resources than the Due has or may use code that does not apply to an embedded system. If the library is written for a microcontroller of a different architecture then there could be significant amounts of work required to port architecture-specific code to run on the Due.

Salvo RTOS: www.pumpkininc.com
The license is about 1000 dollars for AVR chips (that is not the Due), and with that license you are stuck to that version. To upgrade to a newer version costs a few hundreds of dollars for every single upgrade. That will cost thousands of dollars. But for what ?
The website has a "latest news" section, and the latest news is from 2008 !

The Demo versions are here: Index of /salvo/lite/avr
The last version is from 2011.

The Arduino has specific startup code. It will be a lot of work to combine that with Salvo RTOS. Some of the standard Arduino libraries are not ready for multitasking.

There are free RTOS libraries for AVR chips, and for the Due board. There is also a very simple schedular for the Due which works well.

Conclusion: it is outdated, not compatible with Arduino, extremely expensive.

Looks very promising. It supports the ARM Cortex M3 of the Due. There is a free version but it's an .exe. What's the deal with that? An installer?

It's strange there is no user manual for the Cortex M3.

ok thank you for the attention you have focused on my concern, I will continue my research because I would like to make arduino DUE multitasking from an external library ... outside SALVO, is it that it there is not another library compatible with ARM cortex M3?

What makes you think you need some sort of multitasking library?

Very few projects are appropriate for such a thing, and many people mistakenly belive that they need one, when traditional programming techniques will work fine.

Why do you want multitasking ? What is it for ?

In the delay() function, there is a call to a "weak" function called 'yield()'. That function can be used to switch to another task. The multitasking does not have to be preemptive and all the Arduino functions can still be used.

The simple schedular I was talking about is using that.
Reference page: Scheduler - Arduino Reference
Source on Github: GitHub - arduino-libraries/Scheduler: Scheduler Library for Arduino

There are no semaphores, no queues, nothing of that. Just a simple task schedular.

It works well, but sometimes the sketch has to be adapted to give other tasks processing time. When the delay() is not needed, then sometimes the 'yield()' has to be called in the sketch to allow other tasks to run.
When a Arduino Uno is used without delay and with millis() to do multiple tasks, then the delay() should be avoided.
With the schedular, the delay() is used to switch to another task.

There are at least 10 other free multitasking libraries for the Arduino. I found that the basic schedular works as expected. Since it is simple and predictable and the (non-preemptive) libraries can be used, it is reliable.

ok thank you, I will work with the scheduler, just that I did not think it was already operational because obviously your link makes me understand that it is still in development

Koepel, you talked about 10 libraries that allows multitasking in arduino, outside the scheduler can you give me more?

The FreeRTOS is ported more than once to Arduino. I don't know if there is a version for the Due.
It is the most common multitasking rtos. Perhaps the Arduino team should add FreeRTOS to the official Arduino software for ongoing support and updates.

To do multiple things at the same time, the most common way is to use millis().
This is a tutorial: Overview | Multi-tasking the Arduino - Part 1 | Adafruit Learning System
That is not really multitasking, but it uses no extra memory, and it works on the smallest microcontrollers.

This is multitasking on a small scale: Arduino Playground - TaskScheduler

There are libraries that are timer libraries and can call functions to create something multi threaded. "ArduinoThread" for example.

Maybe there are a lot more than 10 multitasking/rtos libraries. You can find them yourself:
https://www.google.com/search?q=site%3Agithub.com+arduino+multitasking
https://www.google.com/search?q=site%3Agithub.com+arduino+rtos
And that is only on Github.com.

I tried a number of multitasking libraries. Each one of them has a few advantages and many major disadvantages. Therefor I found that the simple schedular is the best. It is not a full multitasking environment, but it works, and the Arduino libraries can be used.

Koepel:
Perhaps the Arduino team should add FreeRTOS to the official Arduino software for ongoing support and updates.

There actually has been a recent discussion on this topic:
https://groups.google.com/a/arduino.cc/forum/#!topic/developers/JdLZ2Mk6aEY

@maba might find some suggestions for other RTOS options in that thread.

The trouble with adding an RTOS-like library to Arduino is that in addition to getting the library to compile, you probably have to either replace or modify a bunch of Arduino core functions, or write your RTOS-based sketches using only replacements for the normal core functions (salvo_SerialRead() instead of Serial.read(), etc.)
AFAIK, FreeRTOS is more commonly used on Arduino (though still not what I'd call "popular"), and looking at the way that FreeRTOS was ported (and how it's used) would probably be a good starting point. "The Community" is also more likely to try to help with Open-Source software like FreeRTOS than with commercial SW like Salvo...