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?
8 bitlik işlemcilerde
normalde tablo database ve org ile yapılabilir ama kullandığın derleyicide farklı olabilir.
Stm8s kullanıyorum şuan ama taktiği öğrensem Stm32 de de uygulayacağım.
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)
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.
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.
@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.