A machine-implemented method for programming a heterogeneous multi-processor computer system to run a plurality of program modules, wherein each program module is to be run on one of the processors, the system comprising a plurality of processors of two or more different processor types, the method comprising:
- (a) performing machine-implemented offline processing using a plurality of SBT tools of a schedule building toolkit (SBT), wherein:
- the plurality of SBT tools comprise:
- (i) a schedule builder that selects a subset of one or more different schedule solutions based on a first set of use cases;
- and
- (ii) a source code generator (SCG) that generates scheduling software for a selected schedule solution, wherein the scheduling software is to be run on one or more of the processors;
- and
- (b) performing machine-implemented online processing using realtime data to test the scheduling software and the selected schedule solution, wherein:
- the SCG integrates scheduling information for the selected schedule solution into the scheduling software for a first processor such that the scheduling information is compiled with the scheduling software.