Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => ARM7 Mikrodenetleyici => Konuyu başlatan: armsistem - 18 Şubat 2013, 19:29:24

Başlık: lpc2368 flash memory yazmak
Gönderen: armsistem - 18 Şubat 2013, 19:29:24
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) (http://bit.ly/c25MCx)

http://d1302.hizliresim.com/16/l/k7y1r.png (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);
}