stmf407 : keil C de flash adresini nasıl öğrenebilirim ?

Başlatan GreeN, 01 Mayıs 2012, 13:40:26

GreeN

uint32_t gImage_11[19206] = { ..... gibi bir tablom var. bunun flash'a yazıldığı adresi (ilk verinin yazıldığı adresi) öğrenmem gerek. Yada tabloyu tanımlarken şu adresten itibaren yaz gibi bir tanımlamayı nasıl yaparım.
Terörü Lanetliyoruz.

z

Pointere değişken adresini yüklerken yaptığın gibi arrayin de adresini aynı şekilde öğrenebilirsin.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

GreeN

LCD_WriteBMP(&gImage_11); şeklinde bir fonksiyonum var ,

void LCD_WriteBMP(uint32_t BmpAddress)
{
.....
}

main.c(340): error:  #167: argument of type "uint32_t (*)[19206]" is incompatible with parameter of type "uint32_t"

şeklinde hata veriyor .
Terörü Lanetliyoruz.

z

Fonksiyonda degiskeni yanlis tanimlamissin pointer olarak tanimlamliydin.

Z adindaki array uzerinde asagidaki gibi islem yaptim.

unsigned int Z[10000];

void Fnk(unsigned int* ADR)
{
     Z[0]=*ADR;
}

int main()
{
     Fnk(&Z[1]);
}
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

EMP_Otto

Hocam uint32_t tam olarak ne demek:) uint32 demek unsigned integer 32 bit demekte sondaki t neyin nesi
Bu işler zordur,özveri ister...

fatih6761

Alıntı yapılan: EMP_Otto - 07 Nisan 2013, 00:12:15
Hocam uint32_t tam olarak ne demek:) uint32 demek unsigned integer 32 bit demekte sondaki t neyin nesi
Hocam sondaki t bir C klasiği :) Tür/tip olduğu anlamına geliyor. uint32_t nin asıl tanımı şöyle (stdint.h):
typedef unsigned int      uint32_t;

tabiî derleyiciden derleyiciye İS ten İS e tanım değişebiliyor.
Asıl soruna gelince ARM'larda sanırım memory mapping gibi bir olay vardı, flash'taki adres ile doğrudan erişebiliyordunuz (? emin değilim, ya da bu işi derleyici ayarlıyordu).

X-Fi

Kod içerisinde rom yada ram adreslemek için aşağıdaki tanimlamayi ekliyorsunuz.

__attribute__ ((at(address)))


örnek;

const uint8_t  Array[12]   __attribute__ ((at(0x0800F000))) =	{0x2D,0xD2,0x96,0xE1,0x97,0x0F,0xA5,0xD3,0x78,0xA5,0x2D,0x95};
http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)