Söyleşi: Peter Eckstrand (cocoOS)
RTOS konusunda geçmiş yıllarda deneyimlediğim bir çok sonucu, kullanımının faydalarını ve örnek uygulamalarını uzun süredir kod yazarlarla gerek internet gerek ise yüz yüze paylaşıyorum ve programcıları özellikle elektronik ile uğraşan arkadaşlarımızı bu konuda teşvik ediyorum. İnternet ortamında bir çok RTOS bulunmasına karşın yaklaşık bir sene önce tanıştığım ve bir örneğini de paylaştığım cocoOS RTOS’u bir çok uygulamamda kullanır oldum.
Özellikle yeni başlayanlar için oldukça yararlı bulduğum ve benim için çok önemli olan saf ANSI C kodlaması için RTOS’un yaratıcısı Peter Eckstrand ile yaptığım söyleşiyi yazının devamında bulabilirsiniz.
Who is Peter Eckstrand? Can you tell us about you?
Peter: I am a person who loves programming. I live in Gothenburg, Sweden, with my wife and three children. Family life takes much of my time, but in case I get a spare moment, I like to read and improve my programming skills.
What is your education level? Do you think you have received adequate education in your schools?
Peter: I have a Masters degree in Electrical Engineering, with Microwave Engineering as specialty. The university I studied at, is highly ranked and, yes I received adequate education.
But when it comes to software development, I am self-taught.
What is your area of expertise?
Peter: After my exam, I worked for 7 years with analog hardware design within the defence industry. I designed filters, receivers and phase-locked loops for low noise radios and radar systems.
During this time, I started with embedded programming as a hobby at home. It was a natural step to take when working with hardware. It was so fascinating to work with the interface between the real world and a machine. After some time I decided to start working with software development fulltime. So I quit my job and became an embedded software consultant. Now I run my own consultancy company and is currently working on an assignment at ESAB, producer of welding equipment. I have also worked several years in the Automotive industry which is strong here in Gothenburg, with both Volvo Cars and Volvo Trucks in the neighborhood.
I would say my expertice is in communication drivers, bootloaders, etc.
We know you from cocoOS RTOS. Why do you need to write new RTOS?
Peter: Before starting the cocoOS development, I tried some RTOS found on the internet. But I found many of them to be quite cumbersome to get started with. There were a lot of porting and configuration issues.
You could be working for days just to make it compile!
I felt that this must be a big blocker for many beginners who wants to explore RTOS programming. So why don’t make my own easy to port, easy to use, easy to configure RTOS? I started to implement cocoOS with this in mind: easy to port, use and configure. And honestly I think I succeeded.
We generally see lots of ASM code for Microcontroller Port side. Why did you decide to write your RTOS in pure ANSI-C?
Peter: Much of the ASM code are there to handle the context switch, when switching task. For a preemptive OS you have to save and restore the stack frames belonging to the different tasks. This is very platform dependent and is best written in assembler. But this also makes the code harder to port.
I think for many projects, you don’t need a preemptive RTOS, so I decided to make cocoOS non-preemptive. And with use of co-routines you can make the code take a “pause” in the middle and let other tasks run, and then continue where it was paused. You can implement this without any ASM code, which makes it a lot easier to read, port and understand.
Do you get good feedbacks from cocoOS users to improve your RTOS? Do you know interesting using area of cocoOS RTOS?
Peter: Yes, I get very good feedback from my users. Not so many have ideas and tips on improvements, but often they have questions about how to use it, or just want to say a “thank you” for my work with cocoOS.
I really love to hear from people using cocoOS! This pushes me to make it better. You are all welcome to mail me if you have questions or want to discuss something. I really appreciate the contact with users!
I think cocoOS is ideal for projects with small well defined tasks. For example, motor control, sensor monitoring, etc.
Do you use your own RTOS into your projects? Can you give us some examples?
Peter: Unfortunately I have no time for any serious projects. It is always small naive projects I set up when I want to try my skills. For example when testing a new microcontroller or development board.
Currently I’m working with a STM32F4 discovery board. I have cocoOS running and a number of tasks for servicing the USB host stack, react on USB events, react on serial port input.
I will later add the LwIP stack and the goal is to make the contents of an attached USB stick available via ethernet. Just for fun, and for experimenting with some C++ design patterns.
Do you support your RTOS in future? Or what is your plan about this subject?
Peter: I will always support cocoOS! A new release is on its way!
What is your future plans about electronics?
Peter: I just carry on…
You are living in different country. So when you look at Turkey from there, what do you see about our country?
Peter: No comments.
And the last question: What do you suggest to beginners and professional in electronics?
Peter: If you are into programming:
– Learn TDD, Test Driven Development
– Read, continue improving your skills
– Be a clean coder
cocoOS’un yaratıcısı Peter, oldukça sıcakkanlı bulduğum bir programcı. Kendi sitesinde (cocoos.net) kullanıcılardan gelen yorumları dikkate alıp hızlı dönüşler yapabiliyor. cocoOS ile ilgili olarak ismin “Cooperative Coroutine Operating System”den geldiğini de belirtmek isterim.
Kendi açımdan yukarıdaki röportaj özellikle RTOS’un oluşum evresini ve kullanım nedenlerinden bir kaçını bizler için ortaya koyuyor. Ayrıca ülkemiz dışındaki insanların mesleki olarak “iyi” ya da “güzel iş” kavramlarını da tekrar sorgulamamız için güzel bir örnek teşkil ediyor.
Daha sonraki söyleşilerde görüşmek dileğiyle.
Dip not: Söyleşi anlam yanlışlıkları olmaması adına çeviri yapılmadan yayınlanmıştır.