blob: 620ffd0bb24c90c53d6aed14d971acb676a999fe (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
#include <kernel/clock.h>
#include "priv_gpio.h"
#include <kernel/task.h>
void user_delay(uint32_t ms)
{
register uint32_t r1 asm("r1") = ms;
asm("\
mov r0, 0; \
mov r1, %0; \
svc 2; \
" :: "r" (r1));
}
int fork(void)
{
int result = 0;
asm("\
mov r0, 1; \
mov r1, %0; \
svc 0; \
" :: "r" (&result));
return result;
}
void user_main(void)
{
gpio(GPIO_MODE, 5, OUTPUT);
if (fork() == 0) {
while (1) {
gpio(GPIO_OUT, 5, 1);
user_delay(2000);
}
} else {
while (1) {
user_delay(1000);
gpio(GPIO_OUT, 5, 0);
user_delay(1000);
}
}
}
|