diff --git a/part8-breakout-ble/Makefile b/part8-breakout-ble/Makefile index 44bd023..143c51b 100644 --- a/part8-breakout-ble/Makefile +++ b/part8-breakout-ble/Makefile @@ -1,7 +1,7 @@ CFILES = $(wildcard *.c) OFILES = $(CFILES:.c=.o) LLVMPATH = /opt/homebrew/opt/llvm/bin -GCCFLAGS = -Wall -O0 -ffreestanding -nostdinc -nostdlib -mcpu=cortex-a72+nosimd +GCCFLAGS = -Wall -O2 -ffreestanding -nostdinc -nostdlib -mcpu=cortex-a72+nosimd all: clean kernel8.img diff --git a/part8-breakout-ble/Makefile.gcc.windows b/part8-breakout-ble/Makefile.gcc.windows index ee18c88..349a29b 100644 --- a/part8-breakout-ble/Makefile.gcc.windows +++ b/part8-breakout-ble/Makefile.gcc.windows @@ -1,6 +1,6 @@ CFILES = $(wildcard *.c) OFILES = $(CFILES:.c=.o) -GCCFLAGS = -Wall -O0 -ffreestanding -nostdinc -nostdlib -nostartfiles +GCCFLAGS = -Wall -O2 -ffreestanding -nostdinc -nostdlib -nostartfiles GCCPATH = ..\..\gcc-arm-10.2-2020.11-mingw-w64-i686-aarch64-none-elf\bin all: clean kernel8.img diff --git a/part8-breakout-ble/bt.c b/part8-breakout-ble/bt.c index 7d148fe..5fbf048 100644 --- a/part8-breakout-ble/bt.c +++ b/part8-breakout-ble/bt.c @@ -1,7 +1,7 @@ #include "io.h" #include "fb.h" -unsigned char *params = (unsigned char *)SAFE_ADDRESS; +volatile unsigned char *params = (unsigned char *)SAFE_ADDRESS; // UART0 @@ -93,7 +93,7 @@ enum { unsigned char empty[] = {}; -int hciCommandBytes(unsigned char *opcodebytes, unsigned char *data, unsigned char length) +int hciCommandBytes(volatile unsigned char *opcodebytes, volatile unsigned char *data, unsigned char length) { unsigned char c=0; @@ -130,7 +130,7 @@ int hciCommandBytes(unsigned char *opcodebytes, unsigned char *data, unsigned ch return 0; } -int hciCommand(unsigned short ogf, unsigned short ocf, unsigned char *data, unsigned char length) +int hciCommand(unsigned short ogf, unsigned short ocf, volatile unsigned char *data, unsigned char length) { unsigned short opcode = ogf << 10 | ocf; unsigned char opcodebytes[2] = { lo(opcode), hi(opcode) }; @@ -233,6 +233,7 @@ void sendACLsubscribe(unsigned int handle) params[4] = 0x00; unsigned int c=0; + while (c++x + velocity_x, ball->y + velocity_y); // Check we're in the game arena still