?>

Hard Copy World

HCW

Q&A

Home > Forum >

Q&A

[Q]Low memory available, stability problems may occur ?

페이지 정보

작성자 heaven2 이름으로 검색 작성일15-06-26 15:19 조회3,834회 댓글2건

본문

환경: Arduino mega, MCU:ATmega2560

빌드하면 아래와 같은 메세지가 나오는데요..

ATMega2560은 메모리가 64K로 알고 있는데, 벌써 거의 차버려서 안전성에 문제가 생길 것이라는

뜻으로 해석되는데요.. 어찌해야 할 지?

시리얼 통신을 위한 공간은 가급적 여유있게 잡았고, 나머지 환경 변수는 Global하게 잡았습니다.

그외 전역변수 등을 쓰고, 디버그 메세지가 좀 많은데요.. 메모리 낮추려면 어떻게 해야 할 지?

----------------------------------------------------------------------------------------

스케치는 프로그램 저장 공간 (8%) 중 22,614 바이트를 사용. 최대 253,952 바이트.
전역 변수는 (75%)의 동적 메모리중 6,219바이트를 사용, 1,973바이트의 지역변수가 남은. 최대는 8,192 바이트.
Low memory available, stability problems may occur.

 

댓글목록

하드카피님의 댓글

하드카피 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일

저도 드물게 보곤 했던 메시지인데요.. 문제가 없는 소스인데도 이런 메시지가 나올때가 있었습니다. 업로드가 가능하면 그냥 업로드해서 사용하셔도 됩니다.
다만 메모리 사용량을 줄이기 위해 Read-only 데이터.. 예를 들면 고정된 문자열이나 이미지 데이터는 PROGMEM을 이용해서 처리하시면 RAM 대신 Flash 메모리를 사용하기 때문에 메모리 관리에 도움이 됩니다. 디버그에 사용되는 문자열은 F("") 매크로를 이용하셔도 같은 효과를 볼 수 있습니다.
그 외에도 가급적 불필요한 메모리 사용 부분을 찾아내서 수정해주세요. 예를들어 상수 같은 것들은 #define 구문을 이용하는 것도 좋습니다.

heaven2님의 댓글

heaven2 이름으로 검색 작성일

디버그 관련 문자 스트링을 F("xxx")로 처리하니 RAM 용량이 확실히 확~ 내려가네요. 감사합니다.