mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-12 22:36:47 +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
|
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 \
|
common/cpu.o \
|
||||||
|
driver/interrupt/8259A/8259A.o \
|
||||||
-T link.lds
|
-T link.lds
|
||||||
|
|
||||||
head.o: head.S
|
head.o: head.S
|
||||||
@ -46,8 +47,7 @@ trap.o: exception/trap.c
|
|||||||
irq.o: exception/irq.c
|
irq.o: exception/irq.c
|
||||||
gcc $(CFLAGS) -c exception/irq.c -o exception/irq.o
|
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
|
mm.o: mm/mm.c
|
||||||
gcc $(CFLAGS) -c mm/mm.c -o mm/mm.o
|
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
|
cpu.o: common/cpu.c
|
||||||
gcc $(CFLAGS) -c common/cpu.c -o common/cpu.o
|
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:
|
clean:
|
||||||
rm -rf $(GARBAGE)
|
rm -rf $(GARBAGE)
|
@ -1,13 +1,14 @@
|
|||||||
#include "8259A.h"
|
#include "8259A.h"
|
||||||
#include "irq.c"
|
#include "../../../common/printk.h"
|
||||||
#include "../common/printk.h"
|
#include "../../../common/kprint.h"
|
||||||
#include "../common/kprint.h"
|
|
||||||
|
extern void (*interrupt_table[24])(void);
|
||||||
|
|
||||||
void init_8259A()
|
void init_8259A()
|
||||||
{
|
{
|
||||||
// 初始化中断门, 中断使用第二个ist
|
// 初始化中断门, 中断使用第二个ist
|
||||||
for(int i=32;i<=55;++i)
|
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...");
|
kinfo("Initializing 8259A...");
|
||||||
|
|
||||||
// 初始化主芯片
|
// 初始化主芯片
|
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "../common/glib.h"
|
#include "../../../common/glib.h"
|
||||||
|
|
||||||
#define PIC_EOI 0x20
|
#define PIC_EOI 0x20
|
||||||
#define PIC_master 0x20 /* IO base address for master PIC */
|
#define PIC_master 0x20 /* IO base address for master PIC */
|
@ -1,5 +1,5 @@
|
|||||||
#include "irq.h"
|
#include "irq.h"
|
||||||
#include "8259A.h"
|
#include "../driver/interrupt/8259A/8259A.h"
|
||||||
#include "../common/asm.h"
|
#include "../common/asm.h"
|
||||||
#include"../common/printk.h"
|
#include"../common/printk.h"
|
||||||
#include "gate.h"
|
#include "gate.h"
|
||||||
@ -80,7 +80,7 @@ Build_IRQ(0x36)
|
|||||||
Build_IRQ(0x37)
|
Build_IRQ(0x37)
|
||||||
|
|
||||||
// 初始化中断数组
|
// 初始化中断数组
|
||||||
void (*interrupt[24])(void)=
|
void (*interrupt_table[24])(void)=
|
||||||
{
|
{
|
||||||
IRQ0x20interrupt,
|
IRQ0x20interrupt,
|
||||||
IRQ0x21interrupt,
|
IRQ0x21interrupt,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user