Bootloader 프로젝트에서 별도의 장비없이 UART를 통해서 application 프로그램을 AVR의 Flash memory에 프로그램하는 방법에 대해서 설명하였다. 하지만 bootloader 프로그램 자체는 ISP 장치를 이용하여 프로그램하였다. 이처럼 임베디드 시스템을 처음 만들었을때의 시점에는 이 장치에서 돌아가는 프로그램은 아무것도 없는 상태이다. 즉, bootloader 프로그램조차도 없는 완전한 백지 상태인 것이다. 이러한 백지상태의 시스템에서 동작되어야 하는 첫번째 실행파일을 넣어주기 위해서는 어떠한 형태이든지 장비를 이용할 수 밖에 없게 된다. 대량의 양산 단계에서는 ROM writer 장비를 이용하여 Flash 메모리에 image 파일을 프로그램하겠지만, 임베디드 시스템의 개발 단계..
이번에는 Bootloader 프로그램을 이용하여 현재 application 메모리 영역에 어떤 프로그램이 쓰여져 있는지 읽어 오는 기능을 구현해 보기로 하겠다. 이 기능을 위해서 Bootloader 프로그램에 추가로 구현해 줄 내용은 없다. 이미 앞의 글에서 다루었던 verify 기능을 그대로 이용하면 되기 때문이다. Read 기능을 수행하여 새로운 Hex 파일로 만드는 것은 순전히 PC 프로그램의 기능일 뿐이다. Read 기능이 수행된 모습은 다음과 같다. PC 프로그램을 실행하여 AVR bootloader 프로그램과 커넥션을 맺은 다음, Get ID버튼을 눌러 AVR 정보를 읽어 온다.그 다음 AVR의 application 메모리 영역에서 읽어온 데이터를 어떤 파일로 생성할지 파일을 정한 다음 'Re..
Bootloader 프로그램이 동작되는 CPU의 상세정보를 알아내었고, 이 CPU에서 동작되는 application 프로그램의 Hex 파일로부터 데이터를 문제없이 추출하였으므로, 이제 다음 단계로 Hex 파일에서 추출한 데이터를 실제 CPU 내부 flash memory에 write 하는 기능을 구현해 보도록 하겠다. 이미 앞에서도 설명하였듯이 Flash 메모리에 데이터를 쓰기 위해서는 해당 영역을 지우는(Erase) 동작이 선행되어야 한다.Erase에 대한 명령은 'e'를 사용한다. Flash 메모리의 erase는 page 단위로 이루어지므로 page의 크기와 몇개의 page를 지워야 하는지 알려주어야 한다.Bootloader 프로그램은 위의 정보를 이용하여 필요한 크기만큼만 Flash 메모리를 지우는 ..