- on my DSO203, the battery symbol is not displayed correctly (the contents of the battery is shifted half out of the shelf)
- why do we have to push two keys to quit an application (one to close and one to quit)?
I fixed the battery icon bug now. I had forgot to test it with less than full battery
I guess I could get rid of the second keypress. It's there because e.g. hello world and other simple applications exit immediately, and I want to see the screen after they exit.
Is there anywhere a description about how the whole thing works:
- the programs reside on the flash memory and remain only there?
- what is the limitation on the number of programs on flash, only flash capacity (which is how big)?
- is a program completely loaded in RAM at runtime? is it compiled, interpreted, or does it use something like p-code which is then interpreted by the PAWN_APP.HEX?
- what is the limitation on the size of a single program?
- is there somewhere a list of all functions calls and all parameters which can be used?
The programs are on the 2MB flash memory. There can be as many as can fit, probably about 20-40 because each app is about 50-100kB.
The programs are in the pawn bytecode. Pawn has a p-code interpreter for ARM that is written in assembler (written by someone else, not me). It is quite fast, only about 5-10 instructions per one emulated instruction.
The programs are loaded to RAM at runtime. However, Pawn has an 'overlay' mechanism that is kind of swap. It allows to load programs larger than 32kB. The interpreter will then reload functions from flash as needed, always keeping the most recent functions in RAM.
The program size is kind-of limited by the data size - because data memory is never swapped, you can only have about 20kB of data in order to leave enough space for functions. Of the programs I have done so far, only frequency response app requires the overlays. So I guess programs larger than frequency response have to be a bit careful about memory use.
Only list of functions so far is the .inc files here:
https://github.com/PetteriAimonen/QuadP ... er/include
They do have comments, though.