나는 상당히 큰 Arduino 프로젝트 (Eclipse에서)를 사용하여 디버깅 메시지를 Serial.print ("some string text") 명령을 사용하여 계속 디버깅 할 수있다.Arduino : SRAM을 점유하는 Serial.print ("일부 문자열 텍스트") 명령이 있습니까?
내가 알아 채는 한 가지는 내가 프로젝트에서 가질 수있는 수의 한계에 도달한다는 것입니다. 내가 너무 많은 것을 넣으면, 프로그램은 아주 이상한 곳에서 멈춘다. 예 : 인쇄 명령을 새로 추가하기 전에 종종 오래 실행됩니다.
내 프로젝트 .hex 파일은 현재 약 20k입니다. Arduino Uno는 약 30kb를 올바르게 제한합니까? 너무 커서는 안됩니다.
그래서 실제 문제가 아마도 이러한 일련의 명령이 내 벼락치기를 가득 채우고 있다고 생각합니다. 어느 것이 2kb입니다. 나는 많은 라이브러리를 사용하고있다.
SRAM을 점유하는 Serial.print ("some string text") 명령이 있습니까? 확실히 gcc는이 문자열을 프로그램 공간에 넣습니다. 하지만 어쩌면 그들은 아닌가요?
아니면 다른가요? 나는 어딘가에 serial.print 버퍼가 있다는 대체 이론을 가지고 있으며 아마도 너무 많은 메시지를 채울 것이다.
+1. 방금 AVR에 대해 동일한 문제가있었습니다. 그러나 플래시에서 읽기가 RAM보다 느리기 때문에 RAM에서 가장 필요한 문자열을 유지할 수있는 균형점을 찾을 수도 있습니다. – glglgl
감사합니다. 알고있는 것도 좋습니다. 왜 SRAM에서 기본적으로 빠져 나가지 않는지 설명합니다. – SpiRail
이것이 유일한 이유는 아닙니다. RAM 접근은 훨씬 쉽습니다. Flash에 자주 액세스하려면 추가 작업이 필요합니다. – glglgl