Derleme aşamasında hafıza bölgesine veri yazma

Başlatan mistek, 09 Aralık 2014, 20:18:18

mistek

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?
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

Kabil ATICI

8 bitlik işlemcilerde
normalde tablo database ve org ile yapılabilir ama kullandığın derleyicide farklı olabilir.
ambar7

mistek

#2
Stm8s kullanıyorum şuan ama taktiği öğrensem Stm32 de de uygulayacağım.
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

mir_as82


mistek

#4
IAR içinde bu konu çıktı: 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.
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

AsHeS

#5
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.

mistek

@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.

boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R