?>

Hard Copy World

HCW

Tip and Tech

Home > Info >

Tip and Tech

아두이노 1.6.x 에서 발생하는 오류 해결방법

페이지 정보

작성자 최고관리자 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 작성일16-03-22 14:08 조회1,658회 댓글0건

본문

 

라이브러리 경로 변경 문제

Q: IDE 1.0.x 에서 1.6.x 로 판올림 한 이후 스케치와 라이브러리가 사라진 경우

A: IDE 1.6.x 에서 preferences 파일의 위치가 변경됨

  • 기본 스케치 폴더가 C:\Users\username\Documents\Arduino 로 변경됨(Windows)
  • MacOSX 의 경우는 /Users/username/Documents/Arduino 
  • GNU/Linux의 경우는 /home/username/Arduino 사용

IDE preferences 파일의 설정을 IDE 1.0.x 이 사용하는 폴더로 변경하면 됨

 

Errors related to AVR PROGMEM changes

Q: 컴파일 할 때 아래와 같은 에러 메시지가 나오는 경우

variable 'message' must be const in order to be put into read-only section by means of '__attribute__((progmem))': char message[] PROGMEM = "Hello!";.

A: 최신 avr-gcc compiler 에서는 (Arduino 1.6.x) PROGMEM 선언된 변수는 반드시 const 타입이어야 함

일단 라이브러리는 최신 라이브러리로 사용할 것을 권장. 그리고 스케치에서 아래와 같이 수정

  • char message[] PROGMEM = "Hello!";
  • ==>
  • const char message[] PROGMEM = "Hello!";

 

Q: const 타입으로 변경했지만 아래처럼 에러가 여전히 발생하는 경우 

variable 'lotOfMessages' must be const in order to be put into read-only section by means of '__attribute__((progmem))': const char* lotOfMessages[] PROGMEM = {

A: 단일 변수가 아니라 배열로 사용하는 경우 각각을 const 타입으로 선언해줘야 함

  • const char* lotOfMessages[] PROGMEM = {
  • ==>
  • const char * const lotOfMessages[] PROGMEM = {

 

Q: 컴파일러가 prog_char (혹은 prog_ 로 시작하는) 변수에 문제가 있다고 보고함 

ISO C++ forbids declaration of 'type name' with no type.

A: Arduino 1.6.x 에서 사용하는 새로운 avr-libc 는 prog_char 를 더 이상 사용하지 않음. 따라서 아래 경우에 해당하는 변수들을 모두 변경해줘야 함. (prog_ 변수를 C/C++ plain type 으로 변경)

replace...                              ...with...
prog_char char
prog_uchar unsigned char
prog_int8_t int8_t
prog_uint8_t uint8_t
prog_int16_t int16_t
prog_uint16_t uint16_t
prog_int32_t int32_t
prog_uint32_t uint32_t
prog_int64_t int64_t
prog_uint64_t uint64_t

 

 

https://github.com/arduino/Arduino/wiki/1.6-Frequently-Asked-Questions#errors-related-to-avr-progmem-changes

 

 

 

댓글목록

등록된 댓글이 없습니다.