MicroPower 2/22/2012 1:36:14 AM User Rank Program Manager
Re: What is the OS?: MicroPower
Curt: I did come accross some well-written OS that has these layered services that provides the so-called APIs, so a new programmer can just jump in and focus on higher level tasks instead of reinventing the low-level routines. But these types of OS will need more space and more memory. An ARM with 256K should be able to do that.
Rich Quinnell 2/21/2012 5:57:01 PM User Rank Blogger
Re: What is the OS?: MicroPower
Curt, you're probably right that the high-end MCUs will need the layered software architecture in order to manage the complexity of their tasks. The low-end, though, probably won't as the overhead is likely to be larger than the application.
MicroPower writes "In most embedded devices, BIOS and OS are really morphed into one single piece called OS."
I think that's probably true (certainly is for my stuff) -- but I wonder if there isn't a downside to abandoning the idea (and discipline) of a layered (or "stack") approach to service levels , even in a microcontroller context?
The "stack" approach we all know and love from the communications protocol world is an important approach to dealing with system complexity, maintenance, reliability and security. We can deal with those issues in one big layer as long as we're dealing with isolated systems with program stores of 64KB or so. But I have an MCU on my desk right now that has 256KB, and accepts a micro SD card that can endow it with 32GB!
I'm inclined to believe that microcontrollers in particular will eventually need to adopt layered software architectures to deal with a whole collection of complex issues that don't exist in other computer systems -- like adaptive harrdware contexts, for example, and machine-to-machine task sharing.
Rich Quinnell 2/21/2012 12:10:25 PM User Rank Blogger
Re: What is the OS?
MicroPower, I agree with your definition. The BIOS function on a PC is simply part of the OS in an embedded system as there is unlikely to be an external loader.
MicroPower 2/21/2012 1:37:15 AM User Rank Program Manager
Re: What is the OS?
I think the BIOS is mainly used to initialize the system devices, and then to look for an OS loader such as DOS or another OS that in turn will take over the system operation while using the BIOS I/O services.
Embedded devices seldom use any external OS loader such as a hard drive, since the 'loader' resides in the system itself. In most embedded devices, BIOS and OS are really morphed into one single piece called OS.
Rich Quinnell 2/20/2012 1:55:27 PM User Rank Blogger
Re: What is the OS?
Anatoliy, the definition of an operating system that I use is the resident software in a system that provides coommon services and hardware access to the application programs. Services may include such things as resource management, file management, user interface, and scheduling. This software is part of the system's foundation structure upon which the application-specific functionality is built. It is a first step in modular design, separating device management from the application to avoid having to recreate these foundation activities for each new design.
I started in 1980s with the my favorite RT-11 running on PDP-11 (LSI-11) and knew it well. Next there was MSDOS 3.3. We had deal with Industrial automatization (small systems). I began with sensors connected to PDP-11 via Digital voltmeters, self-maded ADC and last, specialized ISA bus boards.
Then there was the Palm III hendheld under PalmOS. I had sold wires to Motorola processor pins and was able to input/output signals.
In 2000s (thanks to Myke Predko's Handbook of Microcontrollers) I choosed Atmel AVR and made some projects based on it's architecture. (Also he was described his own OS on microcontroller).
One year ago I had got the FriendlyARM board with Samsung S3C2440A SoC (it is very cheap, ~$82 with 3.5"LCD). Due to existing examle programs, it was possible to create no OS application very quickly. Thinking further I decided to made the Main body replaceble. Finely I got simpliest possible OS (or, maybe Monitor or Supervisor?).
It can do:
- all neccesary devices' initializuing;
- load the user program in memory from SD card and launch it;
- give the User an API for text, graphics, RS-232 I/O, etc.
Engineers familar with MCUs may easily jump to the 32-bit ARM9 architecture.
To save this item to your list of favorite Microcontroller Central content so you can find it later in your Profile page, click the "Save It" button next to the item.
If you found this interesting or useful, please use the links to the services below to share it with other readers. You will need a free account with each service to share an item via that service.