2.1. How to Get Started with PikaScript using KEIL Simulator
Open the pikascript official website
Select simulation-keil and click “Start Generation”
Unzip the downloaded zip archive and open the project
Make sure you have select the simulator as the debugging target
Compile and debug:
Once entering the debug session, make sure you have opened the serial windows as shown below:
run and check the output:
Python scripts can be run interactively by typing them directly in the UART window.
Open the in any editor, e.g. vscode:
In main.py
, you might see something similar to:
This script uses standard python3 syntax. Suppose we have already modified this script, so how to run it on the device?
The interesting part is, pikascript uses a method similar to java, i.e. it is semi-compiled and semi-interpreted. For example, the pikascript compiler compiles classes and methods, while PikaVM interprets method-calls and object-creation/destruction at runtime.
The pikascript compilation is a two-step process:
Using pikascript compiler to compile the
.py
files into.c
and.h
files and store them in thepikascript-api
folder.Using the ordinary c compiler to compile all the c source files and generate an executable image for the target device.
Double-click rust-msc-vxx.yy.zz.exe
to run the pika precompiler which is written in Rust.
NOTE: Here xx.yy.zz
is the version number.
If you want to ensure that the updated script is compiled as expected, please
delete all files in the
pikascript-api
folder,check whether the new
.c
and.h
files have been generated or not.
IMPORTANT: Please do NOT remove the pikascript-api
folder but only the files inside.
Here is an example that shows the *.c
and files generated in the pikascript-api
folder
Now, let’s modify main.py as a practice:
import PikaStdLib
led = Device.LED()
uart = Device.Uart()
mem = PikaStdLib.MemChecker()
print('hello wrold')
uart.setName('com1')
uart.send('My name is:')
mem.max()
print('mem used now:')
mem.now()
# new code start
print('add new code start')
uart.setName('com2')
uart.printName()
# new code end
As you can see, we have added 4 new lines to the main.py
. Let’s compile and run:
Compile pikascript-api
Compile the keil project and enter the debugging session:
run and observe the output
As shown above, there are 3 new lines in the output, indicating that our modification works as expected.
That’s all, enjoy!!