Picproje Elektronik Sitesi

DERLEYİCİLER => Diğer Derleyiciler => IAR => Konuyu başlatan: mistek - 09 Aralık 2014, 20:18:18

Başlık: Derleme aşamasında hafıza bölgesine veri yazma
Gönderen: mistek - 09 Aralık 2014, 20:18:18
Derleyicinin bi önemi yok sanırım ama IAR-Keil kullanıyorum. Dil: C

Programı yazarken derleyiciye diyeceğim ki bu verileri özellikle 0x0001-0x0009 adresleri arasına yaz. (Adresler temsili)

Bunu nasıl yapabilirim?
Başlık: Ynt: Derleme aşamasında hafıza bölgesine veri yazma
Gönderen: Kabil ATICI - 09 Aralık 2014, 20:35:27
8 bitlik işlemcilerde
normalde tablo database ve org ile yapılabilir ama kullandığın derleyicide farklı olabilir.
Başlık: Ynt: Derleme aşamasında hafıza bölgesine veri yazma
Gönderen: mistek - 09 Aralık 2014, 20:46:05
Stm8s kullanıyorum şuan ama taktiği öğrensem Stm32 de de uygulayacağım.
Başlık: Ynt: Derleme aşamasında hafıza bölgesine veri yazma
Gönderen: mir_as82 - 09 Aralık 2014, 20:46:39
Hocam az önce google de aradim. Su link karşıma çıktı
http://www.keil.com/support/docs/2829.htm (http://www.keil.com/support/docs/2829.htm)
Başlık: Ynt: Derleme aşamasında hafıza bölgesine veri yazma
Gönderen: mistek - 09 Aralık 2014, 21:10:02
IAR içinde bu konu çıktı: http://supp.iar.com/Support/?note=36121&from=search+result (http://supp.iar.com/Support/?note=36121&from=search+result)


ilgileneyim bunlarla teşekkürler.



mesaj birleştirme:: 09 Aralık 2014, 21:29:09

IAR için ARM olacak demiş stm8s planım yattı. Konu güncel.
Başlık: Ynt: Derleme aşamasında hafıza bölgesine veri yazma
Gönderen: AsHeS - 10 Aralık 2014, 02:07:14
GCC(IDE CooCox) için anlatayım. Belki benzerdir.
Önce Flash'ta bir bölüm (linker file .ld uzantılı) tanımlayın bu sektöre section atayın.
Örnek

MEMORY
{
rom (rx)  : ORIGIN = 0x08000000, LENGTH = 0x0001FC00
nvm (rx)  : ORIGIN = 0x0801FC00, LENGTH = 0x00000400/*Özel sektörümüz*/
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00005000
}
.
.
.
.NVMSection : {*(.NVMSection)} >nvm/*tanımladığımız section*/


Kodun içerisinde 
const uint8_t      degisken[5] __attribute__((section(".NVMSection")));
tanımlamanız artık belirttiğiniz bölgede.
Başlık: Ynt: Derleme aşamasında hafıza bölgesine veri yazma
Gönderen: mistek - 10 Aralık 2014, 12:26:29
@AsHeS IAR'da linker dosyası .icf uzantılı bir dosyaymış onu buldum ama nereye yazacağımı bulamadım muhtemelen 8 bit işlemcilerde bu olay farklı oluyor.