Up to [local] / funnyos / arch / testarm / boot
Request diff between arbitrary revisions
Default branch: MAIN
Current tag: MAIN
Revision 1.5 / (download) - annotate - [select for diffs], Fri Nov 23 13:37:42 2007 UTC (16 years, 10 months ago) by nbrk
Branch: MAIN
CVS Tags: HEAD
Changes since 1.4: +9 -1 lines
Diff to previous 1.4 (colored)
basic roundrobin multitasking support in FunnyOS! _vector_irq saves Sys_mode context (which is treated as struct pcb) in stack and passes sp to irq_trampoline() which then sets global iframep pointer to point to pcb of interrupted task. "task" given by u_task (set by user at compile-time) and k_task which is dynamically allocated by the kernel. scheduler uses list of k_task (circularly linked list) with one constant task "idle". idle discarded in sched_init() with status TASK_NOSCHED and will not be scheduled after first sched_tick(). tasks created in task/ directory and should implement void ttt_enter(void) to start execution from. tasks added by inserting new elements in config_tasklist[]. please note that current *ugly* design causes strange behavior if tasks printf something w/out delays.. also, we do not save task's CPSR yet..
Revision 1.4 / (download) - annotate - [select for diffs], Mon Nov 5 18:54:35 2007 UTC (16 years, 10 months ago) by init
Branch: MAIN
Changes since 1.3: +9 -5 lines
Diff to previous 1.3 (colored)
in _vector_irq store r0-r12 and r14 (lr) registers into an irq stack; this prevents System Mode (and whatever-mode) registers from crush while we are in IRQ_mode - use ldmia sp!, {r0-r12, pc}^ to restore all registers and to copy spsr into cpsr ATOMICALLY, This fixes interesting bug when we end up in IRQ_mode after we've changed CPU mode back to Sys.. With this diff i can finally see messages from rtc driver every time it interrupts IRQC.
Revision 1.3 / (download) - annotate - [select for diffs], Sun Nov 4 22:39:27 2007 UTC (16 years, 10 months ago) by init
Branch: MAIN
Changes since 1.2: +32 -8 lines
Diff to previous 1.2 (colored)
set stack for an IRQ_mode on reset
Revision 1.2 / (download) - annotate - [select for diffs], Mon Oct 29 20:34:23 2007 UTC (16 years, 10 months ago) by init
Branch: MAIN
Changes since 1.1: +2 -3 lines
Diff to previous 1.1 (colored)
jump to irq_trampoline on ARM IRQ (0x00000018); when an irq device is attached to system, it registers its xxx_irq to jump into from irq_trampoline().
Revision 1.1 / (download) - annotate - [select for diffs], Tue Oct 16 08:41:04 2007 UTC (16 years, 11 months ago) by init
Branch: MAIN
Initial revision