aboutsummaryrefslogtreecommitdiffstats
path: root/src/user
diff options
context:
space:
mode:
authortcsullivan <tullivan99@gmail.com>2018-10-10 23:31:10 -0400
committertcsullivan <tullivan99@gmail.com>2018-10-10 23:31:10 -0400
commit34684b28a463404717a86f25ee381bfdaefbace4 (patch)
tree56c2d899ed3740312ac408e12a6f2e1bbb875adf /src/user
parentc66410f6319284b94e21758539ac25bfb4694d3a (diff)
unpriviledged sleep wip
Diffstat (limited to 'src/user')
-rw-r--r--src/user/user.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/user/user.c b/src/user/user.c
index fc51d29..0bb2607 100644
--- a/src/user/user.c
+++ b/src/user/user.c
@@ -5,7 +5,16 @@
void task1(void);
void task2(void);
+void user_delay(uint32_t ms)
+{
+ register uint32_t r1 asm("r1") = ms;
+ asm("\
+ mov r0, 0; \
+ mov r1, %0; \
+ svc 2; \
+ " :: "r" (r1));
+}
void user_main(void)
{
@@ -14,22 +23,22 @@ void user_main(void)
for (int i = 0; i < 8; i++) {
gpio(GPIO_OUT, 5, !(i & 1));
- delay(200);
+ user_delay(200);
}
}
void task1(void)
{
- delay(400);
+ user_delay(400);
task_start(task2, 1024);
}
void task2(void)
{
int state = 0;
- delay(2500);
+ user_delay(2500);
while (1) {
gpio(GPIO_OUT, 5, state ^= 1);
- delay(500);
+ user_delay(500);
}
}