SORU
13 Mart 2012, Salı


Neden genel program genellikle 0x8000 de başlıyor?

Önyükleyici ve sistem SW yeni değilim, ama genel program 0x8000 başlar nedeni kaynağını bilmiyorum. Ben zaten 0x8000 normal C/C program başlangıç adresi olarak kullanılmıştır adresi.

Genel bir program için gaita minimum boyut 0x8000 kadar sürer? Veya sitemlerini 32 KB ayrılması gerektiğini de ROM en az blok boyutu nedir? Ya da başka bir nedeni var mı?

Bunu biliyor, tarihsel ya da mantıksal olarak, sanal bir adresten bakış açısı vermek istiyorum.


Takdir ediyorum, zaman ayırdığınız ve bu konuda yardımcı. Soruyu daha açık hale getirmek için, soru fiziksel ile sanal adres ile ilgili değildir.

Ben temelde fiziksel bellekten R görüşü bakış açısı Adres katılıyorum.

Etmeden belirli bir sistem olan farklı, Örneğin linux (hatta android), genel gerçek zamanlı sistemlerde kullanılan (çekirdek, ve diğerleri, özellikle KOL linker bölüm), hepsi kullanmak 0x8000 adresi olarak başlangıç adresi genel program. gibi crt_begin adında.o, crt.Ey, vb loader ile 0x0 yer alan bu bölgede var.

Bu nedenle genel program için gaita minimum boyutu önyükleme süresi(soğuk önyükleme) BootROM de yer alacağı 32 KB blok boyutu göz önüne alındığında sanırım.

Ummm, Ama emin değilim

CEVAP
13 Mart 2012, Salı


Ama en küçük gömülü sistemler üzerinde genel olarak, platform ABİ tasarımcısı hiç boş işaretçi çözümlemesi yakalanan kullanabileceğiniz ve en düşük adresleri önlemek istiyor. Birkaç KB asla geçerli olan adresleri null işaretçi Dizi veya yapı üyesi, null_ptr->some_member gibi ofset başvuru yapıldı ise bazı ek güvenlik sağlar.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • manadude21

    manadude21

    11 Mart 2008
  • TimMinchinLive

    TimMinchinLi

    23 ŞUBAT 2009
  • TSE

    TSE

    12 Kasım 2012