软件开发本身就存在自由度大、关联性高的问题。嵌入式软件除了继承软件开发的难点之外,在如下方面有自身的、独特的难点:
1, 内存有限,螺蛳壳里做道场;
2, 处理能力有限,必须做好规划,榨取系统每一分处理能力;
3, 安全性存在短板;
4, 可扩展性不如通用平台好,规划时做好可扩展性安排;
5, 现代化开发工具和设计工具难以实施——比如资源问题,难以采用C++/Java/Python等先进开发语言;
6, 调试、跟踪比较困难,问题定位准确度不高;
7, 团队协作不像通用平台那么易行;
上述问题不考虑硬件bug、不稳定等问题。
后面由CR6xx项目,逐步申述如何解决、缓解上述问题。