GithubHelp home page GithubHelp logo

lab-odc's People

Contributors

facuayala00 avatar gonzalo-canavesio avatar lautron avatar

Watchers

 avatar

lab-odc's Issues

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 label main
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'"

Implementar sombreado adentro de la cupula

Sprite

image

Idea de implementacion

Se puede modificar el codigo que dibuja la cupula para que si el pixel que va a modificar es de color base-de-nave se pinte de color interior-de-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

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:

image

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.