stm32 RAM in istenen bölgesine dizi tanıma

Başlatan serdararikan, 20 Ekim 2018, 21:55:40

serdararikan

RAM de örneğin 0x20000100 adresinden başlayarak 100 byte lık bir dizi tanımlamak istiyorum.
link

linkte bir örnek buldum denedim ama başarılı olamadım.

magnetron

bu yazdığın adrese bir pointer atayıp yapabilirsin sanırım

serdararikan

dizi şeklinde tanımlamak daha çok işimi görüyor.

kantirici

Alıntı yapılan: magnetron - 20 Ekim 2018, 22:22:18bu yazdığın adrese bir pointer atayıp yapabilirsin sanırım

Bu şekilde kullanım yanlış. Derleyici oraya başka bir değişken yerleştirebilir.

Linker dan orayı ayırmak gerekir. Bu da hangi derleyici kullanıldığına göre değişir. Kullanılan derleyiciyi belirtirse biz ona göre bakalım.

serdararikan



Zoroaster

Keil'de scatter.txt dosyasi var.

Bunun icinde 2. bir ram bolgesi tanimlayacaksin. (Adresini ve uzunlugunu sen belirliyorsun)

C dili bu bolgeye karismayacagindan hic bir sekilde cakisma vs olusmaz.

Fakat buna neden gerek duyuyorsun ki? C de nereye denk gelirse gelsin 100 bytelik dizi olustur.

Bu diziyi kim kullancaksa ona dizi baslangic adresini yolla gitsin. Gerisini pointer ile erisim komutlari halleder zaten.
Seytan deliginden kacti.

OptimusPrime

#7
typedef struct
{
uint8 Data[100];
} ByteStream;

volatile ByteStream* Allocated = (volatile ByteStream*)(0x20000100);

Hayirli olsun :)
https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||

serdararikan

Cevaplarınız için teşekkür ederim.ilk linkteki örnekteki gibi istediğim alanda bir dizi tanımladım.