LPC1788 IAP Problem

May 23, 2015 1 Replies

I'm working on LPC1788, trying to use In Application Programming, and in one project where I implemented this code:


#define IAP_BASE1 0x00030000 #define IAP_BASE2 0x00038000 #define IAP_BASE3 0x00040000



int main(void) {



BYTE podatak1, podatak2, podatak3; DWORD *pointer_podatak1, *pointer_podatak2, *pointer_podatak3; uart0();



NVIC_DisableIRQ(TIMER0_IRQn); NVIC_DisableIRQ(TIMER1_IRQn); NVIC_DisableIRQ(UART0_IRQn);



podatak1 = 0x33; podatak2 = 0x63; podatak3 = 0x84;



iap_copy_to_flash(&podatak1, IAP_BASE1, 1); delay_1_ms(); iap_copy_to_flash(&podatak2, IAP_BASE2, 1); delay_1_ms(); iap_copy_to_flash(&podatak3, IAP_BASE3, 1); delay_1_ms();



pointer_podatak1 = (DWORD*) IAP_BASE1; pointer_podatak2 = (DWORD*) IAP_BASE2; pointer_podatak3 = (DWORD*) IAP_BASE3;



LPC_UART0->THR = *pointer_podatak1; delay_1_ms(); LPC_UART0->THR = *pointer_podatak2; delay_1_ms(); LPC_UART0->THR = *pointer_podatak3; delay_1_ms();



while(1) { }



}

It works perfectly, but when I try to utilize it in my main project, I've got nothing written on flash memory locations I indicated. Here is the code in my main project to read and write from flash:


#define OFFSET_ADDRESS 0x00030000 #define OFFSET_VERSION 0x00038000 #define OFFSET_SERIAL 0x00040000



void write_to_flash (void) { BYTE i; DWORD *pointer_podatak1, *pointer_podatak2, *pointer_podatak3;



iap_copy_to_flash(&display_address, OFFSET_ADDRESS, 1); delay_1_ms();



iap_copy_to_flash(&version, OFFSET_VERSION, 1); delay_1_ms();



for (i=0;i MAX_OUTDOOR_DISPLAY_ADDRESS) || (display_address < MIN_OUTDOOR_DISPLAY_ADDRESS)) display_address = UNI_ADDRESS;


pok_ver = (DWORD*)OFFSET_VERSION; version = *pok_ver; delay_1_ms(); if (version > MAX_FW_VERSION) version = 0;



for (i=0;i


I've not used this particular part, however:

- you say "works perfectly", but you do not check the return codes from write operation?

- did you previously "prepare" and "erase" the sectors? See page 896 in the manual you linked...

Hope that helps! Best Regards, Dave

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required