mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-08 18:26:48 +00:00
🎨 将初始化8259A的代码移动到driver文件夹
This commit is contained in:
parent
d06b418642
commit
d5eb9e8a27
@ -16,8 +16,9 @@ all: kernel
|
||||
|
||||
|
||||
kernel: head.o entry.o main.o printk.o trap.o mm.o irq.o 8259A.o process.o syscall.o multiboot2.o cpu.o
|
||||
ld -b elf64-x86-64 -z muldefs -o kernel head.o exception/entry.o main.o common/printk.o exception/trap.o exception/irq.o exception/8259A.o mm/mm.o process/process.o syscall/syscall.o driver/multiboot2/multiboot2.o \
|
||||
ld -b elf64-x86-64 -z muldefs -o kernel head.o exception/entry.o main.o common/printk.o exception/trap.o exception/irq.o mm/mm.o process/process.o syscall/syscall.o driver/multiboot2/multiboot2.o \
|
||||
common/cpu.o \
|
||||
driver/interrupt/8259A/8259A.o \
|
||||
-T link.lds
|
||||
|
||||
head.o: head.S
|
||||
@ -46,8 +47,7 @@ trap.o: exception/trap.c
|
||||
irq.o: exception/irq.c
|
||||
gcc $(CFLAGS) -c exception/irq.c -o exception/irq.o
|
||||
|
||||
8259A.o: exception/8259A.c
|
||||
gcc $(CFLAGS) -c exception/8259A.c -o exception/8259A.o
|
||||
|
||||
|
||||
mm.o: mm/mm.c
|
||||
gcc $(CFLAGS) -c mm/mm.c -o mm/mm.o
|
||||
@ -63,5 +63,9 @@ multiboot2.o: driver/multiboot2/multiboot2.c
|
||||
cpu.o: common/cpu.c
|
||||
gcc $(CFLAGS) -c common/cpu.c -o common/cpu.o
|
||||
|
||||
|
||||
# 驱动程序
|
||||
8259A.o: driver/interrupt/8259A/8259A.c
|
||||
gcc $(CFLAGS) -c driver/interrupt/8259A/8259A.c -o driver/interrupt/8259A/8259A.o
|
||||
clean:
|
||||
rm -rf $(GARBAGE)
|
@ -1,13 +1,14 @@
|
||||
#include "8259A.h"
|
||||
#include "irq.c"
|
||||
#include "../common/printk.h"
|
||||
#include "../common/kprint.h"
|
||||
#include "../../../common/printk.h"
|
||||
#include "../../../common/kprint.h"
|
||||
|
||||
extern void (*interrupt_table[24])(void);
|
||||
|
||||
void init_8259A()
|
||||
{
|
||||
// 初始化中断门, 中断使用第二个ist
|
||||
for(int i=32;i<=55;++i)
|
||||
set_intr_gate(i, 2, interrupt[i-32]);
|
||||
set_intr_gate(i, 2, interrupt_table[i-32]);
|
||||
kinfo("Initializing 8259A...");
|
||||
|
||||
// 初始化主芯片
|
@ -11,7 +11,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "../common/glib.h"
|
||||
#include "../../../common/glib.h"
|
||||
|
||||
#define PIC_EOI 0x20
|
||||
#define PIC_master 0x20 /* IO base address for master PIC */
|
@ -1,5 +1,5 @@
|
||||
#include "irq.h"
|
||||
#include "8259A.h"
|
||||
#include "../driver/interrupt/8259A/8259A.h"
|
||||
#include "../common/asm.h"
|
||||
#include"../common/printk.h"
|
||||
#include "gate.h"
|
||||
@ -80,7 +80,7 @@ Build_IRQ(0x36)
|
||||
Build_IRQ(0x37)
|
||||
|
||||
// 初始化中断数组
|
||||
void (*interrupt[24])(void)=
|
||||
void (*interrupt_table[24])(void)=
|
||||
{
|
||||
IRQ0x20interrupt,
|
||||
IRQ0x21interrupt,
|
||||
|
Loading…
x
Reference in New Issue
Block a user