Skip to content
Snippets Groups Projects
Commit 927b2edd authored by aht2nguy's avatar aht2nguy
Browse files

indentation fixed + Ans script

parent cfc8d771
No related branches found
No related tags found
1 merge request!16Withtime
src/an 0 → 100755
#! /bin/bash
cp main.elf /u/cs452/tftp/ARM/temp/
Archive member included because of file (symbol)
../../lib/libbwio.a(bwio.o) main.o (bwprintf)
../../lib/libbwio.a(bwio.o) main.o (bwputr)
/u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a(_udivsi3.o)
../../lib/libbwio.a(bwio.o) (__udivsi3)
/u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a(_umodsi3.o)
......@@ -28,46 +28,40 @@ bss 0x0000000000000000 0x0
*(.bss)
0x0000000000000000 _BssEnd = .
text 0x0000000000000000 0xff8
text 0x0000000000000000 0xe58
*(.text)
.text 0x0000000000000000 0x15c main.o
0x0000000000000000 test
0x00000000000000f4 main
.text 0x000000000000015c 0xc54 ../../lib/libbwio.a(bwio.o)
0x00000000000004d4 bwputr
0x0000000000000a40 bwi2a
0x000000000000015c bwsetfifo
0x0000000000000330 bwputc
0x0000000000000790 bwa2d
0x0000000000000224 bwsetspeed
0x00000000000003f4 c2x
0x0000000000000838 bwa2i
0x00000000000006d8 bwgetc
0x00000000000008fc bwui2a
0x0000000000000aa4 bwformat
0x00000000000005d0 bwputw
0x0000000000000d78 bwprintf
0x0000000000000454 bwputx
0x0000000000000554 bwputstr
.text 0x0000000000000db0 0x110 /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a(_udivsi3.o)
0x0000000000000db0 __udivsi3
0x0000000000000ea8 __aeabi_uidivmod
.text 0x0000000000000ec0 0xcc /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a(_umodsi3.o)
0x0000000000000ec0 __umodsi3
.text 0x0000000000000f8c 0x4 /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a(_dvmd_tls.o)
0x0000000000000f8c __aeabi_ldiv0
0x0000000000000f8c __div0
0x0000000000000f8c __aeabi_idiv0
.text 0x0000000000000000 0x24 main.o
0x0000000000000000 main
.text 0x0000000000000024 0xc54 ../../lib/libbwio.a(bwio.o)
0x000000000000039c bwputr
0x0000000000000908 bwi2a
0x0000000000000024 bwsetfifo
0x00000000000001f8 bwputc
0x0000000000000658 bwa2d
0x00000000000000ec bwsetspeed
0x00000000000002bc c2x
0x0000000000000700 bwa2i
0x00000000000005a0 bwgetc
0x00000000000007c4 bwui2a
0x000000000000096c bwformat
0x0000000000000498 bwputw
0x0000000000000c40 bwprintf
0x000000000000031c bwputx
0x000000000000041c bwputstr
.text 0x0000000000000c78 0x110 /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a(_udivsi3.o)
0x0000000000000c78 __udivsi3
0x0000000000000d70 __aeabi_uidivmod
.text 0x0000000000000d88 0xcc /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a(_umodsi3.o)
0x0000000000000d88 __umodsi3
.text 0x0000000000000e54 0x4 /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a(_dvmd_tls.o)
0x0000000000000e54 __aeabi_ldiv0
0x0000000000000e54 __div0
0x0000000000000e54 __aeabi_idiv0
*(.got)
*(.got.plt)
.got.plt 0x0000000000000f90 0xc main.o
0x0000000000000f90 _GLOBAL_OFFSET_TABLE_
*(.rodata)
.rodata 0x0000000000000f9c 0x5c main.o
*(.glue_7)
*(.glue_7t)
.rel.dyn
LOAD main.o
LOAD ../../lib/libbwio.a
LOAD /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a
......
#include <types.h>
#include <bwio.h>
/*
void test(TD* T){
asm volatile(//"mov r0, #0\n\t"
"mov r1, #11\n\t"
......@@ -34,8 +34,9 @@ void test(TD* T){
bwprintf(COM2,"sp:%d, lr:%d, spsr:%d, retval:%d, args:%d\n\r",T->sp,T->lr,T->spsr,T->RetVal,T->Args);
bwprintf(COM2,"r4:%d, r5:%d, r6:%d, r7:%d, r8:%d\n\r",four,five,six,seven,eight);
}
*/
int main(){
/*
//TD T;
//T.sp = 0x1e000000;
//T.lr = 222;
......@@ -57,5 +58,6 @@ int main(){
register int r3 asm("r3");
int three = r3;
bwprintf(COM2,"r3: %d\n\r",three);
return 0;
*/
return 0;
}
No preview for this file type
No preview for this file type
.file "main.c"
.section .rodata
.align 2
.LC0:
.ascii "sp:%d, lr:%d, spsr:%d, retval:%d, args:%d\012\015\000"
.align 2
.LC1:
.ascii "r4:%d, r5:%d, r6:%d, r7:%d, r8:%d\012\015\000"
.text
.align 2
.global test
.type test, %function
test:
@ args = 0, pretend = 0, frame = 28
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, r6, r7, r8, sl, fp, ip, lr, pc}
sub fp, ip, #4
sub sp, sp, #40
ldr sl, .L4
.L3:
add sl, pc, sl
str r0, [fp, #-64]
mov r1, #11
mov r2, #22
mov r3, #33
mov r4, #44
mov r5, #55
add r0, r0,#20
stmfd r0!, {r1-r5}
ldmfd r0!,{r4}
ldmfd r0!,{r5-r8}
str r4, [fp, #-60]
ldr r3, [fp, #-64]
str r3, [fp, #-56]
str r5, [fp, #-52]
str r6, [fp, #-48]
str r7, [fp, #-44]
str r8, [fp, #-40]
ldr r3, [fp, #-64]
ldr ip, [r3, #0]
ldr r3, [fp, #-64]
ldr lr, [r3, #4]
ldr r3, [fp, #-64]
ldr r2, [r3, #8]
ldr r3, [fp, #-64]
ldr r1, [r3, #12]
ldr r3, [fp, #-64]
ldr r3, [r3, #16]
str r2, [sp, #0]
str r1, [sp, #4]
str r3, [sp, #8]
mov r0, #1
ldr r3, .L4+4
add r3, sl, r3
mov r1, r3
mov r2, ip
mov r3, lr
bl bwprintf(PLT)
ldr r3, [fp, #-48]
str r3, [sp, #0]
ldr r3, [fp, #-44]
str r3, [sp, #4]
ldr r3, [fp, #-40]
str r3, [sp, #8]
mov r0, #1
ldr r3, .L4+8
add r3, sl, r3
mov r1, r3
ldr r2, [fp, #-60]
ldr r3, [fp, #-52]
bl bwprintf(PLT)
sub sp, fp, #36
ldmfd sp, {r4, r5, r6, r7, r8, sl, fp, sp, pc}
.L5:
.align 2
.L4:
.word _GLOBAL_OFFSET_TABLE_-(.L3+8)
.word .LC0(GOTOFF)
.word .LC1(GOTOFF)
.size test, .-test
.section .rodata
.align 2
.LC2:
.ascii "r3: %d\012\015\000"
.text
.align 2
.global main
.type main, %function
main:
@ args = 0, pretend = 0, frame = 4
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
stmfd sp!, {sl, fp, ip, lr, pc}
stmfd sp!, {fp, ip, lr, pc}
sub fp, ip, #4
sub sp, sp, #4
ldr sl, .L9
.L8:
add sl, pc, sl
mov r0, #10
mov r1, #11
mov r2, #22
mov r3, #33
mov r4, #44
mov r5, #55
stmfd sp!, {r0-r5}
ldmfd sp!, {r3}
str r3, [fp, #-20]
mov r0, #1
ldr r3, .L9+4
add r3, sl, r3
mov r1, r3
ldr r2, [fp, #-20]
bl bwprintf(PLT)
mov r3, #0
mov r0, r3
ldmfd sp, {r3, sl, fp, sp, pc}
.L10:
.align 2
.L9:
.word _GLOBAL_OFFSET_TABLE_-(.L8+8)
.word .LC2(GOTOFF)
mov r0, #1
mov r1, #5
bl bwputr(PLT)
ldmfd sp, {fp, sp, pc}
.size main, .-main
.ident "GCC: (GNU) 4.0.2"
......@@ -14,39 +14,41 @@
int main()
{
KernelStruct Colonel;
int i, Status, req;
TD* Next;
//int* kernelEntry = (int *)(0x28);
//*kernelEntry = (int)&kerent;
InitSwi();
//SetUpRegs();
//kerent();
kernelInit(&Colonel);
//schedulerInit();
// First User Task
TD* FirstUserTask= CreateTask(&Colonel, Prio4, (void *) (&firstUserTaskChildren));
//bwprintf(COM2,"main function ptr: %d\n\r",(&firstUserTaskChildren));
pushToScheduler(&Colonel, FirstUserTask);
TD* Task;
int ReturnValue = 0;
FOREVER {
if(Colonel.Active == NULL){
ReturnValue = 0;
Task = getNextTaskScheduler(&Colonel);
}else{
Task = Colonel.Active;
ReturnValue = Task->RetVal;
}
//bwprintf(COM2,"Kernel Loop Task = %d\n\r",Task);
if(Task == NULL) break;
req = Activate(&Colonel,Task);
//register int r0 asm("r0");
//req = r0;
//bwprintf(COM2,"req= %d\n\r",req);
Handle(&Colonel, req);
}
return 0;
KernelStruct Colonel;
int i, Status, req;
TD* Next;
InitSwi();
kernelInit(&Colonel);
// First User Task
// bwprintf(COM2, "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n\r");
// bwprintf(COM2, "main: before calling create first task \n\r");
TD* FirstUserTask= CreateTask(&Colonel, Prio4, (void *) (&firstUserTaskChildren));
// bwprintf(COM2,"main function ptr: %d\n\r",(&firstUserTaskChildren));
pushToScheduler(&Colonel, FirstUserTask);
TD* Task;
int ReturnValue = 0;
FOREVER {
if(Colonel.Active == NULL){
// bwprintf(COM2, "main: Active == NULL\n\r");
ReturnValue = 0;
Task = getNextTaskScheduler(&Colonel);
}
else{
// bwprintf(COM2, "main: Active not NULL\n\r");
Task = Colonel.Active;
ReturnValue = Task->RetVal;
}
if(Task == NULL) break;
bwprintf(COM2,"main: Active->Priority: %d\n\r", Task->TaskPriority);
req = Activate(&Colonel,Task);
// bwprintf(COM2,"main: after Activates finished req= %d\n\r",req);
// bwprintf(COM2,"main: before Handle\n\r");
Handle(&Colonel, req);
// bwprintf(COM2, "main: done with one loop\n\r");
// bwprintf(COM2,"==================================================================\n\r");
}
return 0;
}
File added
File added
.file "main.c"
.section .rodata
.align 2
.LC0:
.ascii "main: Active->Priority: %d\012\015\000"
.text
.align 2
.global main
.type main, %function
main:
@ args = 0, pretend = 0, frame = 2780
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
stmfd sp!, {sl, fp, ip, lr, pc}
sub fp, ip, #4
sub sp, sp, #2768
sub sp, sp, #12
ldr sl, .L10
.L9:
add sl, pc, sl
bl InitSwi(PLT)
sub r3, fp, #2784
sub r3, r3, #12
mov r0, r3
bl kernelInit(PLT)
sub r3, fp, #2784
sub r3, r3, #12
mov r0, r3
mov r1, #4
ldr r3, .L10+4
ldr r3, [sl, r3]
mov r2, r3
bl CreateTask(PLT)
mov r3, r0
str r3, [fp, #-28]
sub r3, fp, #2784
sub r3, r3, #12
mov r0, r3
ldr r1, [fp, #-28]
bl pushToScheduler(PLT)
mov r3, #0
str r3, [fp, #-20]
.L2:
ldr r3, [fp, #-2796]
cmp r3, #0
bne .L3
mov r3, #0
str r3, [fp, #-20]
sub r3, fp, #2784
sub r3, r3, #12
mov r0, r3
bl getNextTaskScheduler(PLT)
mov r3, r0
str r3, [fp, #-24]
b .L5
.L3:
ldr r3, [fp, #-2796]
str r3, [fp, #-24]
ldr r3, [fp, #-24]
ldr r3, [r3, #12]
str r3, [fp, #-20]
.L5:
ldr r3, [fp, #-24]
cmp r3, #0
beq .L6
ldr r3, [fp, #-24]
ldr r2, [r3, #32]
mov r0, #1
ldr r3, .L10+8
add r3, sl, r3
mov r1, r3
bl bwprintf(PLT)
sub r3, fp, #2784
sub r3, r3, #12
mov r0, r3
ldr r1, [fp, #-24]
bl Activate(PLT)
mov r3, r0
str r3, [fp, #-36]
sub r3, fp, #2784
sub r3, r3, #12
mov r0, r3
ldr r1, [fp, #-36]
bl Handle(PLT)
b .L2
.L6:
mov r3, #0
mov r0, r3
sub sp, fp, #16
ldmfd sp, {sl, fp, sp, pc}
.L11:
.align 2
.L10:
.word _GLOBAL_OFFSET_TABLE_-(.L9+8)
.word firstUserTaskChildren(GOT)
.word .LC0(GOTOFF)
.size main, .-main
.ident "GCC: (GNU) 4.0.2"
K.Active(0)->T0(Create(someFunc))->SWI->K.Active(return 0)->K.Handle(0)->handelCreate()->Activate(T0)->(probably kerxit)
\ No newline at end of file
K.Active(0)->T0(Create(someFunc))->SWI->K.Active(return 0)->K.Handle(0)->handelCreate()->Activate(T0)->(probably kerxit)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment