Not sure how to start improving your embedded software development skills?
Try Feabhas consutancy services.
Many companies we work with know exactly what they need and commission on-site training to improve embedded software expertise in particular areas, such as programming languages or design patterns.
Other companies are looking for advice and guidance on the best way to improve their embedded software development and engage with Feabhas on a consultancy basis first.
For example, our services can help to:
- improve their software development processes
- identify core areas where embedded software development skills need improving
- determine the best way to do this
As a result of using our consultancy services, these companies are much better positioned to optimise the money they have spent on consultancy (and any training) to ensure that both their proceses and their people are able to deliver higher quality products and solutions, more efficiently.
Do you need support after the training finishes?
To help you take your new knowledge back into the workplace, we can provide mentoring, particularly in the areas of Linux development and the application of UML development.
Feabhas can provide mentoring assistance at all stages of the development lifecycle. However, we excel in:
Application of UML to embedded development
UML is a standard design notation primarily developed with IT software techniques in mind and as such, requires some work to fit it into embedded development. This may involve the use of extra diagrams and also requires a different process of application.
Application of Use Cases
Use Cases are one of the major strengths of UML and yet this area of UML is the least well defined. Feabhas has solid ground rules for the use of Use Cases that benefit the development lifecycle, from requirements through implementation to test.
UML to C
many Feabhas clients still work in C, however many also have the need to adopt UML to improve their development process. We have a clear and effective method for moving from UML to C and conversely for reverse engineering C into UML.
UML is only a design notation, no process for its application is defined. Feabhas has developed a unique process that can be used as a basis for the definition of a process at company or project level. We recognise that a process is heavily influenced by the tools that are used within it (particularly the case tool) and also affected by a company’s existing procedures. We therefore work with our clients to help them define a process that is relevant and practical for them.
We believe in assessing the performance of a system from the earliest point in the development lifecycle, rather than producing a design and then testing its performance in the hope that it complies with set constraints. We are highly experienced at modelling for performance from the use case stage of development onwards.
Embedded Systems Design
Our strengths are not only in the use of UML but in producing good quality embedded systems design. We can draw on our strengths in the areas of real-time operating systems and programming languages to help develop good quality, reliable, object oriented designs, documented in UML.
We can help you set up your Linux development environment. Usually this will be a PC running a version of Linux, but could also be a Windows operating system. We offer advice on the versions of compilers and libraries available, and can assist you with the installation of a working tool-chain for your target CPU architecture.
Optimise Linux for your Platform
The next stage is to create a Linux configuration that is tailored for your target hardware. This includes configuring and compiling the Linux kernel, partitioning the storage devices and populating the root file system with the basic commands you will need to run Linux. We then help you find and evaluate open source components for your application, including such things as graphical user interfaces, data bases, networking components and so on.
Device drivers and applications
It is likely that you will need to write new device drivers or modify old ones in order to access the various peripherals on the target. Writing a reliable device driver is no mean feat but it can be made easier by combining your knowledge of the hardware with our knowledge of Linux. Likewise, writing regular Linux applications may take more time than you thought if you are not familiar with the API. Again, we can help.
If your application has real-time constraints you may be wondering how Linux is going to cope. We can help you measure the latencies and variations in response to real-time events and advise on ways to modify the software to meet your requirements. This may simply be a case of applying a real-time “patch” to the kernel or it may involve a more radical switch to a real-time sub kernel such as RTAI.
For more information on Feabhas mentoring, please contact us.