0

私は Atom-32bit-intel で作業しており、MicroC OS II を移植する必要があるため、Atom で構成を行うコードはありません (GDT も LDT もありません...):

私の質問は、リセット後の Atom-32bit の状態についての詳細です。Atom は保護モードですか? 最も重要なのは、どのモードであるかを確認する方法です(どのレジスタをどのように確認する必要がありますか)?

備考: CR0.PE = 1 (私はそれをチェックしました) は、Atom がプロテクト モードであることを証明するのに十分ですか?

* ** * ** * ** * **アップデート :** * ** * ** * ** * ** * **

    /*Read the IDTR*/
    sidt (idt_ptr)

    /*Read the GDTR*/
    sgdt (gdt_ptr)

そこで、IDT のアドレスを使用して ISR を IDT にリンクしようとしました。

fill_interrupt(ISR_Nbr,(unsigned int) isr33, 0x08, 0x8E);

static void fill_interrupt(unsigned char num, unsigned int base, unsigned short sel, unsigned char flags)
{
    unsigned short *Interrupt_Address;

    /*address = idt_ptr.base + num * 8 byte*/
    Interrupt_Address = (unsigned short *)(idt_ptr.base + num*8);

    *(Interrupt_Address) = base&0xFFFF;
    *(Interrupt_Address+1) = sel;
    *(Interrupt_Address+1) = (flags>>8)&0xFF00;
    *(Interrupt_Address+1) = (base>>16)&0xFFFF;

}

私のISRは実装されています:

isr33:
nop
nop
cli
push %ebp   //save the context to swith back
mov %esp,%ebp




pop %ebp //Return to the calling function
sti
ret
4

3 に答える 3

2

Intel Software Developer's Manualのボリューム 3 の第 9 章には、 のリセット値は であると記載されていCR0ます60000010H。ご覧のとおり、ビット 0、別名 PE はクリアです。

いずれにせよ、保護モードでもリアル モードでも記述子テーブルをセットアップできます。あなたはそれについてもっと注意する必要があります。


読む前に、BIOS または OS がこのビットを設定しているかどうかを確認することをお勧めします。

于 2011-10-04T20:28:44.627 に答える
1

Atom は x86 命令セットであるため、互換性のためにリアル モードで起動する必要があります。ただし、テストする手元にはありません。

于 2011-10-04T20:30:57.877 に答える
0

解決済み、私は N450 Atom ボードを使用しています。これには既に BIOS があり、BIOS はボードを保護モードで構成します。

于 2011-11-14T15:27:05.233 に答える