Challenges in embedded software development
co-design—the issue of choosing between hardware and software implementation for example The CRC check, TCP/IP chip. Embedding an OS—if the OS is embedded the user can focus on application development, embedded OS provide API to develop application, royalty for each copy of the OS, Code optimization—memory is premium and execution time is critical. Efficient input/output—input and output units are limited or sometimes absent. So developing testing and debugging such systems are challenging. Testing and Debugging—very much challenging, profilers help in this process telling which line of the code is executed and which line is in error.
Trends in embedded software development
Processors—8bit, 16bit,32bit; DSP with audio and video processing…, Memory—becomes cheaper and windows type OS are possible, OS—embedded, real time and mobile type, Programming languages—C, C++ and Java is the new trend(platform independence-byte code generated by Java compiler can be ported to any platform as long as JVM is running on it), Development tools—cross compilers, debuggers, emulators; most of them free of cost.