Even here the world is changing and things evolve. I've worked my way up from Assembly, C, C++, UML toolsets and now blissfully: Rational Rose RealTime.
Boy, never thought drawing my programs was this much fun. To those of you in the (embedded) community who are unaware here's some info on RoseRT (there are similar alternatives by the way).
RoseRT is a UML toolset that contains the UML-RT extenstions. In RoseRT you have "Capsules" (e.g. classes with a state machine), "Protocols" (e.g. communication between capsules) and "Ports" (e.g. protocol instances connected to Capsules). See here, the beginnings of a message queue / message passing and finite state machine environment using OO and either C, C++ or Java code.
The toolset contains a RunTime Environment that has been ported to a large number of compiler/platform combinations. You won't believe how easy it is to compile something for native Win32 and 5 minutes later for your dedicated embedded board and compiler. Target observability during debugging works remarkably well and you can even see the behaviour of your state machines visually.
The RTE implements low level services related to the message queue system.
Oh, and if you have experience with normal Rose (as I have), forget for a moment that you loathe Rational. Forget for a minute that Rose sucks in more ways than you can think of. RoseRT is much, much, much better and mature and is a true joy to work with (even for large team development).
In case you are wondering, I don't work for Rational. For embedded software design this is truly a great and mature development environment that speeds up development and reduce debugging and integration times dramatically.
- Define your protocols (e.g normal classes with attributes and operations) - Define your capsules - Draw your state machines (code is generated) - Add code and specify state machine transitions - Define threadmapping - Compile, run and debug - Forget about race conditions, deadlocks and all the other nightmares that keep you awake at night. I haven't seen a single deadlock since starting to use this tool.
In short, embedded software is moving from plain C to a higher (more visual) abstraction level. Be there, or be left out.
Even here the world is changing and things evolve. I've worked my way up from Assembly, C, C++, UML toolsets and now blissfully: Rational Rose RealTime.
Boy, never thought drawing my programs was this much fun. To those of you in the (embedded) community who are unaware here's some info on RoseRT (there are similar alternatives by the way).
RoseRT is a UML toolset that contains the UML-RT extenstions. In RoseRT you have "Capsules" (e.g. classes with a state machine), "Protocols" (e.g. communication between capsules) and "Ports" (e.g. protocol instances connected to Capsules). See here, the beginnings of a message queue / message passing and finite state machine environment using OO and either C, C++ or Java code.
The toolset contains a RunTime Environment that has been ported to a large number of compiler/platform combinations. You won't believe how easy it is to compile something for native Win32 and 5 minutes later for your dedicated embedded board and compiler. Target observability during debugging works remarkably well and you can even see the behaviour of your state machines visually.
The RTE implements low level services related to the message queue system.
Oh, and if you have experience with normal Rose (as I have), forget for a moment that you loathe Rational. Forget for a minute that Rose sucks in more ways than you can think of. RoseRT is much, much, much better and mature and is a true joy to work with (even for large team development).
In case you are wondering, I don't work for Rational. For embedded software design this is truly a great and mature development environment that speeds up development and reduce debugging and integration times dramatically.
- Define your protocols (e.g normal classes with attributes and operations)
- Define your capsules
- Draw your state machines (code is generated)
- Add code and specify state machine transitions
- Define threadmapping
- Compile, run and debug
- Forget about race conditions, deadlocks and all the other nightmares that keep you awake at night. I haven't seen a single deadlock since starting to use this tool.
In short, embedded software is moving from plain C to a higher (more visual) abstraction level. Be there, or be left out.