티스토리 뷰

프로젝트/ISP

ISP - Flash memory write

Just4Fun 2016. 8. 28. 09:37

Flash 메모리 프로그램의 첫번째 단계는 'Erase'라고 bootloader 프로젝트에서 이미 언급하였다.

Bootloader 프로그램은 Self-programming 방법이므로 page 단위로 erase를 하였으나, ISP에서는 page 단위의 erase 명령어가 없고, chip erase만 제공한다.

따라서 ISP 프로젝트에서는 항상 chip erase만 사용하게 된다.


ISP 에서도 bootloader와 마찬가지로 일단 page buffer에 데이터를 쓴다음, page buffer 단위로 flash 메모리로 한꺼번에 덤프하도록 되어 있다.  차이점이라면 bootloader 같은 경우에는 boot_page_write() 함수 하나를 사용하여 16비트 값의 High byte와 Low byte를 모두 쓸수 있었으나, ISP의 경우 이 두가지 데이터에 대한 write 명령이 구분되어 있다.


위의 코드를 적용하여 실제 target CPU로 프로그램이 잘 되는지 확인해 보도록 하겠다.


데이터를 쓰고난 다음 다시 읽어 와서 잘 쓰여졌는지 확인한 결과 일치했다는 것을 알수 있다.


UART 커넥션을 끊거나, PC 프로그램을 종료하면, target CPU의 LED가 옳바르게 점멸하는 것을 볼 수 있을 것이다.




AvrISP.pyisp.c




'프로젝트 > ISP' 카테고리의 다른 글

ISP - Flash memory read  (0) 2016.08.28
ISP - Device 정보 조회  (0) 2016.08.27
ISP - 회로 구성  (0) 2016.08.27
ISP - In System Programming  (2) 2016.08.27
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함