Go Down

Topic: Cosa: An Object-Oriented Platform for Arduino programming (Read 98 times) previous topic - next topic

retrolefty


Lefty,

Let me explain serious from my point of view.

I spent most of my career as an architect for large embedded systems.  I did some of the initial architecture for one of the LHC experiments that discovered the Higs Boson at CERN.

Systems like this are implemented with a certified reliable RTOS.  LHC used LynxOS.
Quote

The LynxOS-178 RTOS is the first and only hard real-time DO-178B level A operating system to offer the interoperability benefits of POSIX® with support for the ARINC 653 APplication EXecutive (APEX).

This is professional level serious.

I have often used VxWorks, the system used in Mar Landers. Two of my former colleagues founded Wind River Systems and developed this RTOS.  This is also a professional level serious RTOS.

I am now retired but do a little commercial development.  I just don't find Arduino hardware/software reliable enough for this use.  FreeRTOS and ChibiOS/RT fit this level of seriousness, they have support for commercial use.

I love playing with small programs on Arduino.  I am a frustrated programmer want-to-be.  Management forbid me from implementing any of my designs since a large programming staff was hired to do that.   This is hobby fun level of seriousness and Arduino is great.

So the Arduino millisecond clock ticks every 1024 microseconds then does two ticks every 41-42 milliseconds to catchup.  This is a hobby level system.


I have no real issues of the subject and content that you and others in this thread have posted, but rather the tone and impression of the specific comments I listed. The arduino platform was well designed and build for the users it was aimed at, non technical users. It's also a continuously changing and improving platform that is evolving as people contribute more and more to it. The vast popularity of the platform and the huge membership of this forum kind of validates that there exists such a viable user base.

And there are many members here that come from professional background in software and/or hardware that like to contribute knowledge, share library contributions (as you certainly have), and otherwise encourage the less experienced members. 

It just rubbed me (and maybe only me) the wrong way to read:

Quote
I don't use Arduino boards or the IDE for serious projects.

Followed with a supporting:
Quote
Hear, hear!


  I know your contributions to the arduino platform do not reflect a person with an elitism attitude towards arduino projects or members using the platform, so don't take my comments as personal criticism of you, but rather just criticism of the comments that were posted.

Peace
Lefty

pito

#26
Feb 25, 2013, 11:35 am Last Edit: Feb 25, 2013, 11:37 am by pito Reason: 1
You may enhance your Cosa mcu collection with atmega32 (same pin layout as the 1284p, bootloader works, the core and variant of the mighty1284p works under 1.5.2.). The major diff is it has got only 4 PWM and single UART - maybe the UART setting needs a fix.
Code: [Select]
// MIGHTY ATMEL ATMEGA32
//                       +---\/---+
//           (D 0) PB0  1|        |40  PA0 (AI 0 / D24)
//           (D 1) PB1  2|        |39  PA1 (AI 1 / D25)
//      INT2 (D 2) PB2  3|        |38  PA2 (AI 2 / D26)
//       PWM (D 3) PB3  4|        |37  PA3 (AI 3 / D27)
//        SS (D 4) PB4  5|        |36  PA4 (AI 4 / D28)
//      MOSI (D 5) PB5  6|        |35  PA5 (AI 5 / D29)
//      MISO (D 6) PB6  7|        |34  PA6 (AI 6 / D30)
//       SCK (D 7) PB7  8|        |33  PA7 (AI 7 / D31)
//                 RST  9|        |32  AREF
//                 VCC 10|        |31  GND
//                 GND 11|        |30  AVCC
//               XTAL2 12|        |29  PC7 (D 23)
//               XTAL1 13|        |28  PC6 (D 22)
//      RxD (D 8)  PD0 14|        |27  PC5 (D 21) TDI
//      TxD (D 9)  PD1 15|        |26  PC4 (D 20) TDO
//     INT0 (D 10) PD2 16|        |25  PC3 (D 19) TMS
//     INT1 (D 11) PD3 17|        |24  PC2 (D 18) TCK
//      PWM (D 12) PD4 18|        |23  PC1 (D 17) SDA
//      PWM (D 13) PD5 19|        |22  PC0 (D 16) SCL
//          (D 14) PD6 20|        |21  PD7 (D 15) PWM
//                       +--------+
//

kowalski


You may enhance your Cosa mcu collection with atmega32 (same pin layout as the 1284p, bootloader works, the core and variant of the mighty1284p works under 1.5.2.).

I will see if I get the time for this later this week. Dont like the idea of doing too many modifications I cant run through the tests. Thanks for the schematics. Will need to read up on the spec as well.
Cheers.

kowalski

A new blog posting is now available with some details on how the Pin classes work in Cosa.
http://cosa-arduino.blogspot.se/2013/03/the-pin-classes-introduction.html

Cheers!

westfw

Quote
I spent most of my career as an architect for large embedded systems.  I did some of the initial architecture for one of the LHC experiments that discovered the Higs Boson at CERN.

Systems like this are implemented with a certified reliable RTOS.  LHC used LynxOS.

Just to present a counter-argument, I spent most of my career as a developer at cisco Systems, which helped create The Internet As We Know It Today.  A cisco router is a fairly large embedded system that uses a home-built OS that is not certified, not realtime, and not particularly (certainly not inherently) reliable.  I remember way back when BBN announced that they had gotten their fancy multicore "butterfly" router to reliably switch packets within 1ms.  At the time, cisco routers were switching most of the packets in about 12 us...  (but we couldn't do ALL of them within 1ms.)

The other interesting part involved cisco's experiments (and products) that WERE/ARE based on real-time kernels.  It turns out that effectively using a modern RT kernel is a pretty complex undertaking, and it's really easy to shoot yourself in the foot...

Go Up