lab-odc's People
lab-odc's Issues
Añadir luces al sprite de la nave
Mejorar algoritmo de movimiento de estrellas
Descripcion
El algoritmo actual para el movimiento de estrellas hace que se vean algo estaticas
Cambiar nombres de labels de app.s por unos mas descriptivos
Familiarizarse con el funcionamiento del framebuffer en ASM
Tarea Individual
Descripcion
Dibujar un cuadrado en pantalla utilizando el framebuffer en ASM
Progreso
@SoyJasson
- Tarea finalizada
@facuayala00
- Tarea finalizada
@Lautron
- Tarea finalizada
Elegir idea para el proyecto
Hacer sprite de planeta
Agregar Makefile al proyecto
Descripcion
Probablemente seria conveniente agregar una makefile al proyecto para que todos tengamos lo mismo
Dicha makefile deberia ser compatible con el uso adentro de un docker container
Sugerencia de makefile
Diferencias con el makefile de los profes
- Se añadio
< /dev/null &
al comando para correr QEMU para que este pueda correr de fondo - Se agrego
-ex "add-symbol-file kernel8.elf"
al comando de gdb para poder usar labels en breaks - Se agregó el comando
runGmain
que te lleva directo al labelmain
ARMGNU ?= aarch64-linux-gnu
AOPS = -g --warn --fatal-warnings
ASM_SRCS = $(wildcard *.s)
ASM_OBJS = $(ASM_SRCS:.s=.o)
all : kernel8.img
%.o: %.s
$(ARMGNU)-as $(AOPS) $< -o $@
clean :
rm -f *.o memory_map.txt kernel8.list kernel8.img kernel8.elf
kernel8.img : memmap $(ASM_OBJS)
$(ARMGNU)-ld $(ASM_OBJS) -T memmap -o kernel8.elf -M > memory_map.txt
$(ARMGNU)-objdump -D kernel8.elf > kernel8.list
$(ARMGNU)-objcopy kernel8.elf -O binary kernel8.img
run : all
qemu-system-aarch64 -M raspi3b -kernel kernel8.img -serial stdio < /dev/null &
runQ : kernel8.img
qemu-system-aarch64 -s -S -M raspi3b -kernel kernel8.img < /dev/null &
runG:
gdb-multiarch -ex "set architecture aarch64" -ex "add-symbol-file kernel8.elf" -ex "target remote localhost:1234" --ex "dashboard registers -style list 'x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 sp pc cpsr'"
runGmain:
gdb-multiarch -ex "set architecture aarch64" -ex "target remote localhost:1234" -ex "set confirm off" -ex "add-symbol-file kernel8.elf" -ex "set confirm on" -ex "break main" -ex "continue" --ex "dashboard registers -style list 'x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 sp pc cpsr'"
Sugerencia de formato para explicación de funciones
Subir primer commit al repo
Hacer sprite de la cupula de la nave
Agregar comentarios que documenten los procedimientos en app.s
Tener en cuenta el formato sugerido en #12
Implementar sombreado adentro de la cupula
No se estan cargando los symbols de app.s
Descripcion
Los simbolos de debugging de app.s no se cargan pero los de start.s si.
Esto dificulta muchisimo el uso del debugger ya que no se puede hacer break <label>
para ir a la parte de codigo deseada
Familiarizarse con el codigo
Hacer sprite del marcianito
Subir sprites al repositorio
Implementar procedimiento que pueda dibujar formas complejas en base a un array
Posible "estructura de datos"
Podria implementarse en un array unidimensional con el siguiente formato:
Pseudocodigo
// p -> puntero del array
// q -> puntero de inicio del subarray que se esté usando
// p = p+8 -> saltear 0
/// mientras no se haya llegado al final de p:
// q = p+8 -> mover puntero a inicio del subarray
// hacer un downto hasta *p
// linea_from_array q
// fb = pos_nueva_linea
// mientras que *p != 0
// p = p+8
// p = p+8 -> mueve p a la posicion que contiene la cantidad de lineas
//linea_from_array q2
// pintar = false
// mientras que *q2 != 0
// if pintar then
// pintar (*q2) pixels
// pintar=false
// else
// fb = fb + (4 * (*q2)) // mover direccion de fb (*q2) pixels hacia adelante
// pintar=true
// q2 = q2 + 8
Comentarios
Problemente necesite un par de modificaciones, pero sirve para tener una idea general sobre que hay que hacer.
Hay que ver las siguientes cosas:
- Como saber si se llegó al final de p
- Probablemente convenga usar -1 como delimitador en vez de 0, de esa manera se evitan posibles confusiones con los elementos del subarray
Hacerle borde a la nave
- Probar si es fácil de hacerlo (solo debes alargar la linea y pintarla de otro color)
- Probar si queda bien
Implementar sprite de luces en assembler
Deberían ser 3 o 4 pasos/imagenes, y una vez se hacen esos 4 pasos se repite el primero y así en un bucle infinito
Podrian ir cambiando de colores las luces mientras se van moviendo
Determinar tamaños en pixeles para cada componente de la nave
Posible formato
base x altura
Determinar tamaño
Nave
- Base
- Cupula
- Tamaño total
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.