質問

以下の例では、質問され、最後のテストコンピュータ工学コースです。誰もが心を説明することができなかったため、開始と終了アドレスは?私の回答は、下...

のMSP430F2410装置のアドレス空間の64KBのMSP430建築)。記入下さい。最初の16バイトのアドレス空間の開始アドレス宛に0x0000)のための特別機能のレジスタ(IE1、IE2,IFG1,IFG2等)、 次240バイトは8ビット周辺機器に256バイトは、16ビット周辺機器です。のRAMメモリ容量は2バイト単位で指定で始まるアドレスの0x1100.上部のアドレス空間は56KBのフラッシュメモリに保コードおよび割り込みベクタを指定しています。

What                            Start Address End Address
Special Function Registers (16 bytes) 0x0000 0x000F
8-bit peripheral devices (240 bytes)  0x0010 0x00FF
16-bit peripheral devices (256 bytes) 0x0100 0x01FF
RAM memory (2 Kbytes)                 0x1100 0x18FF
Flash Memory (56 Kbytes)              0x2000  0xFFFF
役に立ちましたか?

解決

楽しんでお得にスローされるように保存され、各セグメントこれは当たり前のことを混乱させます。その問題点だけでいいの六角レンチナンバリング、そんなに難しいものなのです。この要件:

  • 64KBの総メモリ
  • 最初に 16バイト アドレス空間の開始アドレス宛に0x0000)のための特別機能のレジスタ(IE1、IE2,IFG1,IFG2等)
  • 次の 240バイト は8ビット周辺機器
  • 次の 256バイト は16ビット周辺機器
  • のRAMメモリの容量が 2Kb で始まるアドレスの0x1100
  • 上部のアドレス空間は 56KB フラッシュメモリ用コードの割り込みベクタを指定しています。

それぞれの六角レンチ桁の記憶のアドレスに対応でき16値(0-F)する必要がありま4桁表示64KBのメモリ(16^4=65536、64K).

開発プロジェクト16バイトがカバー0x0000-0x000F(桁のアドレス)その次のセグメント開始直後(8ビットデバイス)を開始0x0010(次のバイト)なので、240バイト長で、まるで終わりがないようなのでバイト256(240+16)、0x00FF.

次のセグメント(16ビットデバイス)を起動し、次のバイトは、0x0100、256バイト長したときに終了0x01FF.

そして2KB(2048バイトのRAMが開始0x1100の説明状態ではなく、直後に以前のセグメントので、その開始アドレスです。追加2048ること、ま0x18FF.

最後のセグメントの上部のメモリがありますので,そこでしっかり働いて、簡潔に分かる時0xFFFFのもとで利用するメモリ)で56KBます。場合に変換し56KBを六角レンチで0xDFFF.想像すれば、このセグメントが0から始まる紅葉2000年未使用(0xE000-0xEFFFと0xF000-0xFFFF)ので、お知らこのセグメント開始0x2000終了ン上位のメモリ空間です。

皆様のより明確なものの、時を読んでわからないので、他の慈善団体に寄付してもよいで:(その影響かたを教えるコンセプト人以...

他のヒント

#define NUM_SIZES 5
uint16_t sizes[5] = {16, 240, 256, 2 * 1024, 56 * 1024};
uint16_t address = 0;
printf("Start   End\n");
for (int i = 0; i < NUM_SIZES; i++)
{
    printf("0x%04X 0x%04X\n", address, address + sizes[i] - 1);
    address += sizes[i];
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top