Programmable Calculator playing around several students said, with programmable calculator frame rate is too low. At first I thought, hey processor card like this can certainly question the computer system. If I had my development board to run the card will not, but then I thought of my development board can then be programmed into the program on the computer, take a compiled language to talk to interpreted languages than efficiency is meaningless.
Later, I looked at the statistics, they use a calculator in actually using 8-bit microcontroller. I have two thoughts: First, the performance is not strong processor with an interpreted language, no wonder that the program will run on top of the card; Second, the performance is quite microcontroller, I should be able to develop a self-programmable platform now.
So there is this project to design a self-programmable microcontroller system. There are several issues to consider:
First, what processor
There on the Raspberry Pi, my only consideration microcontroller. 8/16 bit machine I am more familiar with, but space is limited and performance are very strong 32-bit machine performance, space can be extended. Which specific option, depending on the application.
Second, what programming language
Have compiled language compiler, I can not write now things are not portable; efficiency interpreted language proved to be not in the calculator; high-level languages are excluded, leaving only compilation available.
Assembly code into machine language SCM direct execution proved calculator player is dangerous behavior, there must be a managed code running compilation environment, called a virtual machine it accordingly to the machine language called bytecode, which is from Java to learn the concept. Virtual Machine bytecode format and any time I can play.
Third, what interactive device
As a micro-computer, there must be a way to display. I do not want an external monitor, so the onboard screen. From 12864 OLED monochrome screen to 240 * 320 TFT color screen, the bandwidth required for smooth display also has a big gap, the selection should be based on the performance microcontroller.
Programming Well, there must be a keyboard. Ideally, of course, the USB port is an external keyboard, for no USB microcontroller, also have a keyboard matrix.
Select kinda Doha. Considering my current level, after careful consideration of the week, I will this project is divided into two phases: the first of these options have opted for a simpler, are now able to hands-on projects; the second phase of a more complete but require more study.
The first stage:
Production GUI development board, board 128 * 64 OLED 1.3 inch screen;
Write hardware development board driver library;
(The following must be made independent platform that for other types of single-chip, as long as the same interface hardware driver library will be able to use)
Design a document editor for programming;
Design a assembly language running on the virtual machine, to be able to call the library functions;
Write can run this virtual machine assembler language;
Write the assembler to convert the code into byte code assembler;
Implement paging software, in order to solve the problem of large amounts of data.
Phase 1.5:
If the performance of the AVR with the virtual machine can not afford it STM32F103 interface boards by extending the development board;
The original single-chip hardware drivers for use with graphics acceleration;
With Cortex-M3 enough, then the next stage is the strong things;
Making several external modules, such as capacitive touch, SD card + speakers, so as to feature-rich.
second stage:
Use STM32F405VGT6 microcontroller, 168MHz Cortex-M4 fear;
Onboard 2.8 inch 240 * 320 TFT full color touch screen, hanging on FSMC;
USB interface external keyboard, preferably mechanical keyboard, sound loud overshadowed physics teacher's passion;
Class C programming language, compiled into machine language ARM, performed directly on the MCU, MPU used to protect the system;
If you let the machine directly executed too dangerous, so that the virtual machine executes bytecode is also OK;
……
The schemes are too far away, the first idea here. Compared to the previous version of this version is more like a mobile phone rather than a calculator.
The first phase expected to be completed before the end of this year, sufficient time, then the first stage 1.5 can be completed. As for the second stage, think about all that difficult, before hanging it.
Finally he stressed that one, create the wheel stage, can learn from the program but never copied code.