Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
5 years, 8 months ago.
How to pass a char array to a thread?
I have a char array of 32 characters. I'd like to pass this into a thread which starts executing once it gets all the 32 bits passed to it through some thread exchange means - and it cannot take any more than that even if there is more waiting in the queue. I am new to RTOS, to threads, and to transferring information between threads. Firstly, would I use a Queue or Mail? Secondly, what is a good way of learning how to setup and use this queue? There is so few examples on the mbed and not many tutorials, but maybe there is a similar hardware platform which is beginner-friendly to learn threading and messaging queues?
I'm sorry if this is a lot; I don't know where to start.
2 Answers
5 years, 8 months ago.
Hi, so try to write a simple code for test and when you can not push the code forward, place the code here and explain where is the problem. Maybe someone help.
I think maybe when you use a little bit imagination on these examples of RTOS APIs, you can achieve what do you want. https://os.mbed.com/docs/mbed-os/v5.11/apis/rtos.html
GL
5 years, 8 months ago.
I usually like to use mail if possible. This way you are sending a copy of the data and the receiving thread doesn't have to worry about sharing. The example here works fine for me. Just replace the data in the mail_t struct with the buffer you need.
https://os.mbed.com/docs/mbed-os/v5.11/apis/mail.html
And be sure you really need to add a thread before introducing the extra complexity.