Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions examples/RISCV-32-arduino/example1.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@

.data
time:
.word 1000
.text

main:
addi sp, sp, -4
sw ra, 0(sp)
jal ra, initArduino
jal ra, setup
lw ra, 0(sp)
addi sp, sp, 4
j loop

setup:
#pinMode(LED_BUILTIN, OUTPUT);
li a0,30
li a1, 0x03
addi sp, sp, -4
sw ra, 0(sp)
jal ra, pinMode
lw ra, 0(sp)
addi sp, sp, 4
jr ra
loop:
#digitalWrite(LED_BUILTIN, HIGH);
li a0,30
li a1, 0x1
addi sp, sp, -4
sw ra, 0(sp)
jal ra, digitalWrite
lw ra, 0(sp)
addi sp, sp, 4
#delay(1000);
la a0, time
lw a0, 0(a0)
addi sp, sp, -4
sw ra, 0(sp)
jal ra, delay
lw ra, 0(sp)
addi sp, sp, 4
#digitalWrite(LED_BUILTIN, LOW);
li a0,30
li a1, 0x0
addi sp, sp, -4
sw ra, 0(sp)
jal ra, digitalWrite
lw ra, 0(sp)
addi sp, sp, 4
#delay(1000);
la a0, time
lw a0, 0(a0)
addi sp, sp, -4
sw ra, 0(sp)
jal ra, delay
lw ra, 0(sp)
addi sp, sp, 4
j loop

91 changes: 91 additions & 0 deletions examples/RISCV-32-arduino/example10.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
# Creatino example: Looking up serial entries with serial_find
.data
msg: .string "Terminal iniciado en baudrate 115200"
missing: .string "\nNot here"
.align 2
wanted: .string "OK"
stop: .string "STOP"
found: .string "\nOK found"
.align 2
buffer: .space 100

.text
not_found:
la a0, missing
addi sp, sp, -4
sw ra, 0(sp)
jal ra, serial_printf
lw ra, 0(sp)
addi sp, sp, 4

#li a0, 10000
#addi sp, sp, -4
#sw ra, 0(sp)
#jal ra, delay
#lw ra, 0(sp)
#addi sp, sp, 4

jal ra, loop

founded:
la a0, found
addi sp, sp, -4
sw ra, 0(sp)
jal ra, serial_printf
lw ra, 0(sp)
addi sp, sp, 4

#li a0, 10000
#addi sp, sp, -4
#sw ra, 0(sp)
#jal ra, delay
#lw ra, 0(sp)
#addi sp, sp, 4

jal ra, loop


setup:
# Serial.begin(115200)
li a0, 115200
addi sp, sp, -4
sw ra, 0(sp)
jal ra, serial_begin
lw ra, 0(sp)
addi sp, sp, 4

# Serial.printf(msg)
la a0, msg
addi sp, sp, -4
sw ra, 0(sp)
jal ra, serial_printf
lw ra, 0(sp)
addi sp, sp, 4

jr ra

loop:
# Search "OK" in terminal
la a0, wanted
la a1, stop
addi sp, sp, -4
sw ra, 0(sp)
jal ra, serial_findUntil
lw ra, 0(sp)
addi sp, sp, 4

beqz a0, not_found
jal ra, founded



j loop

main:
jal ra, initArduino
addi sp, sp, -4
sw ra, 0(sp)
jal ra, setup
lw ra, 0(sp)
addi sp, sp, 4
j loop
24 changes: 24 additions & 0 deletions examples/RISCV-32-arduino/example11.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Creatino Example: Starting Monitor Print
.data
msg: .string "Hello! Serial here"

msg2: .string "Come soon!!"
.text
main:
# ESP-IDF needs to initiate Arduino component first
jal ra, initArduino
# Baud rate depends on the board you are using. Maybe the same values don't fit everywhere
li a0, 115200
jal ra, serial_begin
la a0, msg
jal ra, serial_printf

#Now, we will wait all the data is transmitted
jal ra, serial_flush

#Print again!!
la a0, msg2
jal ra, serial_printf


jr ra
102 changes: 102 additions & 0 deletions examples/RISCV-32-arduino/example2.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@

