> compile NEMU
ysyx_22040000 李心杨 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar 1 12:35:11 UTC 2024 x86_64 GNU/Linux 16:26:21 up 4 days 3:32, 2 users, load average: 0.85, 0.91, 0.95
This commit is contained in:
parent
a210694e82
commit
d08c2860da
415 changed files with 44314 additions and 11 deletions
3
am-kernels/kernels/slider/Makefile
Normal file
3
am-kernels/kernels/slider/Makefile
Normal file
|
@ -0,0 +1,3 @@
|
|||
NAME = slider
|
||||
SRCS = main.c image.S
|
||||
include $(AM_HOME)/Makefile
|
7
am-kernels/kernels/slider/image.S
Normal file
7
am-kernels/kernels/slider/image.S
Normal file
|
@ -0,0 +1,7 @@
|
|||
.section .data
|
||||
.global image, image_end
|
||||
.p2align 3
|
||||
image:
|
||||
.incbin "images/projectn.bin"
|
||||
.incbin "images/litenes.bin"
|
||||
image_end:
|
1
am-kernels/kernels/slider/images/.gitignore
vendored
Normal file
1
am-kernels/kernels/slider/images/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
!*.bin
|
1583
am-kernels/kernels/slider/images/litenes.bin
Normal file
1583
am-kernels/kernels/slider/images/litenes.bin
Normal file
File diff suppressed because one or more lines are too long
219
am-kernels/kernels/slider/images/projectn.bin
Normal file
219
am-kernels/kernels/slider/images/projectn.bin
Normal file
File diff suppressed because one or more lines are too long
32
am-kernels/kernels/slider/main.c
Normal file
32
am-kernels/kernels/slider/main.c
Normal file
|
@ -0,0 +1,32 @@
|
|||
#include <am.h>
|
||||
#include <klib.h>
|
||||
#include <klib-macros.h>
|
||||
|
||||
extern uint32_t image[][400][300];
|
||||
extern uint32_t image_end[][400][300];
|
||||
#define NR_IMG (image_end - image)
|
||||
|
||||
void display_image(int i) {
|
||||
io_write(AM_GPU_FBDRAW, 0, 0, &image[i][0][0], 400, 300, true);
|
||||
}
|
||||
|
||||
int main() {
|
||||
ioe_init();
|
||||
|
||||
int i = 0;
|
||||
unsigned long last = 0;
|
||||
unsigned long current;
|
||||
|
||||
display_image(i);
|
||||
|
||||
while (1) {
|
||||
current = io_read(AM_TIMER_UPTIME).us / 1000;
|
||||
if (current - last > 5000) {
|
||||
// change image every 5s
|
||||
i = (i + 1) % NR_IMG;
|
||||
display_image(i);
|
||||
last = current;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue