<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">아두이노와 센서를 능숙하게 다루고 각종 통신 모듈과 디스플레이 모듈을 활용하기 시작하는 중급 유저라면&nbsp;메모리 문제를 한번쯤 겪기 마련입니다.&nbsp;불과 2KB의 SRAM을 가진 아두이노에서는 메모리 문제에서 자유로울 수가 없는데 반해&nbsp;이를 디버깅할 수 있는 방법이 아두이노에서는 마땅히 없습니다.&nbsp;(PC 혹은 다른 기기, 플랫폼에서도 메모리 문제가 골치거리인 점은 같지만…)</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">유일한 디버깅 방법인 Serial 함수를 이용한 디버그 메시지 출력도 Serial 통신을 활성화 하는 과정에서 통신용 버퍼를 생성하기 때문에 메모리를 잡아먹어 버립니다. 따라서 아두이노 메모리 문제는 메모리에 대해 충분히 이해하고 미리 조심하는 것이 최선이라 하겠습니다.</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">그래서 아두이노 메모리 관련된 해외 자료들을 수집해서 정리해 봤습니다. 아래 링크가 원문입니다. 원문의 주요 내용을 정리했지만 제가 첨삭을 했습니다.</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;"><a href="https://learn.adafruit.com/memories-of-an-arduino/you-know-you-have-a-memory-problem-when-dot-dot-dot" target="_blank" style="box-sizing: inherit; background-color: transparent; color: #009688; text-decoration-line: none; transition: color 0.35s ease 0s;">https://learn.adafruit.com/memories-of-an-arduino/you-know-you-have-a-memory-problem-when-dot-dot-dot</a></p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">&nbsp;</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">&nbsp;</p>
<h2 style="box-sizing: inherit; font-family: Raleway, Arial, sans-serif; line-height: 1; color: #454545; margin: 20px 0px 10px; font-size: 24px; clear: both; background-color: #ffffff;"><strong style="box-sizing: inherit;">아두이노 메모리 분석</strong></h2>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">&nbsp;</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">아두이노 스케치 사이즈가 너무 커지면 업로드 할 때 아래와 같은 에러 메시지가 발생하는 경우가 있습니다.</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;"><a href="http://www.hardcopyworld.com/ngine/aduino/wp-content/uploads/sites/3/2015/07/learn_arduino_Too_Big.jpg" style="box-sizing: inherit; background-color: transparent; color: #009688; text-decoration-line: none; transition: color 0.35s ease 0s;" target="_blank"><img class="alignnone size-full wp-image-1964" src="http://www.hardcopyworld.com/ngine/aduino/wp-content/uploads/sites/3/2015/07/learn_arduino_Too_Big.jpg" alt="learn_arduino_Too_Big" width="800" srcset="http://www.hardcopyworld.com/ngine/aduino/wp-content/uploads/sites/3/2015/07/learn_arduino_Too_Big.jpg 800w, http://www.hardcopyworld.com/ngine/aduino/wp-content/uploads/sites/3/2015/07/learn_arduino_Too_Big-300x94.jpg 300w" sizes="(max-width: 800px) 100vw, 800px" style="box-sizing: inherit; border: 0px; vertical-align: middle; max-width: 100%; height: auto; margin-top: 20px; margin-bottom: 20px;" /></a></p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">하지만 이런 에러는 업로드 할 때 발생하므로 오히려 다행인 경우라고 할까요. 많은 경우는 스케치가 문제없이 업로드되지만&nbsp;동작할 때 이상한 현상을 보인다던지 죽어버리게 됩니다.&nbsp;그리고 이런 문제가 발생했을 때는 어디가 문제인지 알기 힘든 경우가 많습니다.</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">먼저 메모리 문제는 어떻게 확인할 수 있는지 부터 보겠습니다. 스케치가 문제없이 업로드 되더라도 아래와 같은 작업을 한 뒤 문제가 발생한다면 메모리 문제일 가능성이 큽니다.</p>
<ul style="box-sizing: inherit; margin: 0px 0px 0px 20px; list-style-position: initial; list-style-image: initial; padding: 0px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">
   <li style="box-sizing: inherit;">하나 이상의 라이브러리를 include 한 뒤</li>
   <li style="box-sizing: inherit;">몇 개의 LED pixel을 추가한 뒤 (LED 디스플레이의 각 픽셀을 말함)</li>
   <li style="box-sizing: inherit;">SD 카드에서 파일을 연 뒤</li>
   <li style="box-sizing: inherit;">디스플레이를 초기화 한 뒤</li>
   <li style="box-sizing: inherit;">다른 스케치와 합친 뒤</li>
   <li style="box-sizing: inherit;">새로운 함수를 추가한 뒤</li>
   </ul>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">이런 메모리 문제를 해결하기 위해서는 아두이노의 메모리 동작 방식부터 이해해야 합니다.</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">&nbsp;</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">&nbsp;</p>
<h2 style="box-sizing: inherit; font-family: Raleway, Arial, sans-serif; line-height: 1; color: #454545; margin: 20px 0px 10px; font-size: 24px; clear: both; background-color: #ffffff;"><strong style="box-sizing: inherit;">Harvard vs Princeton</strong></h2>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">&nbsp;</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">컴퓨터 발전의 초기 시절에 두 개의 상반된 프로세서/메모리 아키텍처가 발표됩니다.</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;"><a href="http://www.hardcopyworld.com/ngine/aduino/wp-content/uploads/sites/3/2015/07/learn_arduino_Harvard_vs_Princeton.gif" style="box-sizing: inherit; background-color: transparent; color: #009688; text-decoration-line: none; transition: color 0.35s ease 0s;" target="_blank"><img class="alignnone wp-image-1965 size-medium" src="http://www.hardcopyworld.com/ngine/aduino/wp-content/uploads/sites/3/2015/07/learn_arduino_Harvard_vs_Princeton-300x150.gif" alt="learn_arduino_Harvard_vs_Princeton" width="300" style="box-sizing: inherit; border: 0px; vertical-align: middle; max-width: 100%; height: auto; margin-top: 20px; margin-bottom: 20px;" /></a></p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">유명한 ENIAC을 위해 만들어진 폰 노이만(Von Neumann 또는 Princeton) 아키텍처는 (컴파일 된) 프로그램과 (프로그램 실행중 사용되는) 데이터 저장 공간을 위해&nbsp;같은 메모리 공간을 사용합니다.</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;"><a href="http://www.hardcopyworld.com/ngine/aduino/wp-content/uploads/sites/3/2015/07/learn_arduino_Von_Neumann.gif" style="box-sizing: inherit; background-color: transparent; color: #009688; text-decoration-line: none; transition: color 0.35s ease 0s;" target="_blank"><img class="alignnone wp-image-1966 size-medium" src="http://www.hardcopyworld.com/ngine/aduino/wp-content/uploads/sites/3/2015/07/learn_arduino_Von_Neumann-300x194.gif" alt="learn_arduino_Von_Neumann" width="300" style="box-sizing: inherit; border: 0px; vertical-align: middle; max-width: 100%; height: auto; margin-top: 20px; margin-bottom: 20px;" /></a></p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">반면에 Harvard Mark 1에 사용된 하버드 아키텍처는 프로그램과 데이터 저장 공간을 위해 물리적으로 분리된 메모리를 사용합니다.</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;"><a href="http://www.hardcopyworld.com/ngine/aduino/wp-content/uploads/sites/3/2015/07/learn_arduino_Harvard.gif" style="box-sizing: inherit; background-color: transparent; color: #009688; text-decoration-line: none; transition: color 0.35s ease 0s;" target="_blank"><img class="alignnone wp-image-1967 size-medium" src="http://www.hardcopyworld.com/ngine/aduino/wp-content/uploads/sites/3/2015/07/learn_arduino_Harvard-300x211.gif" alt="learn_arduino_Harvard" width="300" style="box-sizing: inherit; border: 0px; vertical-align: middle; max-width: 100%; height: auto; margin-top: 20px; margin-bottom: 20px;" /></a></p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">이 두 개의 상반된 아키텍처는 서로 장단점이 있습니다. 하버드 아키텍처가 성능에서 뛰어난 반면 폰 노이만 아키텍처는 더 유연합니다.</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">근래에 사용되는 일반적인 컴퓨터(PC, 맥 등등)는 두 아키텍처의 장점을 결합한 하이브리드 디자인을 채용하고 있습니다. PC의 CPU 내부를 깊이 파고들면 instruction, data를 위한 별도의 캐시(cache)를 운용하므로 하버드 모델에 기반함을 알 수 있습니다.&nbsp;하지만 instruction, data 캐시는 자동으로 공통 메모리 공간에 올라갑니다. 프로그래밍 관점에서는 수 기가 바이트의 가상공간(virtual storage)을 가진 순수한 폰 노이만 장치처럼 보이게 됩니다.</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">&nbsp;</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">&nbsp;</p>
<h2 style="box-sizing: inherit; font-family: Raleway, Arial, sans-serif; line-height: 1; color: #454545; margin: 20px 0px 10px; font-size: 24px; clear: both; background-color: #ffffff;"><strong style="box-sizing: inherit;">마이크로 컨트롤러 (Microcontrollers)</strong></h2>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">&nbsp;</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">아두이노를 동작시키는 것과 같은 마이크로 컨트롤러는 임베디드 시스템을 위해 설계되었습니다.&nbsp;일반 목적의 컴퓨터와는 달리 임베디드 프로세서는 최소의 비용으로 효율적이고 안정적으로 동작하도록 요구됩니다.&nbsp;따라서 multi-layer caching, disk-based virtual memory systems 과 같은 사치스러움을 배제하고 굉장히 빡빡하게 디자인됩니다.&nbsp;이런 요구사항에는 하버드 아키텍처가 잘 어울립니다. 아두이노 UNO, Nano, Mini의 핵심 칩인 Atmega328 도 (상대적으로) 순수한 하버드 아키텍처를 사용합니다.&nbsp;따라서 작성한 프로그램(스케치)은 플래시 메모리(32KB, 프로그램 메모리라고도 부름)에 저장되고 데이터는 SRAM(2KB)에 저장됩니다.</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">이런 작업들은 컴파일러와 run-time system에 의해 관리됩니다. 그런데 메모리의 여유가 거의 없는 상황이 되면&nbsp;이런 부분들을 인위적으로 어떻게 관리할지 전략이 필요합니다. 특히나 아두이노 같은 작은 장치에서는 메모리가 꽉 차는 상황이 쉽게 오므로 한정된 자원을 아껴써야 합니다.</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">이제 아두이노가 가진 각 메모리의 특징들 부터 살펴보겠습니다.</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">&nbsp;</p>
<h3 style="box-sizing: inherit; font-family: Raleway, Arial, sans-serif; line-height: 1; color: #454545; margin: 15px 0px 10px; font-size: 20px; clear: both; background-color: #ffffff;"><strong style="box-sizing: inherit;">아두이노 메모리 – 플래시 메모리(Flash Memory)</strong></h3>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">플래시 메모리는 프로그램 이미지와 초기화된 데이터가 저장되는 곳입니다.&nbsp;아두이노가 실행되면 플래시 메모리에서 프로그램 코드가 실행되지만 실행중인 코드에서 플래시 메모리를 바꿀 수는 없습니다.&nbsp;플래시에 저장된 데이터를 바꾸기 위해서는 먼저 SRAM으로 복사를 해야 합니다.</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">플래시 메모리는 SD 카드와 같은 기술입니다. 비휘발성(non-volatile)이므로 전원이 차단되도 지워지지 않습니다. 플래시 메모리는 1000,000 write cycle을 가지므로 영구적인 저장공간은 아닙니다. 하루에 10번 프로그램을 업로드 한다면 약 27년 후 한계에 다다릅니다.</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">&nbsp;</p>
<h3 style="box-sizing: inherit; font-family: Raleway, Arial, sans-serif; line-height: 1; color: #454545; margin: 15px 0px 10px; font-size: 20px; clear: both; background-color: #ffffff;"><strong style="box-sizing: inherit;">아두이노 메모리 – 램(SRAM, Static Random Access Memory)</strong></h3>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">램은 실행중인 프로그램에서 읽고 쓸수 있는 메모리입니다. 아래와 같이 데이터 종류에 따라 구분되어 사용됩니다.</p>
<ul style="box-sizing: inherit; margin: 0px 0px 0px 20px; list-style-position: initial; list-style-image: initial; padding: 0px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">
   <li style="box-sizing: inherit;">Static data – 전역 변수(global variable), static 변수용으로 예약된 공간입니다. 아두이노 런타임 시스템은 프로그램이 시작할 때 플래시 메모리에서 이 값을 읽어 램으로 복사를 합니다.</li>
   <li style="box-sizing: inherit;">Heap – 힙은 동작으로 할당되는 데이터들을 위한 영역입니다. 힙은 데이터가 할당될 때 Static data 위에 차례로 저장하고 지웁니다.</li>
   <li style="box-sizing: inherit;">Stack – 스택은 지역 변수(local variable)를 위한 공간입니다. 예를 들어 함수(또는 인터럽트)가 호출되어 함수 내부 코드가 실행될 때, 함수 내부에서 선언된 변수가 있다면 스택에 저장됩니다. 스택은 (그림과 같이) 메모리 최 상위부터 힙 영역 방향으로 저장됩니다. 함수, 인터럽트 실행 또는 지역 변수 선언은 스택을 증가시킵니다. 그리고 함수, 인터럽트 실행이 끝나면 증가했던 메모리 만큼 다시 반환됩니다.</li>
   <li style="box-sizing: inherit;">Free memory – 위 3개의 영역으로 사용되지 않는 여유 공간.</li>
   </ul>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">대부분의 메모리 문제는 여유 공간이 부족해 힙과 스택이 충돌할 때 발생합니다. 그리고 이때 어떤 일이 발생할지는 예측하기 힘듭니다.<br style="box-sizing: inherit;" />어떤 경우에는 문제점이 한참 뒤에 나타나기도 합니다.</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">&nbsp;</p>
<h3 style="box-sizing: inherit; font-family: Raleway, Arial, sans-serif; line-height: 1; color: #454545; margin: 15px 0px 10px; font-size: 20px; clear: both; background-color: #ffffff;"><strong style="box-sizing: inherit;">EEPROM</strong></h3>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">EEPROM(1KB)은 프로그램에서 읽고 쓸 수 있는 비휘발성 메모리입니다. 마치 하드디스크처럼 사용이 가능합니다.&nbsp;EEPROM은 byte 단위로 읽고 쓸 수 있으며 SRAM보다 느린 특징이 있습니다. SRAM과 별도의 영역이므로 경우에 따라 유용하게 사용될 수 있습니다.&nbsp;플래시 메모리와 마찬가지로 읽기-쓰기 100,000 회 정도가 가능합니다. 메모리 문제에서의 중요성은 좀 떨어집니다.</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">&nbsp;</p>
<h3 style="box-sizing: inherit; font-family: Raleway, Arial, sans-serif; line-height: 1; color: #454545; margin: 15px 0px 10px; font-size: 20px; clear: both; background-color: #ffffff;"><strong style="box-sizing: inherit;">아두이노 메모리 비교</strong></h3>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">크게 3가지 (플래시, 램, EEPROM) 메모리로 구분하지만 아두이노 종류별로 메모리 크기는 틀립니다. 아래 표를 참고하세요.</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;"><a href="http://www.hardcopyworld.com/ngine/aduino/wp-content/uploads/sites/3/2015/07/learn_arduino_ArduinoChart.jpg" style="box-sizing: inherit; background-color: transparent; color: #009688; text-decoration-line: none; transition: color 0.35s ease 0s;" target="_blank"><img class="alignnone size-full wp-image-1968" src="http://www.hardcopyworld.com/ngine/aduino/wp-content/uploads/sites/3/2015/07/learn_arduino_ArduinoChart.jpg" alt="learn_arduino_ArduinoChart" width="687" srcset="http://www.hardcopyworld.com/ngine/aduino/wp-content/uploads/sites/3/2015/07/learn_arduino_ArduinoChart.jpg 687w, http://www.hardcopyworld.com/ngine/aduino/wp-content/uploads/sites/3/2015/07/learn_arduino_ArduinoChart-300x89.jpg 300w" sizes="(max-width: 687px) 100vw, 687px" style="box-sizing: inherit; border: 0px; vertical-align: middle; max-width: 100%; height: auto; margin-top: 20px; margin-bottom: 20px;" /></a></p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">&nbsp;</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">&nbsp;</p>
<h2 style="box-sizing: inherit; font-family: Raleway, Arial, sans-serif; line-height: 1; color: #454545; margin: 20px 0px 10px; font-size: 24px; clear: both; background-color: #ffffff;"><strong style="box-sizing: inherit;">메모리 사용량 측정 방법</strong></h2>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">&nbsp;</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">메모리 문제를 해결하기 위한 첫 걸음은 메모리 사용량을 측정하는 것입니다.</p>
<h3 style="box-sizing: inherit; font-family: Raleway, Arial, sans-serif; line-height: 1; color: #454545; margin: 15px 0px 10px; font-size: 20px; clear: both; background-color: #ffffff;">플래시 메모리</h3>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">플래시 메모리 사용량은 업로드 할 때 결정됩니다. 업로드 할 때 아두이노 개발환경의 메시지 창(하단 검은색 영역)을 보시면 컴파일 된 바이너리 사이즈가 나옵니다.&nbsp;사이즈가 너무 클 경우 에러 메시지도 여기에 표시됩니다.</p>
<h3 style="box-sizing: inherit; font-family: Raleway, Arial, sans-serif; line-height: 1; color: #454545; margin: 15px 0px 10px; font-size: 20px; clear: both; background-color: #ffffff;"><strong style="box-sizing: inherit;">SRAM</strong></h3>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">SRAM은 동적으로 계속 변화하는 메모리이기 때문에 측정하기도 힘듭니다. 아래와 같이 free_ram() 함수를 작성해서 프로그램 곳곳에서 체크해야 합니다.</p>
<div id="crayon-5cc2ab8ce458e871585885" class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" style="box-sizing: border-box; text-size-adjust: none; width: 747.5px; padding: 0px; margin: 12px 0px; font-family: Monaco, MonacoRegular, &quot;Courier New&quot;, monospace; color: #505050; height: auto; overflow: hidden !important; position: relative !important; direction: ltr !important; border-width: 1px !important; border-color: #999999 !important; border-style: solid !important; text-shadow: none !important; background: rgb(253, 253, 253) !important; line-height: 15px !important;">
   <div class="crayon-plain-wrap" style="box-sizing: inherit; background: 0px center; border: 0px; padding: 0px !important; margin: 0px !important; height: auto !important;"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly="" style="margin: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; color: #000000; overflow: hidden; height: 90px; padding-top: 0px; padding-right: 5px; padding-left: 5px; border-width: 0px; border-style: initial; border-color: initial; border-radius: 0px; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; width: 745.5px; resize: none; outline: none; position: absolute; opacity: 0; box-shadow: none; white-space: pre; overflow-wrap: normal; tab-size: 4; z-index: 0; font-size: 12px !important; line-height: 15px !important; font-family: Monaco, MonacoRegular, &quot;Courier New&quot;, monospace !important;"></textarea></div>
   <div class="crayon-main" style="box-sizing: inherit; background: 0px center; border: 0px; padding: 0px; margin: 0px; width: 745.5px; overflow: hidden; position: relative; z-index: 1;">
      <table class="crayon-table" style="box-sizing: inherit; margin-left: 0px; border-spacing: 0px !important; background: none !important; width: auto !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; border-width: initial !important; border-style: none !important; border-color: initial !important; padding: 0px !important; table-layout: auto !important;">
         <tbody style="box-sizing: inherit;">
            <tr class="crayon-row" style="box-sizing: inherit; background: 0px center; padding: 0px !important; border: none !important; vertical-align: top !important; margin: 0px !important;">
               <td class="crayon-nums " data-settings="show" style="box-sizing: inherit; border-width: 0px; border-style: initial; border-color: initial; padding: 0px !important; vertical-align: top !important; margin: 0px !important; background: rgb(223, 239, 255) !important; color: #5499de !important;">
                  <div class="crayon-nums-content" style="box-sizing: inherit; background: 0px center; border: 0px; padding: 0px; margin: 0px; white-space: nowrap; line-height: 15px !important;">
                     <div class="crayon-num" data-line="crayon-5cc2ab8ce458e871585885-1" style="box-sizing: inherit; font-family: inherit; background: 0px center; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;">1</div>
                     <div class="crayon-num crayon-striped-num" data-line="crayon-5cc2ab8ce458e871585885-2" style="box-sizing: inherit; font-family: inherit; background: rgb(200, 225, 250) !important; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #317cc5 !important;">2</div>
                     <div class="crayon-num" data-line="crayon-5cc2ab8ce458e871585885-3" style="box-sizing: inherit; font-family: inherit; background: 0px center; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;">3</div>
                     <div class="crayon-num crayon-striped-num" data-line="crayon-5cc2ab8ce458e871585885-4" style="box-sizing: inherit; font-family: inherit; background: rgb(200, 225, 250) !important; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #317cc5 !important;">4</div>
                     <div class="crayon-num" data-line="crayon-5cc2ab8ce458e871585885-5" style="box-sizing: inherit; font-family: inherit; background: 0px center; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;">5</div>
                     <div class="crayon-num crayon-striped-num" data-line="crayon-5cc2ab8ce458e871585885-6" style="box-sizing: inherit; font-family: inherit; background: rgb(200, 225, 250) !important; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #317cc5 !important;">6</div>
                     </div>
                  </td>
               <td class="crayon-code" style="box-sizing: inherit; border-width: 0px; border-style: initial; border-color: initial; background: 0px center; width: 727px; padding: 0px !important; vertical-align: top !important; margin: 0px !important;">
                  <div class="crayon-pre" style="box-sizing: inherit; padding: 0px; margin: 0px; white-space: pre; overflow: visible; tab-size: 4; background: none !important; border: none !important; line-height: 15px !important;">
                     <div class="crayon-line" id="crayon-5cc2ab8ce458e871585885-1" style="box-sizing: inherit; font-family: inherit; background: 0px center; border: 0px; padding: 0px 5px; margin: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;"><span class="crayon-t" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #800080 !important;">int</span><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;"></span><span class="crayon-e" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #004ed0 !important;">freeRam</span><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;"></span><span class="crayon-sy" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #333333 !important;">(</span><span class="crayon-sy" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #333333 !important;">)</span><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;"></span></div>
                     <div class="crayon-line crayon-striped-line" id="crayon-5cc2ab8ce458e871585885-2" style="box-sizing: inherit; font-family: inherit; border: 0px; padding: 0px 5px; margin: 0px; height: inherit; background: rgb(247, 247, 247) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;"><span class="crayon-sy" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #333333 !important;">{</span></div>
                     <div class="crayon-line" id="crayon-5cc2ab8ce458e871585885-3" style="box-sizing: inherit; font-family: inherit; background: 0px center; border: 0px; padding: 0px 5px; margin: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;"><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;">&nbsp;&nbsp;</span><span class="crayon-m" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #800080 !important;">extern</span><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;"></span><span class="crayon-t" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #800080 !important;">int</span><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;"></span><span class="crayon-v" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #002d7a !important;">__heap_start</span><span class="crayon-sy" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #333333 !important;">,</span><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;"></span><span class="crayon-o" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;">*</span><span class="crayon-v" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #002d7a !important;">__brkval</span><span class="crayon-sy" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #333333 !important;">;</span><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;"></span></div>
                     <div class="crayon-line crayon-striped-line" id="crayon-5cc2ab8ce458e871585885-4" style="box-sizing: inherit; font-family: inherit; border: 0px; padding: 0px 5px; margin: 0px; height: inherit; background: rgb(247, 247, 247) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;"><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;">&nbsp;&nbsp;</span><span class="crayon-t" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #800080 !important;">int</span><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;"></span><span class="crayon-v" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #002d7a !important;">v</span><span class="crayon-sy" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #333333 !important;">;</span><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;"></span></div>
                     <div class="crayon-line" id="crayon-5cc2ab8ce458e871585885-5" style="box-sizing: inherit; font-family: inherit; background: 0px center; border: 0px; padding: 0px 5px; margin: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;"><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;">&nbsp;&nbsp;</span><span class="crayon-st" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #800080 !important;">return</span><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;"></span><span class="crayon-sy" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #333333 !important;">(</span><span class="crayon-t" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #800080 !important;">int</span><span class="crayon-sy" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #333333 !important;">)</span><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;"></span><span class="crayon-v" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #002d7a !important;">&amp;v </span><span class="crayon-o" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;">-</span><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;"></span><span class="crayon-sy" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #333333 !important;">(</span><span class="crayon-v" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #002d7a !important;">__brkval</span><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;"></span><span class="crayon-o" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;">==</span><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;"></span><span class="crayon-cn" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #ce0000 !important;">0</span><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;"></span><span class="crayon-sy" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #333333 !important;">?</span><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;"></span><span class="crayon-sy" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #333333 !important;">(</span><span class="crayon-t" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #800080 !important;">int</span><span class="crayon-sy" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #333333 !important;">)</span><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;"></span><span class="crayon-v" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #002d7a !important;">&amp;__heap_start </span><span class="crayon-o" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;">:</span><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;"></span><span class="crayon-sy" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #333333 !important;">(</span><span class="crayon-t" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #800080 !important;">int</span><span class="crayon-sy" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #333333 !important;">)</span><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;"></span><span class="crayon-v" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #002d7a !important;">__brkval</span><span class="crayon-sy" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #333333 !important;">)</span><span class="crayon-sy" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #333333 !important;">;</span><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;"></span></div>
                     <div class="crayon-line crayon-striped-line" id="crayon-5cc2ab8ce458e871585885-6" style="box-sizing: inherit; font-family: inherit; border: 0px; padding: 0px 5px; margin: 0px; height: inherit; background: rgb(247, 247, 247) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;"><span class="crayon-sy" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #333333 !important;">}</span></div>
                     </div>
                  </td>
               </tr>
            </tbody>
         </table>
      </div>
   </div>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">실제 free_ram() 함수가 알려주는 것은 힙과 스택 사이의 여유 공간입니다.</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;"><a href="http://www.hardcopyworld.com/ngine/aduino/wp-content/uploads/sites/3/2015/07/Stack_Operation.gif" style="box-sizing: inherit; background-color: transparent; color: #009688; text-decoration-line: none; transition: color 0.35s ease 0s;" target="_blank"><img class="alignnone wp-image-1969 size-medium" src="http://www.hardcopyworld.com/ngine/aduino/wp-content/uploads/sites/3/2015/07/Stack_Operation-300x250.gif" alt="Stack_Operation" width="300" style="box-sizing: inherit; border: 0px; vertical-align: middle; max-width: 100%; height: auto; margin-top: 20px; margin-bottom: 20px;" /></a></p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">힙 공간은 데이터로 꽉 찬게 아니라 파편화되어 채워지기 때문에 사용되지 않는 여유공간이 있을 수 있습니다.&nbsp;하지만 이 공간은 프로그래머가 직접 사용할 수 없기 때문에 고려하지 않아도 좋습니다.&nbsp;free_ram()으로 체크되는 여유 공간을 체크해야 합니다.</p>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">&nbsp;</p>
<h3 style="box-sizing: inherit; font-family: Raleway, Arial, sans-serif; line-height: 1; color: #454545; margin: 15px 0px 10px; font-size: 20px; clear: both; background-color: #ffffff;">EEPROM</h3>
<p style="box-sizing: inherit; margin-bottom: 10px; color: #505050; font-family: Lato, Verdana, sans-serif; font-size: 14px; background-color: #ffffff;">EEPROM은 100% 프로그래머가 제어가 가능하므로 어디어 어떻게 쓰고, 언제 어디서 어떻게 읽을지 스스로 계획해야 합니다. 따라서 별도로 사용량 측정이 필요한게 아니라 프로그래머가 알아서 관리해야 합니다.</p>
<div id="crayon-5cc2ab8ce4599691021543" class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" style="box-sizing: border-box; text-size-adjust: none; width: 747.5px; padding: 0px; margin: 12px 0px; font-family: Monaco, MonacoRegular, &quot;Courier New&quot;, monospace; color: #505050; height: auto; overflow: hidden !important; position: relative !important; direction: ltr !important; border-width: 1px !important; border-color: #999999 !important; border-style: solid !important; text-shadow: none !important; background: rgb(253, 253, 253) !important; line-height: 15px !important;">
   <div class="crayon-plain-wrap" style="box-sizing: inherit; background: 0px center; border: 0px; padding: 0px !important; margin: 0px !important; height: auto !important;"><textarea wrap="soft" class="crayon-plain print-no" data-settings="dblclick" readonly="" style="margin: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; color: #000000; overflow: hidden; height: 375px; padding-top: 0px; padding-right: 5px; padding-left: 5px; border-width: 0px; border-style: initial; border-color: initial; border-radius: 0px; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; width: 745.5px; resize: none; outline: none; position: absolute; opacity: 0; box-shadow: none; white-space: pre; overflow-wrap: normal; tab-size: 4; z-index: 0; font-size: 12px !important; line-height: 15px !important; font-family: Monaco, MonacoRegular, &quot;Courier New&quot;, monospace !important;"></textarea></div>
   <div class="crayon-main" style="box-sizing: inherit; background: 0px center; border: 0px; padding: 0px; margin: 0px; width: 745.5px; overflow: hidden; position: relative; z-index: 1;">
      <table class="crayon-table" style="box-sizing: inherit; margin-left: 0px; border-spacing: 0px !important; background: none !important; width: auto !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; border-width: initial !important; border-style: none !important; border-color: initial !important; padding: 0px !important; table-layout: auto !important;">
         <tbody style="box-sizing: inherit;">
            <tr class="crayon-row" style="box-sizing: inherit; background: 0px center; padding: 0px !important; border: none !important; vertical-align: top !important; margin: 0px !important;">
               <td class="crayon-nums " data-settings="show" style="box-sizing: inherit; border-width: 0px; border-style: initial; border-color: initial; padding: 0px !important; vertical-align: top !important; margin: 0px !important; background: rgb(223, 239, 255) !important; color: #5499de !important;">
                  <div class="crayon-nums-content" style="box-sizing: inherit; background: 0px center; border: 0px; padding: 0px; margin: 0px; white-space: nowrap; line-height: 15px !important;">
                     <div class="crayon-num" data-line="crayon-5cc2ab8ce4599691021543-1" style="box-sizing: inherit; font-family: inherit; background: 0px center; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;">1</div>
                     <div class="crayon-num crayon-striped-num" data-line="crayon-5cc2ab8ce4599691021543-2" style="box-sizing: inherit; font-family: inherit; background: rgb(200, 225, 250) !important; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #317cc5 !important;">2</div>
                     <div class="crayon-num" data-line="crayon-5cc2ab8ce4599691021543-3" style="box-sizing: inherit; font-family: inherit; background: 0px center; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;">3</div>
                     <div class="crayon-num crayon-striped-num" data-line="crayon-5cc2ab8ce4599691021543-4" style="box-sizing: inherit; font-family: inherit; background: rgb(200, 225, 250) !important; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #317cc5 !important;">4</div>
                     <div class="crayon-num" data-line="crayon-5cc2ab8ce4599691021543-5" style="box-sizing: inherit; font-family: inherit; background: 0px center; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;">5</div>
                     <div class="crayon-num crayon-striped-num" data-line="crayon-5cc2ab8ce4599691021543-6" style="box-sizing: inherit; font-family: inherit; background: rgb(200, 225, 250) !important; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #317cc5 !important;">6</div>
                     <div class="crayon-num" data-line="crayon-5cc2ab8ce4599691021543-7" style="box-sizing: inherit; font-family: inherit; background: 0px center; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;">7</div>
                     <div class="crayon-num crayon-striped-num" data-line="crayon-5cc2ab8ce4599691021543-8" style="box-sizing: inherit; font-family: inherit; background: rgb(200, 225, 250) !important; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #317cc5 !important;">8</div>
                     <div class="crayon-num" data-line="crayon-5cc2ab8ce4599691021543-9" style="box-sizing: inherit; font-family: inherit; background: 0px center; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;">9</div>
                     <div class="crayon-num crayon-striped-num" data-line="crayon-5cc2ab8ce4599691021543-10" style="box-sizing: inherit; font-family: inherit; background: rgb(200, 225, 250) !important; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #317cc5 !important;">10</div>
                     <div class="crayon-num" data-line="crayon-5cc2ab8ce4599691021543-11" style="box-sizing: inherit; font-family: inherit; background: 0px center; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;">11</div>
                     <div class="crayon-num crayon-striped-num" data-line="crayon-5cc2ab8ce4599691021543-12" style="box-sizing: inherit; font-family: inherit; background: rgb(200, 225, 250) !important; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #317cc5 !important;">12</div>
                     <div class="crayon-num" data-line="crayon-5cc2ab8ce4599691021543-13" style="box-sizing: inherit; font-family: inherit; background: 0px center; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;">13</div>
                     <div class="crayon-num crayon-striped-num" data-line="crayon-5cc2ab8ce4599691021543-14" style="box-sizing: inherit; font-family: inherit; background: rgb(200, 225, 250) !important; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #317cc5 !important;">14</div>
                     <div class="crayon-num" data-line="crayon-5cc2ab8ce4599691021543-15" style="box-sizing: inherit; font-family: inherit; background: 0px center; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;">15</div>
                     <div class="crayon-num crayon-striped-num" data-line="crayon-5cc2ab8ce4599691021543-16" style="box-sizing: inherit; font-family: inherit; background: rgb(200, 225, 250) !important; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #317cc5 !important;">16</div>
                     <div class="crayon-num" data-line="crayon-5cc2ab8ce4599691021543-17" style="box-sizing: inherit; font-family: inherit; background: 0px center; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;">17</div>
                     <div class="crayon-num crayon-striped-num" data-line="crayon-5cc2ab8ce4599691021543-18" style="box-sizing: inherit; font-family: inherit; background: rgb(200, 225, 250) !important; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #317cc5 !important;">18</div>
                     <div class="crayon-num" data-line="crayon-5cc2ab8ce4599691021543-19" style="box-sizing: inherit; font-family: inherit; background: 0px center; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;">19</div>
                     <div class="crayon-num crayon-striped-num" data-line="crayon-5cc2ab8ce4599691021543-20" style="box-sizing: inherit; font-family: inherit; background: rgb(200, 225, 250) !important; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #317cc5 !important;">20</div>
                     <div class="crayon-num" data-line="crayon-5cc2ab8ce4599691021543-21" style="box-sizing: inherit; font-family: inherit; background: 0px center; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;">21</div>
                     <div class="crayon-num crayon-striped-num" data-line="crayon-5cc2ab8ce4599691021543-22" style="box-sizing: inherit; font-family: inherit; background: rgb(200, 225, 250) !important; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #317cc5 !important;">22</div>
                     <div class="crayon-num" data-line="crayon-5cc2ab8ce4599691021543-23" style="box-sizing: inherit; font-family: inherit; background: 0px center; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;">23</div>
                     <div class="crayon-num crayon-striped-num" data-line="crayon-5cc2ab8ce4599691021543-24" style="box-sizing: inherit; font-family: inherit; background: rgb(200, 225, 250) !important; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #317cc5 !important;">24</div>
                     <div class="crayon-num" data-line="crayon-5cc2ab8ce4599691021543-25" style="box-sizing: inherit; font-family: inherit; background: 0px center; border: 0px; padding: 0px 5px; margin: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;">25</div>
                     </div>
                  </td>
               <td class="crayon-code" style="box-sizing: inherit; border-width: 0px; border-style: initial; border-color: initial; background: 0px center; width: 720px; padding: 0px !important; vertical-align: top !important; margin: 0px !important;">
                  <div class="crayon-pre" style="box-sizing: inherit; padding: 0px; margin: 0px; white-space: pre; overflow: visible; tab-size: 4; background: none !important; border: none !important; line-height: 15px !important;">
                     <div class="crayon-line" id="crayon-5cc2ab8ce4599691021543-1" style="box-sizing: inherit; font-family: inherit; background: 0px center; border: 0px; padding: 0px 5px; margin: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;"><span class="crayon-c" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #ff8000 !important;">// ************************************************</span></div>
                     <div class="crayon-line crayon-striped-line" id="crayon-5cc2ab8ce4599691021543-2" style="box-sizing: inherit; font-family: inherit; border: 0px; padding: 0px 5px; margin: 0px; height: inherit; background: rgb(247, 247, 247) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;"><span class="crayon-c" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #ff8000 !important;">// Write floating point values to EEPROM</span></div>
                     <div class="crayon-line" id="crayon-5cc2ab8ce4599691021543-3" style="box-sizing: inherit; font-family: inherit; background: 0px center; border: 0px; padding: 0px 5px; margin: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;"><span class="crayon-c" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #ff8000 !important;">// ************************************************</span></div>
                     <div class="crayon-line crayon-striped-line" id="crayon-5cc2ab8ce4599691021543-4" style="box-sizing: inherit; font-family: inherit; border: 0px; padding: 0px 5px; margin: 0px; height: inherit; background: rgb(247, 247, 247) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;"><span class="crayon-t" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #800080 !important;">void</span><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;"></span><span class="crayon-e" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #004ed0 !important;">EEPROM_writeDouble</span><span class="crayon-sy" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #333333 !important;">(</span><span class="crayon-t" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #800080 !important;">int</span><span class="crayon-h" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #006fe0 !important;"></span><span class="crayon-v" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: #002d7a !important;">address</span><span class="crayon-sy" style="box-sizing: inherit; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weigh