From d6e087b45fd4fe566d87d679db063d23e8e83661 Mon Sep 17 00:00:00 2001 From: "antnh6@gmail.com" <antnh6@gmail.com> Date: Sun, 20 May 2018 12:29:51 -0400 Subject: [PATCH] scrapped libsrc --- src/MakefileOG | 44 ++ src/bwio.a | Bin 0 -> 5592 bytes src/bwio.c | 257 +++++++++++ src/bwio.o | Bin 0 -> 5288 bytes src/bwio.s | 982 ++++++++++++++++++++++++++++++++++++++++++ src/scheduler.c | 13 + src/task-descriptor.c | 14 + 7 files changed, 1310 insertions(+) create mode 100644 src/MakefileOG create mode 100644 src/bwio.a create mode 100644 src/bwio.c create mode 100644 src/bwio.o create mode 100644 src/bwio.s create mode 100644 src/scheduler.c create mode 100644 src/task-descriptor.c diff --git a/src/MakefileOG b/src/MakefileOG new file mode 100644 index 0000000..a5f2290 --- /dev/null +++ b/src/MakefileOG @@ -0,0 +1,44 @@ +# Makefile for busy-wait IO tests +# +XCC = /u/wbcowan/gnuarm-4.0.2/arm-elf/bin/gcc +AS = /u/wbcowan/gnuarm-4.0.2/arm-elf/bin/as +AR = /u/wbcowan/gnuarm-4.0.2/arm-elf/bin/ar +CFLAGS = -c -fPIC -Wall -I. -I../../include -mcpu=arm920t -msoft-float +# -g: include hooks for gdb +# -c: only compile +# -mcpu=arm920t: generate code for the 920t architecture +# -fpic: emit position-independent code +# -Wall: report all warnings + +ASFLAGS = -mcpu=arm920t -mapcs-32 +# -mapcs: always generate a complete stack frame + +ARFLAGS = rcs + +all: bwio.a + + +buffer.s: buffer.c + $(XCC) -S $(CFLAGS) buffer.c + +bwio.s: bwio.c + $(XCC) -S $(CFLAGS) bwio.c + +buffer.o: buffer.s + $(AS) $(ASFLAGS) -o buffer.o buffer.s + +bwio.o: bwio.s + $(AS) $(ASFLAGS) -o bwio.o bwio.s + +buffer.a: buffer.o + $(AR) $(ARFLAGS) $@ buffer.o + +bwio.a: bwio.o + $(AR) $(ARFLAGS) $@ bwio.o + +install: bwio.a buffer.a + mv bwio.a ../../lib/libbwio.a + mv buffer.a ../../lib/libbuffer.a + +clean: + -rm -f *.s *.o *.a *~ ../../lib/*.a diff --git a/src/bwio.a b/src/bwio.a new file mode 100644 index 0000000000000000000000000000000000000000..d86d70ea81123a029983dfa5eb4a32fe52b59840 GIT binary patch literal 5592 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 literal 0 HcmV?d00001 diff --git a/src/bwio.c b/src/bwio.c new file mode 100644 index 0000000..dcb1318 --- /dev/null +++ b/src/bwio.c @@ -0,0 +1,257 @@ +/* + * bwio.c - busy-wait I/O routines for diagnosis + * + * Specific to the TS-7200 ARM evaluation board + * + */ + +#include <ts7200.h> +#include <bwio.h> + +/* + * The UARTs are initialized by RedBoot to the following state + * 115,200 bps + * 8 bits + * no parity + * fifos enabled + */ +int bwsetfifo( int channel, int state ) { + int *line, buf; + switch( channel ) { + case COM1: + line = (int *)( UART1_BASE + UART_LCRH_OFFSET ); + break; + case COM2: + line = (int *)( UART2_BASE + UART_LCRH_OFFSET ); + break; + default: + return -1; + break; + } + buf = *line; + buf = state ? buf | FEN_MASK : buf & ~FEN_MASK; + *line = buf; + return 0; +} + +int bwsetspeed( int channel, int speed ) { + int *high, *low; + switch( channel ) { + case COM1: + high = (int *)( UART1_BASE + UART_LCRM_OFFSET ); + low = (int *)( UART1_BASE + UART_LCRL_OFFSET ); + break; + case COM2: + high = (int *)( UART2_BASE + UART_LCRM_OFFSET ); + low = (int *)( UART2_BASE + UART_LCRL_OFFSET ); + break; + default: + return -1; + break; + } + switch( speed ) { + case 115200: + *high = 0x0; + *low = 0x3; + return 0; + case 2400: + *high = 0x0; + *low = 0xbf; + return 0; + default: + return -1; + } +} + +int bwputc( int channel, char c ) { + int *flags, *data; + switch( channel ) { + case COM1: + flags = (int *)( UART1_BASE + UART_FLAG_OFFSET ); + data = (int *)( UART1_BASE + UART_DATA_OFFSET ); + break; + case COM2: + flags = (int *)( UART2_BASE + UART_FLAG_OFFSET ); + data = (int *)( UART2_BASE + UART_DATA_OFFSET ); + break; + default: + return -1; + break; + } + while( ( *flags & TXFF_MASK ) ) ; + *data = c; + return 0; +} + +char c2x( char ch ) { + if ( (ch <= 9) ) return '0' + ch; + return 'a' + ch - 10; +} + +int bwputx( int channel, char c ) { + char chh, chl; + + chh = c2x( c / 16 ); + chl = c2x( c % 16 ); + bwputc( channel, chh ); + return bwputc( channel, chl ); +} + +int bwputr( int channel, unsigned int reg ) { + int byte; + char *ch = (char *) ® + + for( byte = 3; byte >= 0; byte-- ) bwputx( channel, ch[byte] ); + return bwputc( channel, ' ' ); +} + +int bwputstr( int channel, char *str ) { + while( *str ) { + if( bwputc( channel, *str ) < 0 ) return -1; + str++; + } + return 0; +} + +void bwputw( int channel, int n, char fc, char *bf ) { + char ch; + char *p = bf; + + while( *p++ && n > 0 ) n--; + while( n-- > 0 ) bwputc( channel, fc ); + while( ( ch = *bf++ ) ) bwputc( channel, ch ); +} + +int bwgetc( int channel ) { + int *flags, *data; + unsigned char c; + + switch( channel ) { + case COM1: + flags = (int *)( UART1_BASE + UART_FLAG_OFFSET ); + data = (int *)( UART1_BASE + UART_DATA_OFFSET ); + break; + case COM2: + flags = (int *)( UART2_BASE + UART_FLAG_OFFSET ); + data = (int *)( UART2_BASE + UART_DATA_OFFSET ); + break; + default: + return -1; + break; + } + while ( !( *flags & RXFF_MASK ) ) ; + c = *data; + return c; +} + +int bwa2d( char ch ) { + if( ch >= '0' && ch <= '9' ) return ch - '0'; + if( ch >= 'a' && ch <= 'f' ) return ch - 'a' + 10; + if( ch >= 'A' && ch <= 'F' ) return ch - 'A' + 10; + return -1; +} + +char bwa2i( char ch, char **src, int base, int *nump ) { + int num, digit; + char *p; + + p = *src; num = 0; + while( ( digit = bwa2d( ch ) ) >= 0 ) { + if ( digit > base ) break; + num = num*base + digit; + ch = *p++; + } + *src = p; *nump = num; + return ch; +} + +void bwui2a( unsigned int num, unsigned int base, char *bf ) { + int n = 0; + int dgt; + unsigned int d = 1; + + while( (num / d) >= base ) d *= base; + while( d != 0 ) { + dgt = num / d; + num %= d; + d /= base; + if( n || dgt > 0 || d == 0 ) { + *bf++ = dgt + ( dgt < 10 ? '0' : 'a' - 10 ); + ++n; + } + } + *bf = 0; +} + +void bwi2a( int num, char *bf ) { + if( num < 0 ) { + num = -num; + *bf++ = '-'; + } + bwui2a( num, 10, bf ); +} + +void bwformat ( int channel, char *fmt, va_list va ) { + char bf[12]; + char ch, lz; + int w; + + + while ( ( ch = *(fmt++) ) ) { + if ( ch != '%' ) + bwputc( channel, ch ); + else { + lz = 0; w = 0; + ch = *(fmt++); + switch ( ch ) { + case '0': + lz = 1; ch = *(fmt++); + break; + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + ch = bwa2i( ch, &fmt, 10, &w ); + break; + } + switch( ch ) { + case 0: return; + case 'c': + bwputc( channel, va_arg( va, char ) ); + break; + case 's': + bwputw( channel, w, 0, va_arg( va, char* ) ); + break; + case 'u': + bwui2a( va_arg( va, unsigned int ), 10, bf ); + bwputw( channel, w, lz, bf ); + break; + case 'd': + bwi2a( va_arg( va, int ), bf ); + bwputw( channel, w, lz, bf ); + break; + case 'x': + bwui2a( va_arg( va, unsigned int ), 16, bf ); + bwputw( channel, w, lz, bf ); + break; + case '%': + bwputc( channel, ch ); + break; + } + } + } +} + +void bwprintf( int channel, char *fmt, ... ) { + va_list va; + + va_start(va,fmt); + bwformat( channel, fmt, va ); + va_end(va); +} + diff --git a/src/bwio.o b/src/bwio.o new file mode 100644 index 0000000000000000000000000000000000000000..1f01e290b85e1e1a3aedabe0cb298ef39089b2f4 GIT binary patch literal 5288 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 AdjJ3c literal 0 HcmV?d00001 diff --git a/src/bwio.s b/src/bwio.s new file mode 100644 index 0000000..1131732 --- /dev/null +++ b/src/bwio.s @@ -0,0 +1,982 @@ + .file "bwio.c" + .text + .align 2 + .global bwsetfifo + .type bwsetfifo, %function +bwsetfifo: + @ args = 0, pretend = 0, frame = 28 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + stmfd sp!, {fp, ip, lr, pc} + sub fp, ip, #4 + sub sp, sp, #28 + str r0, [fp, #-24] + str r1, [fp, #-28] + ldr r3, [fp, #-24] + str r3, [fp, #-40] + ldr r3, [fp, #-40] + cmp r3, #0 + beq .L3 + ldr r3, [fp, #-40] + cmp r3, #1 + beq .L4 + b .L2 +.L3: + ldr r3, .L11 + str r3, [fp, #-20] + b .L5 +.L4: + ldr r3, .L11+4 + str r3, [fp, #-20] + b .L5 +.L2: + mvn r3, #0 + str r3, [fp, #-36] + b .L6 +.L5: + ldr r3, [fp, #-20] + ldr r3, [r3, #0] + str r3, [fp, #-16] + ldr r3, [fp, #-28] + cmp r3, #0 + beq .L7 + ldr r3, [fp, #-16] + orr r3, r3, #16 + str r3, [fp, #-32] + b .L9 +.L7: + ldr r3, [fp, #-16] + bic r3, r3, #16 + str r3, [fp, #-32] +.L9: + ldr r3, [fp, #-32] + str r3, [fp, #-16] + ldr r2, [fp, #-20] + ldr r3, [fp, #-16] + str r3, [r2, #0] + mov r3, #0 + str r3, [fp, #-36] +.L6: + ldr r3, [fp, #-36] + mov r0, r3 + sub sp, fp, #12 + ldmfd sp, {fp, sp, pc} +.L12: + .align 2 +.L11: + .word -2138308600 + .word -2138243064 + .size bwsetfifo, .-bwsetfifo + .align 2 + .global bwsetspeed + .type bwsetspeed, %function +bwsetspeed: + @ args = 0, pretend = 0, frame = 28 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + stmfd sp!, {fp, ip, lr, pc} + sub fp, ip, #4 + sub sp, sp, #28 + str r0, [fp, #-24] + str r1, [fp, #-28] + ldr r2, [fp, #-24] + str r2, [fp, #-36] + ldr r3, [fp, #-36] + cmp r3, #0 + beq .L15 + ldr r2, [fp, #-36] + cmp r2, #1 + beq .L16 + b .L14 +.L15: + ldr r3, .L23 + str r3, [fp, #-20] + ldr r3, .L23+4 + str r3, [fp, #-16] + b .L17 +.L16: + ldr r3, .L23+8 + str r3, [fp, #-20] + ldr r3, .L23+12 + str r3, [fp, #-16] + b .L17 +.L14: + mvn r3, #0 + str r3, [fp, #-32] + b .L18 +.L17: + ldr r2, [fp, #-28] + str r2, [fp, #-40] + ldr r3, [fp, #-40] + cmp r3, #2400 + beq .L20 + ldr r3, .L23+16 + ldr r2, [fp, #-40] + cmp r2, r3 + beq .L21 + b .L19 +.L21: + ldr r2, [fp, #-20] + mov r3, #0 + str r3, [r2, #0] + ldr r2, [fp, #-16] + mov r3, #3 + str r3, [r2, #0] + mov r3, #0 + str r3, [fp, #-32] + b .L18 +.L20: + ldr r2, [fp, #-20] + mov r3, #0 + str r3, [r2, #0] + ldr r2, [fp, #-16] + mov r3, #191 + str r3, [r2, #0] + mov r2, #0 + str r2, [fp, #-32] + b .L18 +.L19: + mvn r3, #0 + str r3, [fp, #-32] +.L18: + ldr r3, [fp, #-32] + mov r0, r3 + sub sp, fp, #12 + ldmfd sp, {fp, sp, pc} +.L24: + .align 2 +.L23: + .word -2138308596 + .word -2138308592 + .word -2138243060 + .word -2138243056 + .word 115200 + .size bwsetspeed, .-bwsetspeed + .align 2 + .global bwputc + .type bwputc, %function +bwputc: + @ args = 0, pretend = 0, frame = 24 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + stmfd sp!, {fp, ip, lr, pc} + sub fp, ip, #4 + sub sp, sp, #24 + str r0, [fp, #-24] + mov r3, r1 + strb r3, [fp, #-28] + ldr r3, [fp, #-24] + str r3, [fp, #-36] + ldr r3, [fp, #-36] + cmp r3, #0 + beq .L27 + ldr r3, [fp, #-36] + cmp r3, #1 + beq .L28 + b .L26 +.L27: + ldr r3, .L33 + str r3, [fp, #-20] + ldr r3, .L33+4 + str r3, [fp, #-16] + b .L29 +.L28: + ldr r3, .L33+8 + str r3, [fp, #-20] + ldr r3, .L33+12 + str r3, [fp, #-16] + b .L29 +.L26: + mvn r3, #0 + str r3, [fp, #-32] + b .L30 +.L29: + ldr r3, [fp, #-20] + ldr r3, [r3, #0] + mov r3, r3, lsr #5 + and r3, r3, #1 + and r3, r3, #255 + cmp r3, #0 + bne .L29 + ldrb r2, [fp, #-28] @ zero_extendqisi2 + ldr r3, [fp, #-16] + str r2, [r3, #0] + mov r3, #0 + str r3, [fp, #-32] +.L30: + ldr r3, [fp, #-32] + mov r0, r3 + sub sp, fp, #12 + ldmfd sp, {fp, sp, pc} +.L34: + .align 2 +.L33: + .word -2138308584 + .word -2138308608 + .word -2138243048 + .word -2138243072 + .size bwputc, .-bwputc + .align 2 + .global c2x + .type c2x, %function +c2x: + @ args = 0, pretend = 0, frame = 8 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + stmfd sp!, {fp, ip, lr, pc} + sub fp, ip, #4 + sub sp, sp, #8 + mov r3, r0 + strb r3, [fp, #-16] + ldrb r3, [fp, #-16] @ zero_extendqisi2 + cmp r3, #9 + bhi .L36 + ldrb r3, [fp, #-16] @ zero_extendqisi2 + add r3, r3, #48 + and r3, r3, #255 + and r3, r3, #255 + str r3, [fp, #-20] + b .L38 +.L36: + ldrb r3, [fp, #-16] @ zero_extendqisi2 + add r3, r3, #87 + and r3, r3, #255 + and r3, r3, #255 + str r3, [fp, #-20] +.L38: + ldr r3, [fp, #-20] + mov r0, r3 + sub sp, fp, #12 + ldmfd sp, {fp, sp, pc} + .size c2x, .-c2x + .align 2 + .global bwputx + .type bwputx, %function +bwputx: + @ args = 0, pretend = 0, frame = 12 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + stmfd sp!, {fp, ip, lr, pc} + sub fp, ip, #4 + sub sp, sp, #12 + str r0, [fp, #-20] + mov r3, r1 + strb r3, [fp, #-24] + ldrb r3, [fp, #-24] @ zero_extendqisi2 + mov r3, r3, lsr #4 + and r3, r3, #255 + mov r0, r3 + bl c2x(PLT) + mov r3, r0 + strb r3, [fp, #-14] + ldrb r3, [fp, #-24] @ zero_extendqisi2 + and r3, r3, #15 + mov r0, r3 + bl c2x(PLT) + mov r3, r0 + strb r3, [fp, #-13] + ldrb r3, [fp, #-14] @ zero_extendqisi2 + ldr r0, [fp, #-20] + mov r1, r3 + bl bwputc(PLT) + ldrb r3, [fp, #-13] @ zero_extendqisi2 + ldr r0, [fp, #-20] + mov r1, r3 + bl bwputc(PLT) + mov r3, r0 + mov r0, r3 + sub sp, fp, #12 + ldmfd sp, {fp, sp, pc} + .size bwputx, .-bwputx + .align 2 + .global bwputr + .type bwputr, %function +bwputr: + @ args = 0, pretend = 0, frame = 16 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + stmfd sp!, {fp, ip, lr, pc} + sub fp, ip, #4 + sub sp, sp, #16 + str r0, [fp, #-24] + str r1, [fp, #-28] + sub r3, fp, #28 + str r3, [fp, #-16] + mov r3, #3 + str r3, [fp, #-20] + b .L43 +.L44: + ldr r3, [fp, #-20] + mov r2, r3 + ldr r3, [fp, #-16] + add r3, r2, r3 + ldrb r3, [r3, #0] @ zero_extendqisi2 + ldr r0, [fp, #-24] + mov r1, r3 + bl bwputx(PLT) + ldr r3, [fp, #-20] + sub r3, r3, #1 + str r3, [fp, #-20] +.L43: + ldr r3, [fp, #-20] + cmp r3, #0 + bge .L44 + ldr r0, [fp, #-24] + mov r1, #32 + bl bwputc(PLT) + mov r3, r0 + mov r0, r3 + sub sp, fp, #12 + ldmfd sp, {fp, sp, pc} + .size bwputr, .-bwputr + .align 2 + .global bwputstr + .type bwputstr, %function +bwputstr: + @ args = 0, pretend = 0, frame = 12 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + stmfd sp!, {fp, ip, lr, pc} + sub fp, ip, #4 + sub sp, sp, #12 + str r0, [fp, #-16] + str r1, [fp, #-20] + b .L48 +.L49: + ldr r3, [fp, #-20] + ldrb r3, [r3, #0] @ zero_extendqisi2 + ldr r0, [fp, #-16] + mov r1, r3 + bl bwputc(PLT) + mov r3, r0 + cmp r3, #0 + bge .L50 + mvn r3, #0 + str r3, [fp, #-24] + b .L52 +.L50: + ldr r3, [fp, #-20] + add r3, r3, #1 + str r3, [fp, #-20] +.L48: + ldr r3, [fp, #-20] + ldrb r3, [r3, #0] @ zero_extendqisi2 + cmp r3, #0 + bne .L49 + mov r3, #0 + str r3, [fp, #-24] +.L52: + ldr r3, [fp, #-24] + mov r0, r3 + sub sp, fp, #12 + ldmfd sp, {fp, sp, pc} + .size bwputstr, .-bwputstr + .align 2 + .global bwputw + .type bwputw, %function +bwputw: + @ args = 0, pretend = 0, frame = 24 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + stmfd sp!, {fp, ip, lr, pc} + sub fp, ip, #4 + sub sp, sp, #24 + str r0, [fp, #-24] + str r1, [fp, #-28] + str r3, [fp, #-36] + mov r3, r2 + strb r3, [fp, #-32] + ldr r3, [fp, #-36] + str r3, [fp, #-16] + b .L56 +.L57: + ldr r3, [fp, #-28] + sub r3, r3, #1 + str r3, [fp, #-28] +.L56: + ldr r3, [fp, #-16] + ldrb r3, [r3, #0] @ zero_extendqisi2 + cmp r3, #0 + moveq r3, #0 + movne r3, #1 + and r2, r3, #255 + ldr r3, [fp, #-16] + add r3, r3, #1 + str r3, [fp, #-16] + eor r3, r2, #1 + and r3, r3, #255 + cmp r3, #0 + bne .L60 + ldr r3, [fp, #-28] + cmp r3, #0 + bgt .L57 + b .L60 +.L61: + ldrb r3, [fp, #-32] @ zero_extendqisi2 + ldr r0, [fp, #-24] + mov r1, r3 + bl bwputc(PLT) +.L60: + ldr r3, [fp, #-28] + cmp r3, #0 + movle r3, #0 + movgt r3, #1 + and r2, r3, #255 + ldr r3, [fp, #-28] + sub r3, r3, #1 + str r3, [fp, #-28] + cmp r2, #0 + bne .L61 + b .L63 +.L64: + ldrb r3, [fp, #-17] @ zero_extendqisi2 + ldr r0, [fp, #-24] + mov r1, r3 + bl bwputc(PLT) +.L63: + ldr r3, [fp, #-36] + ldrb r3, [r3, #0] + strb r3, [fp, #-17] + ldrb r3, [fp, #-17] @ zero_extendqisi2 + cmp r3, #0 + moveq r3, #0 + movne r3, #1 + and r2, r3, #255 + ldr r3, [fp, #-36] + add r3, r3, #1 + str r3, [fp, #-36] + cmp r2, #0 + bne .L64 + sub sp, fp, #12 + ldmfd sp, {fp, sp, pc} + .size bwputw, .-bwputw + .align 2 + .global bwgetc + .type bwgetc, %function +bwgetc: + @ args = 0, pretend = 0, frame = 24 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + stmfd sp!, {fp, ip, lr, pc} + sub fp, ip, #4 + sub sp, sp, #24 + str r0, [fp, #-28] + ldr r3, [fp, #-28] + str r3, [fp, #-36] + ldr r3, [fp, #-36] + cmp r3, #0 + beq .L69 + ldr r3, [fp, #-36] + cmp r3, #1 + beq .L70 + b .L68 +.L69: + ldr r3, .L75 + str r3, [fp, #-24] + ldr r3, .L75+4 + str r3, [fp, #-20] + b .L71 +.L70: + ldr r3, .L75+8 + str r3, [fp, #-24] + ldr r3, .L75+12 + str r3, [fp, #-20] + b .L71 +.L68: + mvn r3, #0 + str r3, [fp, #-32] + b .L72 +.L71: + ldr r3, [fp, #-24] + ldr r3, [r3, #0] + mov r3, r3, lsr #6 + and r3, r3, #1 + cmp r3, #0 + beq .L71 + ldr r3, [fp, #-20] + ldr r3, [r3, #0] + strb r3, [fp, #-13] + ldrb r3, [fp, #-13] @ zero_extendqisi2 + str r3, [fp, #-32] +.L72: + ldr r3, [fp, #-32] + mov r0, r3 + sub sp, fp, #12 + ldmfd sp, {fp, sp, pc} +.L76: + .align 2 +.L75: + .word -2138308584 + .word -2138308608 + .word -2138243048 + .word -2138243072 + .size bwgetc, .-bwgetc + .align 2 + .global bwa2d + .type bwa2d, %function +bwa2d: + @ args = 0, pretend = 0, frame = 8 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + stmfd sp!, {fp, ip, lr, pc} + sub fp, ip, #4 + sub sp, sp, #8 + mov r3, r0 + strb r3, [fp, #-16] + ldrb r3, [fp, #-16] @ zero_extendqisi2 + cmp r3, #47 + bls .L78 + ldrb r3, [fp, #-16] @ zero_extendqisi2 + cmp r3, #57 + bhi .L78 + ldrb r3, [fp, #-16] @ zero_extendqisi2 + sub r3, r3, #48 + str r3, [fp, #-20] + b .L81 +.L78: + ldrb r3, [fp, #-16] @ zero_extendqisi2 + cmp r3, #96 + bls .L82 + ldrb r3, [fp, #-16] @ zero_extendqisi2 + cmp r3, #102 + bhi .L82 + ldrb r3, [fp, #-16] @ zero_extendqisi2 + sub r3, r3, #87 + str r3, [fp, #-20] + b .L81 +.L82: + ldrb r3, [fp, #-16] @ zero_extendqisi2 + cmp r3, #64 + bls .L85 + ldrb r3, [fp, #-16] @ zero_extendqisi2 + cmp r3, #70 + bhi .L85 + ldrb r3, [fp, #-16] @ zero_extendqisi2 + sub r3, r3, #55 + str r3, [fp, #-20] + b .L81 +.L85: + mvn r3, #0 + str r3, [fp, #-20] +.L81: + ldr r3, [fp, #-20] + mov r0, r3 + sub sp, fp, #12 + ldmfd sp, {fp, sp, pc} + .size bwa2d, .-bwa2d + .align 2 + .global bwa2i + .type bwa2i, %function +bwa2i: + @ args = 0, pretend = 0, frame = 28 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + stmfd sp!, {fp, ip, lr, pc} + sub fp, ip, #4 + sub sp, sp, #28 + str r1, [fp, #-32] + str r2, [fp, #-36] + str r3, [fp, #-40] + mov r3, r0 + strb r3, [fp, #-28] + ldr r3, [fp, #-32] + ldr r3, [r3, #0] + str r3, [fp, #-16] + mov r3, #0 + str r3, [fp, #-24] + b .L90 +.L91: + ldr r2, [fp, #-20] + ldr r3, [fp, #-36] + cmp r2, r3 + bgt .L92 + ldr r2, [fp, #-24] + ldr r3, [fp, #-36] + mul r2, r3, r2 + ldr r3, [fp, #-20] + add r3, r2, r3 + str r3, [fp, #-24] + ldr r3, [fp, #-16] + ldrb r3, [r3, #0] + strb r3, [fp, #-28] + ldr r3, [fp, #-16] + add r3, r3, #1 + str r3, [fp, #-16] +.L90: + ldrb r3, [fp, #-28] @ zero_extendqisi2 + mov r0, r3 + bl bwa2d(PLT) + mov r3, r0 + str r3, [fp, #-20] + ldr r3, [fp, #-20] + cmp r3, #0 + bge .L91 +.L92: + ldr r2, [fp, #-32] + ldr r3, [fp, #-16] + str r3, [r2, #0] + ldr r2, [fp, #-40] + ldr r3, [fp, #-24] + str r3, [r2, #0] + ldrb r3, [fp, #-28] @ zero_extendqisi2 + mov r0, r3 + sub sp, fp, #12 + ldmfd sp, {fp, sp, pc} + .size bwa2i, .-bwa2i + .global __udivsi3 + .global __umodsi3 + .align 2 + .global bwui2a + .type bwui2a, %function +bwui2a: + @ args = 0, pretend = 0, frame = 28 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + stmfd sp!, {fp, ip, lr, pc} + sub fp, ip, #4 + sub sp, sp, #28 + str r0, [fp, #-28] + str r1, [fp, #-32] + str r2, [fp, #-36] + mov r3, #0 + str r3, [fp, #-24] + mov r3, #1 + str r3, [fp, #-16] + b .L96 +.L97: + ldr r3, [fp, #-16] + ldr r2, [fp, #-32] + mul r3, r2, r3 + str r3, [fp, #-16] +.L96: + ldr r0, [fp, #-28] + ldr r1, [fp, #-16] + bl __udivsi3(PLT) + mov r3, r0 + mov r2, r3 + ldr r3, [fp, #-32] + cmp r2, r3 + bcs .L97 + b .L109 +.L100: + ldr r0, [fp, #-28] + ldr r1, [fp, #-16] + bl __udivsi3(PLT) + mov r3, r0 + str r3, [fp, #-20] + ldr r3, [fp, #-28] + mov r0, r3 + ldr r1, [fp, #-16] + bl __umodsi3(PLT) + mov r3, r0 + str r3, [fp, #-28] + ldr r0, [fp, #-16] + ldr r1, [fp, #-32] + bl __udivsi3(PLT) + mov r3, r0 + str r3, [fp, #-16] + ldr r3, [fp, #-24] + cmp r3, #0 + bne .L101 + ldr r3, [fp, #-20] + cmp r3, #0 + bgt .L101 + ldr r3, [fp, #-16] + cmp r3, #0 + bne .L99 +.L101: + ldr r3, [fp, #-20] + cmp r3, #9 + bgt .L104 + mov r1, #48 + str r1, [fp, #-40] + b .L106 +.L104: + mov r3, #87 + str r3, [fp, #-40] +.L106: + ldr r3, [fp, #-20] + and r3, r3, #255 + ldr r1, [fp, #-40] + mov r2, r1 + add r3, r2, r3 + and r3, r3, #255 + and r3, r3, #255 + ldr r2, [fp, #-36] + strb r3, [r2, #0] + ldr r3, [fp, #-36] + add r3, r3, #1 + str r3, [fp, #-36] + ldr r3, [fp, #-24] + add r3, r3, #1 + str r3, [fp, #-24] +.L99: +.L109: + ldr r3, [fp, #-16] + cmp r3, #0 + bne .L100 + ldr r3, [fp, #-36] + mov r2, #0 + strb r2, [r3, #0] + sub sp, fp, #12 + ldmfd sp, {fp, sp, pc} + .size bwui2a, .-bwui2a + .align 2 + .global bwi2a + .type bwi2a, %function +bwi2a: + @ args = 0, pretend = 0, frame = 8 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + stmfd sp!, {fp, ip, lr, pc} + sub fp, ip, #4 + sub sp, sp, #8 + str r0, [fp, #-16] + str r1, [fp, #-20] + ldr r3, [fp, #-16] + cmp r3, #0 + bge .L111 + ldr r3, [fp, #-16] + rsb r3, r3, #0 + str r3, [fp, #-16] + ldr r2, [fp, #-20] + mov r3, #45 + strb r3, [r2, #0] + ldr r3, [fp, #-20] + add r3, r3, #1 + str r3, [fp, #-20] +.L111: + ldr r3, [fp, #-16] + mov r0, r3 + mov r1, #10 + ldr r2, [fp, #-20] + bl bwui2a(PLT) + sub sp, fp, #12 + ldmfd sp, {fp, sp, pc} + .size bwi2a, .-bwi2a + .align 2 + .global bwformat + .type bwformat, %function +bwformat: + @ args = 0, pretend = 0, frame = 40 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + stmfd sp!, {fp, ip, lr, pc} + sub fp, ip, #4 + sub sp, sp, #40 + str r0, [fp, #-36] + str r1, [fp, #-40] + str r2, [fp, #-44] + b .L133 +.L116: + ldrb r3, [fp, #-14] @ zero_extendqisi2 + cmp r3, #37 + beq .L117 + ldrb r3, [fp, #-14] @ zero_extendqisi2 + ldr r0, [fp, #-36] + mov r1, r3 + bl bwputc(PLT) + b .L115 +.L117: + mov r3, #0 + strb r3, [fp, #-13] + mov r3, #0 + str r3, [fp, #-32] + ldr r2, [fp, #-40] + ldrb r3, [r2, #0] + strb r3, [fp, #-14] + add r3, r2, #1 + str r3, [fp, #-40] + ldrb r3, [fp, #-14] @ zero_extendqisi2 + str r3, [fp, #-52] + ldr r3, [fp, #-52] + cmp r3, #48 + beq .L120 + ldr r3, [fp, #-52] + cmp r3, #48 + blt .L119 + ldr r3, [fp, #-52] + cmp r3, #57 + bgt .L119 + b .L121 +.L120: + mov r3, #1 + strb r3, [fp, #-13] + ldr r2, [fp, #-40] + ldrb r3, [r2, #0] + strb r3, [fp, #-14] + add r3, r2, #1 + str r3, [fp, #-40] + b .L119 +.L121: + ldrb r3, [fp, #-14] @ zero_extendqisi2 + sub r2, fp, #40 + sub ip, fp, #32 + mov r0, r3 + mov r1, r2 + mov r2, #10 + mov r3, ip + bl bwa2i(PLT) + mov r3, r0 + strb r3, [fp, #-14] +.L119: + ldrb r3, [fp, #-14] @ zero_extendqisi2 + str r3, [fp, #-48] + ldr r3, [fp, #-48] + cmp r3, #115 + beq .L126 + ldr r3, [fp, #-48] + cmp r3, #115 + bgt .L129 + ldr r3, [fp, #-48] + cmp r3, #99 + beq .L124 + ldr r3, [fp, #-48] + cmp r3, #99 + bgt .L130 + ldr r3, [fp, #-48] + cmp r3, #0 + beq .L132 + ldr r3, [fp, #-48] + cmp r3, #37 + beq .L123 + b .L115 +.L130: + ldr r3, [fp, #-48] + cmp r3, #100 + beq .L125 + b .L115 +.L129: + ldr r3, [fp, #-48] + cmp r3, #117 + beq .L127 + ldr r3, [fp, #-48] + cmp r3, #120 + beq .L128 + b .L115 +.L124: + ldr r3, [fp, #-44] + add r3, r3, #4 + str r3, [fp, #-44] + ldr r3, [fp, #-44] + sub r3, r3, #4 + ldrb r3, [r3, #0] @ zero_extendqisi2 + ldr r0, [fp, #-36] + mov r1, r3 + bl bwputc(PLT) + b .L115 +.L126: + ldr r2, [fp, #-32] + ldr r3, [fp, #-44] + add r3, r3, #4 + str r3, [fp, #-44] + ldr r3, [fp, #-44] + sub r3, r3, #4 + ldr r3, [r3, #0] + ldr r0, [fp, #-36] + mov r1, r2 + mov r2, #0 + bl bwputw(PLT) + b .L115 +.L127: + ldr r3, [fp, #-44] + add r3, r3, #4 + str r3, [fp, #-44] + ldr r3, [fp, #-44] + sub r3, r3, #4 + ldr r3, [r3, #0] + sub r2, fp, #26 + mov r0, r3 + mov r1, #10 + bl bwui2a(PLT) + ldr r3, [fp, #-32] + ldrb r2, [fp, #-13] @ zero_extendqisi2 + sub ip, fp, #26 + ldr r0, [fp, #-36] + mov r1, r3 + mov r3, ip + bl bwputw(PLT) + b .L115 +.L125: + ldr r3, [fp, #-44] + add r3, r3, #4 + str r3, [fp, #-44] + ldr r3, [fp, #-44] + sub r3, r3, #4 + ldr r3, [r3, #0] + sub r2, fp, #26 + mov r0, r3 + mov r1, r2 + bl bwi2a(PLT) + ldr r3, [fp, #-32] + ldrb r2, [fp, #-13] @ zero_extendqisi2 + sub ip, fp, #26 + ldr r0, [fp, #-36] + mov r1, r3 + mov r3, ip + bl bwputw(PLT) + b .L115 +.L128: + ldr r3, [fp, #-44] + add r3, r3, #4 + str r3, [fp, #-44] + ldr r3, [fp, #-44] + sub r3, r3, #4 + ldr r3, [r3, #0] + sub r2, fp, #26 + mov r0, r3 + mov r1, #16 + bl bwui2a(PLT) + ldr r3, [fp, #-32] + ldrb r2, [fp, #-13] @ zero_extendqisi2 + sub ip, fp, #26 + ldr r0, [fp, #-36] + mov r1, r3 + mov r3, ip + bl bwputw(PLT) + b .L115 +.L123: + ldrb r3, [fp, #-14] @ zero_extendqisi2 + ldr r0, [fp, #-36] + mov r1, r3 + bl bwputc(PLT) +.L115: +.L133: + ldr r1, [fp, #-40] + ldrb r3, [r1, #0] + strb r3, [fp, #-14] + ldrb r3, [fp, #-14] @ zero_extendqisi2 + cmp r3, #0 + moveq r3, #0 + movne r3, #1 + and r2, r3, #255 + add r3, r1, #1 + str r3, [fp, #-40] + cmp r2, #0 + bne .L116 +.L132: + sub sp, fp, #12 + ldmfd sp, {fp, sp, pc} + .size bwformat, .-bwformat + .align 2 + .global bwprintf + .type bwprintf, %function +bwprintf: + @ args = 4, pretend = 12, frame = 8 + @ frame_needed = 1, uses_anonymous_args = 1 + mov ip, sp + stmfd sp!, {r1, r2, r3} + stmfd sp!, {fp, ip, lr, pc} + sub fp, ip, #16 + sub sp, sp, #8 + str r0, [fp, #-20] + add r3, fp, #8 + str r3, [fp, #-16] + ldr r0, [fp, #-20] + ldr r1, [fp, #4] + ldr r2, [fp, #-16] + bl bwformat(PLT) + sub sp, fp, #12 + ldmfd sp, {fp, sp, pc} + .size bwprintf, .-bwprintf + .ident "GCC: (GNU) 4.0.2" diff --git a/src/scheduler.c b/src/scheduler.c new file mode 100644 index 0000000..1b389b5 --- /dev/null +++ b/src/scheduler.c @@ -0,0 +1,13 @@ +#include "scheduler.h" + +// int schedulerInit() { +// return 0; +// } // add the IDLE task with lowest priority and first USER task maybe + +// int pushToScheduler (KernelStruct* Colonel, TD* Task) { +// return 0; +// } + +// TD* getNextTaskScheduler (KernelStruct* Colonel) { +// return NULL; +// } diff --git a/src/task-descriptor.c b/src/task-descriptor.c new file mode 100644 index 0000000..43e7042 --- /dev/null +++ b/src/task-descriptor.c @@ -0,0 +1,14 @@ +#include "task-descriptor.h" + + +//void TaskInit(); + +int isTaskAlive(int TaskID) { + return 0; +} + + + + + + -- GitLab