Bellekte belirli adreslerden başlayan (sanal, fiziksel DDR bellek değil) yapı dizisinin nasıl başlatılacağı konusunda bir fikriniz var mı? SoC'de (ARM-FPGA) TxRx'in uygulanması üzerinde çalışıyorum. Temel olarak ARM (PS) ve FPGA (PL), paylaşılan RAM belleğini kullanarak birbirleriyle iletişim kurar. Şu anda verici tarafında çalışıyorum, bu yüzden MAC katmanından belleğe aldığım paketleri sürekli olarak yüklemem gerekiyor, sonra Tx veri okuyor ve havaya gönderiyor. Bunu başarmak için (ARM) tarafındaki dairesel FIFO arabelleğini uygulamak istiyorum. Bu sayede 6 pakete kadar arabellek depolayabiliyor ve tek tek gönderebiliyordum, aynı zamanda paketlerin bulunduğu yerlere diğer paketleri de yükleyebiliyordum. Belirli bellek adreslerini kullanmam gerektiğinden, ilgilenen belirli adreslerde belleğe kaydedilecek yapı dizisini başlatmak mümkün. Örneğin, dizimin 0x400000 adresinde başladığını ve 0x400000 + MaximumNumberOfPackets x SizeOfPackets adresinde bittiğini istiyorum. Bunun gibi bir yapı örneği için nasıl yapılacağını biliyorum: buffer_t * tmp = (struct buffer_t *) 234881024;Bellekte belirli bir adresten başlayan diziyi başlat - C programlama
Ancak bu yapı dizisi için nasıl yapılır?
sizin derleyici ve İşletim Sistemi (eğer varsa) nedir içine bu ayarlayın: Ben bağlayıcı komut dosyası içine bu set? –
Merhaba, bu ARM gcc derleyicisi – elem
Might yardım: http://stackoverflow.com/questions/4067811/how-to-place-a-variable-at-a-given-absolute-address-in-memory-with- gcc –