TI LM 시리즈(?)에서 플래시 EEPROM은 별도로 존재하지 않고
프로그램 영역의 write protect를 해제하고 프로그램이 없는 영역을 임의로
삭제/읽음으로서 EEPROM을 흉내낼수 있다.
읽는 방법은 0x0000 0000 에서 0x0001 FFFF 까지 (lm3s1607 기준 128KB FLASH)
포인터 변수를 이용하거나 직접 번지로 읽으면 된다.
*(0x00000000) 하면 bin 파일의 첫 글자인 0xB0가 보인다.
쓰는건 아직 안해봐서.. 패스?! ㅋㅋ
[링크 :
http://irmus.tistory.com/entry/%EB%82%B4%EC%9E%A5-flash-%EB%A9%94%EB%AA%A8%EB%A6%AC]
[링크 :
http://mycortex.springnote.com/pages/2110058 ]
[링크 :
http://www.withrobot.com/entry/myCortex-LM8962]
---
2012.3.27 추가
char Flash_read(unsigned int *addr, char *data, int len)
{ // addr - sizeof(char) addressing (1 byte width)
memcpy( data, addr, len);
}
char Flash_write(unsigned int *addr, char *data, int len)
{ // addr - sizeof(long) addressing(4 byte width)
FlashErase((unsigned long)addr);
FlashProgram((unsigned long*)data, (unsigned long)addr, len);
}
char Flash_unProtect(unsigned int *addr)
{
return FlashProtectSet((unsigned long)addr, FlashReadWrite);
}
char Flash_Protect(unsigned int *addr)
{
return FlashProtectSet((unsigned long)addr, FlashReadOnly);
}
char Flash_Erase(unsigned int *addr)
{
return FlashErase((unsigned long)addr); // & 0x0000FC00
}