The new 2-phase SD Card loader is complete, and has been incorporated into Catalyst. As the name suggests, the program loading is now done in 2 separate phases. All the plugins and drivers (and the kernel itself) are now loaded separately from the C application code - even on "vanilla" propeller platforms (i.e. platforms without XMM RAM).
The 2-phase loader introduces a new binary file format, and currently requires that the programs be loaded from a local SD Card using a load program that is "aware" of the new file format (such as Catalyst). However, when I get time, I will also add the capability to load the new binary format via the Catalina serial program loader (Payload).
The advantage of the 2-phase load process this is that even on a standard propeller, substantially larger C programs can be loaded and run from Hub RAM. All you need is an SD card.
The more plugins and drivers a C program uses, the more Hub RAM is freed up by using the 2-phase load process. For example, if a C program were to use the file system, keyboard, mouse and display drivers, plus a serial driver and a floating point plugin, then up to 16kb of Hub RAM would be taken up just by the various plugins, drivers and the kernel itself - and when using the normal Parallax file format and loader this memory is unavailable for use as code space, leaving only around 15kb for the actual C program. But just by using the new 2-phase loader the same program could have up to 31kb of C program code - more than double the effective program size!
More detail will be included with the forthcoming Catalina 2.8 release.
The new 2-phase SD Card loader is complete, and has been incorporated into Catalyst. As the name suggests, the program loading is now done in 2 separate phases. All the plugins and drivers (and the kernel itself) are now loaded separately from the C application code - even on "vanilla" propeller platforms (i.e. platforms without XMM RAM).
The 2-phase loader introduces a new binary file format, and currently requires that the programs be loaded from a local SD Card using a load program that is "aware" of the new file format (such as Catalyst). However, when I get time, I will also add the capability to load the new binary format via the Catalina serial program loader (Payload).
The advantage of the 2-phase load process this is that even on a standard propeller, substantially larger C programs can be loaded and run from Hub RAM. All you need is an SD card.
The more plugins and drivers a C program uses, the more Hub RAM is freed up by using the 2-phase load process. For example, if a C program were to use the file system, keyboard, mouse and display drivers, plus a serial driver and a floating point plugin, then up to 16kb of Hub RAM would be taken up just by the various plugins, drivers and the kernel itself - and when using the normal Parallax file format and loader this memory is unavailable for use as code space, leaving only around 15kb for the actual C program. But just by using the new 2-phase loader the same program could have up to 31kb of C program code - more than double the effective program size!
More detail will be included with the forthcoming Catalina 2.8 release.
Comments
The new 2-phase SD Card loader is complete, and has been incorporated into Catalyst. As the name suggests, the program loading is now done in 2 separate phases. All the plugins and drivers (and the kernel itself) are now loaded separately from the C application code - even on "vanilla" propeller platforms (i.e. platforms without XMM RAM).
The 2-phase loader introduces a new binary file format, and currently requires that the programs be loaded from a local SD Card using a load program that is "aware" of the new file format (such as Catalyst). However, when I get time, I will also add the capability to load the new binary format via the Catalina serial program loader (Payload).
The advantage of the 2-phase load process this is that even on a standard propeller, substantially larger C programs can be loaded and run from Hub RAM. All you need is an SD card.
The more plugins and drivers a C program uses, the more Hub RAM is freed up by using the 2-phase load process. For example, if a C program were to use the file system, keyboard, mouse and display drivers, plus a serial driver and a floating point plugin, then up to 16kb of Hub RAM would be taken up just by the various plugins, drivers and the kernel itself - and when using the normal Parallax file format and loader this memory is unavailable for use as code space, leaving only around 15kb for the actual C program. But just by using the new 2-phase loader the same program could have up to 31kb of C program code - more than double the effective program size!
More detail will be included with the forthcoming Catalina 2.8 release.
Ross.
A VERY nice way of running significantly larger C LMM code on a vanilla prop board...