lpc2368 flash memory yazmak

Başlatan armsistem, 18 Şubat 2013, 19:29:24

armsistem

Arkadaşlar merhaba , lpc23xx flash memory kısmına bir data yazıp daha sonra okumak istiyorum. Bir makalede okudum sistem
konfigrasyon ayarları için data yazılıp okunabileceğinden bahsedilmişti doğrumudur ?

Kodlar aşağıda , satır satır kodların açıklamasını yazdım herhangi bir yanlışlık varsa yardımlarınızı bekliyorum.

- Datayı baştan ram ramden flasha mı kopyalıyor.



http://d1302.hizliresim.com/16/l/k7y1r.png

- ROM3 bir alan tahsis ettim o alana nasıl yazarım.
- Alandan tekrar nasıl okurum.

Not: lpc23xx board bozuldu o yüzden deneyemedim.

#include <lpc23xx.h>

#define IAP_LOCATION 0x7FFFFFF1 // iap adresi bu adresi neden verdiğimizi tam olarak anlayamadım
char Ram_Array[] = "picproje";

unsigned long command[5]; // For Command Table
unsigned long result[2]; // For Result Table
typedef void (*IAP)(unsigned long [], unsigned long []);//1-6
IAP iap_entry;
	
	void Write_to_Flash()
{ 
command[0] = 50; // Prepare sector(s) for a Erase Operation
command[1] = 0;  
command[2] = 0;
iap_entry(command,result);
command[0] = 52;
command[1] = 0;
command[2] = 0;
command[3] = 48000; // PCLK == 48000 KHz
iap_entry(command,result);
command[0] = 50;
command[1] = 0;
command[2] = 0;
iap_entry(command,result);
command[0] = 51;
command[1] = 0x00000000; // kaynak 
command[2] = 0x40000100; // hedef
command[3] = 256; // bayt
command[4] = 48000;// PCLK = 48000 KHz
iap_entry(command,result);
}

	
	
	
	
int main ()
{
unsigned long i;

char *Ram_Pointer;

	
iap_entry = (IAP)IAP_LOCATION;// Set Function Pointer
Ram_Pointer = (char*)0x40000100; // Set pointer to RAM

	for (i=0;i<256;i++)
{ 
	if(i<=7) *Ram_Pointer = Ram_Array[i];
else *Ram_Pointer = '0';
  Ram_Pointer++;
}

Write_to_Flash();
while(1);
}