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]
프로그램 영역의 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 }
'embeded > ARM' 카테고리의 다른 글
H-JTAG 에러이유? (0) | 2012.03.23 |
---|---|
KEIL MDK(ARM)에 H-JTAG 사용하기 (0) | 2012.03.23 |
TI LM3S 시리즈 특징 - hibernate module / non-volatile memory (0) | 2012.03.06 |
arm-linux-gcc 와 arm-elf-gcc의 차이점 (2) | 2012.01.16 |
winARM (0) | 2012.01.12 |