Skip to content

Commit de8e515

Browse files
committed
Add int_random and millis
1 parent 5a8ac7c commit de8e515

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

platforms/Zephyr/prj.conf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,8 @@ CONFIG_STM32_ENABLE_DEBUG_SLEEP_STOP=y
3838
# This needs to be enabled for older espressif boards
3939
#CONFIG_ESP32_USE_UNSUPPORTED_REVISION=y
4040

41+
# Display drivers
4142
CONFIG_DISPLAY=y
43+
44+
# Needed for random number generation primitives
45+
CONFIG_ENTROPY_GENERATOR=y

src/Primitives/zephyr.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include <zephyr/drivers/gpio.h>
2020
#include <zephyr/drivers/pwm.h>
2121
#include <zephyr/kernel.h>
22+
#include <zephyr/random/random.h>
2223
#include <zephyr/sys/util_macro.h>
2324

2425
#include <chrono>
@@ -123,6 +124,16 @@ def_prim(chip_digital_read, oneToOneU32) {
123124
return true;
124125
}
125126

127+
def_prim(millis, NoneToOneU32) {
128+
pushInt32(k_uptime_get());
129+
return true;
130+
}
131+
132+
def_prim(int_random, NoneToOneU32) {
133+
pushInt32(sys_rand32_get());
134+
return true;
135+
}
136+
126137
def_prim(print_string, twoToNoneU32) {
127138
uint32_t addr = arg1.uint32;
128139
uint32_t size = arg0.uint32;
@@ -490,6 +501,8 @@ void install_primitives(Interpreter *interpreter) {
490501
install_primitive(chip_pin_mode);
491502
install_reversible_primitive(chip_digital_write);
492503
install_primitive(chip_digital_read);
504+
install_primitive(millis);
505+
install_primitive(int_random);
493506
install_primitive(print_string);
494507
install_primitive(print_int);
495508
install_primitive(abort);

0 commit comments

Comments
 (0)