.data
time: .word 1000
buttonPin: .word 21
ledpin: .word 5
buttonState: .word 0
msg: .string "Button Pressed!"

.text
setup:
li a0, 115200
addi sp, sp, -4
sw ra, 0(sp)
jal ra, serial_begin
lw ra, 0(sp)
addi sp, sp, 4

#pinMode(buttonPin,INPUT_PULLUP)
la a0, buttonPin
lw a0, 0(a0)
li a1, 0x05 #INPUT_PULLUP
addi sp, sp, -4
sw ra, 0(sp)
jal ra, pinMode
lw ra, 0(sp)
addi sp, sp, 4

#pinMode(ledpin,OUTPUT)
la a0, ledpin
lw a0, 0(a0)
li a1, 0x03 #OUTPUT
addi sp, sp, -4
sw ra, 0(sp)
jal ra, pinMode
lw ra, 0(sp)
addi sp, sp, 4

jr ra

button_pressed:
la a0, msg
addi sp, sp, -16
sw ra, 12(sp)
jal ra, serial_printf
lw ra, 12(sp)
addi sp, sp, 16

la a0, ledpin
lw a0, 0(a0)
li a1, 0x1
jal ra, digitalWrite

la a0, time
lw a0, 0(a0)
addi sp, sp, -16
sw ra, 12(sp)
jal ra, delay
lw ra, 12(sp)
addi sp, sp, 16

jal ra, loop


loop:
la a0, buttonPin
lw a0, 0(a0)
addi sp, sp, -4
sw ra, 0(sp)
jal ra, digitalRead
lw ra, 0(sp)
addi sp, sp, 4

mv t0,a0

li t1 ,0 #LOW

beq t0,t1,button_pressed

la a0, ledpin
lw a0, 0(a0)
li a1, 0x0
jal ra, digitalWrite

la a0, time
lw a0, 0(a0)
addi sp, sp, -16
sw ra, 12(sp)
jal ra, delay
lw ra, 12(sp)
addi sp, sp, 16

j loop

main:
addi sp, sp, -16
sw ra, 12(sp)
jal ra, initArduino
jal ra, setup
lw ra, 12(sp)
addi sp, sp, 16
j loop
jr ra
96 changes: 96 additions & 0 deletions examples/RISCV-32-arduino/example3.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@

.data
space: .zero 100 #Buffer to place the string
initial: .string "Introduce number of letters:\n"
aux: .string "%d\nType your message\n"
print: .string "Your message: %s\n"

.text

setup:
#serialBegin
li a0,115200
addi sp, sp, -4
sw ra, 0(sp)
jal ra, serial_begin
lw ra, 0(sp)
addi sp, sp,4
jr ra

print_int:
la a0, aux
mv a1,t0
addi sp, sp, -4
sw ra, 0(sp)
jal ra, serial_printf
lw ra, 0(sp)
addi sp, sp, 4
j read_function


read_function:
la a0, space
mv a1, t0 # number of letters it will have
addi sp, sp, -4
sw ra, 0(sp)
jal ra, serial_readBytes
lw ra, 0(sp)
addi sp, sp,4

bne t0,a0,read_function


la a0, print
la a1, space
addi sp, sp, -4
sw ra, 0(sp)
jal ra, serial_printf
lw ra, 0(sp)
addi sp, sp, 4

jr ra


aux_print:
#serialPrintf
la a0,initial
addi sp, sp, -4
sw ra, 0(sp)
jal ra, serial_printf
lw ra, 0(sp)
addi sp, sp, 4
j read_num


read_num:
addi sp, sp, -4
sw ra, 0(sp)
jal ra, serial_parseInt
lw ra, 0(sp)
addi sp, sp,4

mv t0, a0


bnez t0, print_int
j read_num

loop:
addi sp, sp, -4
sw ra, 0(sp)
jal ra, serial_available
lw ra, 0(sp)
addi sp, sp, 4
beqz a0,aux_print
j loop



main:
addi sp, sp, -4
sw ra, 0(sp)
jal ra, initArduino
jal ra, setup
lw ra, 0(sp)
addi sp, sp, 4
j loop
Loading
Loading