Formal Synthesis of Real-Time Embedded Software by Time-Memory Scheduling of Colored Time Petri Nets1 1This work was partially supported by research project grant NSC-90-2215-E-194-009 from the National Science Council, Taiwan, ROC.
Pao‐Ann Hsiung, Chuen-Hau Gau · Electronic Notes in Theoretical Computer Science · 2002
With the computerization of most daily-life human amenities such as home appliances, the software in a real-time embedded system now accounts for as much as 70% of a system design. On one hand, this increase in software has made embedded systems more accessible and easy to use, while on the other hand, it has also necessitated further research on how a complex, real-time, embedded software can be designed automatically and correctly. Enhancing recent advances in this research, we propose a Time-Memory Scheduling (TMS) method for formally synthesizing and automatically generating code for real-time embedded software, using the Colored Time Petri Nets model. Our method extends previous work in three ways: (1) by allowing the specification of temporal constraints in the system description to model real-time behaviors of software, (2) by allowing the specification of colored tokens in the system description to model different memory usages by data-types, and (3) by proposing an extended algorithm to schedule the enhanced system model and generate static code. A real-time embedded software, which is specified by a set of CTPN, is scheduled using TMS such that the schedules satisfy limited embedded memory requirements and all real-time and task precedence constraints. Finally, a portable embedded software program is generated in the C programming language using the valid TMS schedules. The proposed method was implemented in Java so that it can be installed in design prototypes for on-line code change in order to satisfy the dynamic needs of users. Through a real-world example on the ATM Virtual Private Network server, we illustrate the feasibility and advantages of the proposed TMS method for synthesizing embedded real-time software.