이번 글에서는 target CPU의 flash 메모리에 쓰여져 있는 데이터를 읽어 오는 기능에 대해서 설명하도록 하겠다. Bootloader 프로젝트에서는 bootloader 프로그램과 application 프로그램이 동일한 CPU에 존재하기 때문에, 프로젝트가 시작되는 시점에는 application 영역에 의미있는 데이터가 쓰여져 있지 않다. Bootloader program 영역 이외에는 모든 데이터가 0xFF로 읽히게 된다. 따라서 bootloader 프로젝트에서는 flash 메모리 write 기능부터 구현하게 되었다. 그리고, write 된 데이터가 제대로 쓰여졌는지 확인하기 위하여 ISP 장비를 이용하면 되니까 크게 문제 될것이 없었다. 하지만, ISP 프로젝트의 경우에는 write 기능부터 구..
ISP 프로젝트를 위한 회로 구성을 완료한 다음 회로가 제대로 연결되었는지 확인하는 단계를 반드시 거쳐야 한다.먼저 확인할 내용은 PC와 UART가 제대로 연결되었는지, ISP 프로그래머와 target CPU가 SPI로 제대로 연결되었는지 확인을 하여야 한다.입문 과정의 SPI 프로젝트를 이용하여 UART와 SPI 통신 기능을 검증해 보도록 하겠다. static void read_device_info(void) { portb->port &= ~SPI_SS; enter_program_mode(); get_signature(); portb->port |= SPI_SS; } static void port_init(void) { /* SPI port init */ portb->ddr = (SPI_SS | SPI..
ISP 프로젝트를 위한 회로 구성은 다음과 같은 모양으로 할것이다. 입문과정의 SPI 설명글에서는 target CPU를 ATmega328P를 연결하였지만, 이번 프로젝트에서는 ATtiny85를 연결하도록 하겠다. ISP 프로젝트를 진행하기에 앞서 taget CPU의 동작을 먼저 검증해보는 코드를 만들어 보도록 하겠다. ATtiny85의 2번 핀에 LED 하나를 연결하고, 일정한 주기로 점멸하는 코드를 만들어 보기로 하겠다. #define F_CPU1000000 #include #include #define LED0x08 int main(void) { DDRB = LED; PORTB= LED; /* Replace with your application code */ while (1) { PORTB ^= L..