티스토리 뷰

프로젝트/ISP

ISP - Flash memory read

Just4Fun 2016. 8. 28. 09:13

이번 글에서는 target CPU의 flash 메모리에 쓰여져 있는 데이터를 읽어 오는 기능에 대해서 설명하도록 하겠다.


Bootloader 프로젝트에서는 bootloader 프로그램과 application 프로그램이 동일한 CPU에 존재하기 때문에, 프로젝트가 시작되는 시점에는 application 영역에 의미있는 데이터가 쓰여져 있지 않다.  Bootloader program 영역 이외에는 모든 데이터가 0xFF로 읽히게 된다.   따라서 bootloader 프로젝트에서는 flash 메모리 write 기능부터 구현하게 되었다.  그리고, write 된 데이터가 제대로 쓰여졌는지 확인하기 위하여 ISP 장비를 이용하면 되니까 크게 문제 될것이 없었다.


하지만, ISP 프로젝트의 경우에는 write 기능부터 구현하게 되면, target CPU의 flash 메모리에 데이터가 제대로 쓰여졌는지 확인하기가 쉽지 않다.

따라서 Read 기능부터 먼저 구현한 후 write 기능을 만들어 나가는게 좋을것 같다.


ISP 프로젝트를 시작할 때 target CPU에서 LED를 점멸하는 코드를 만들어서 제대로 동작되는지 확인하였다.  그러므로 아직까지는 target CPU의 flash 메모리에는 LED 점멸하는 코드가 남아 있는 상태이다.

이 데이터를 읽어서 원본 데이터와 비교하여 제대로 읽어 오는지 확인할 것이다.


데이터를 읽어 오기 위한 명령은 bootloader와 마찬가지로 'R'을 사용한다.

위의 코드를 ISP 프로그래머 CPU에 적용하여 target CPU의 flash메모리에서 데이터를 제대로 읽어오는지 확인해 보도록 하겠다.


현재 target CPU에 쓰여진 원본 데이터는 다음과 같다.


읽어 오는 데이터 크기를 0x80으로 지정하고, 읽어온 데이터를 read.hex 파일에 저장하도록 하였다.


read.hex파일을 열어보면 다음과 같이 되어 있다.

정확하게 0x80크기의 데이터를 읽어 왔고, 체크섬값을 비교해보니 원본 데이터와 동일한것을 알 수 있다.  따라서 읽어 오는 기능이 제대로 동작되는것을 확인하였다.


AvrISP.pyisp.c






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

ISP - Flash memory write  (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/12   »
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
글 보관함