Just to present a counter-argument,
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...
The detector generates large amounts of raw data: about 25 megabytes per event (raw; zero suppression reduces this to 1.6 MB), multiplied by 40 million beam crossings per second in the center of the detector. This produces a total of 1 petabyte of raw data per second.There are three trigger levels. The first is based in electronics on the detector while the other two run primarily on a large computer cluster near the detector. The first-level trigger selects about 100,000 events per second. After the third-level trigger has been applied, a few hundreds of events remain to be stored for further analysis. About 15 petabytes of data per year are saved for further analysis.
Systems like this are implemented with a certified reliable RTOS. LHC used LynxOS.
Today students in courses like "Introduction to Embedded Systems" http://chess.eecs.berkeley.edu/eecs149/ learn to use an RTOS in the first weeks.
My point is that an RT operating system is NOT a requirement for a serious commercial embedded system.
Mentor Graphics Nucleus RTOS (Real-time Operating System), Deployed on over 3 Billion Devices.
Automation for Truck Platooning.
Hi Kowalski,I cant resist saying how your work is great with Cosa, lot of work and lot of good ideas in there to make the lib powerfull and exhaustive !
- make it modular : dont force any body, by its structure, to use a module they dont need. for example, I could use iemdiately Pins and event, but I m not interested by other HAL around SPI or TWI.
- make sure you end up with a team of adopter/contributor to support the Cosa project. before starting using and deep diving with a new core we want to be sure it will be supported further
set_sleep_mode(SLEEP_MODE_PWR_DOWN); sleep_enable();attachInterrupt(0, wake, LOW);sleep_cpu ();
Hey Kowalksi,I stumbled on this thread and Cosa in my search (over the past 3 months) for some VirtualWire code that is compatible with the AtTiny85. I was able to get the VWIsender example to run on an AtTiny85 and successfully send messages to an Arduino Micro running VirtualWire over simple 433tx/rx components. YAY!
The first one is in regards to sleeping. Is it possible to permanently sleep an AtTiny85 and wake on INT0=LOW with COSA? I saw that ON_CHANGE and FALLING/RISING were implemented in the InterruptPin class, but the AtTiny85 only supports LOW to bring it out of sleep mode.
InterruptPin IRQ(Board::EXT0, InterruptPin::ON_LOW_LEVEL_MODE);...IRQ.enable();
BW did the Micro run the original VirtualWire library?
as the ATtiny85 need programming, etc. Real fun reducing a sketch all the way down to an ATtiny85
QuoteBW did the Micro run the original VirtualWire library?Yes, I was running the mikem's original VirtualWire on the Micro.
I originally used this guide to program the ATtiny85 with my Uno as the ISP: http://hlt.media.mit.edu/?p=1695And I didn't really have to "reduce" the sketch to get it the sample to work...
One other question :-) -- Do you have a Cosa equivalent to SoftwareSerial? http://arduino.cc/en/Reference/SoftwareSerialThanks again for the help so far and the timely responses!
Kudos on all of the hard work!