본문 바로가기

임베디드 (?)

AVR 문자열 사용시 program 메모리 영역으로 옮기는 법.

AVR GCC 에서 통신이나, 다른 기능 구현시...

Send("Hello\r\n"); 이런걸 많이 쓰는데요...

희안하게 상수 문자열임에도 불구하고 RAM 으로 잡힙니다. "Hello\r\n" 이게 왜 RAM 으로 잡히죠?

원인은 모르겠고, 아래 사이트에가면 해결방법이 있습니다.


#include <avr\pgmspace.h>

UART_vTxStringDirect_p(PSTR("Table 1 : RL table for 1550\r\n"));


PSTR( ) macro 를 사용하면되고...

읽을때는 pgm_read_byte( str ) 이런식으로 읽습니다.


자세한 건 아래 링크로...


http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=38003&start=all&postdays=0&postorder=asc