Что мне делать с StackOverflow при ошибке компиляции?

У меня нет порта, но когда я хочу скомпилировать свой код (даже пустые файлы), Я сталкиваюсь с этой ошибкой:

Sketch uses 444 bytes (1%) of program storage space. Maximum is 32256 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes.

Код таков:

int LED_red=4;
int LED_yellow =2;
int green =0;

void setup() {
  // put your setup code here, to run once:
  pinMode(LED_red,OUTPUT);
  pinMode(LED_yellow,OUTPUT);
  pinMode(green,OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(LED_red,HIGH);
  digitalWrite(LED_yellow,LOW);
  digitalWrite(green ,LOW);
  delay(5000);
  digitalWrite(LED_yellow,HIGH);
  digitalWrite(LED_red,LOW);
  digitalWrite(green,LOW);
  delay(5000);
  digitalWrite(green,HIGH);
  digitalWrite(LED_yellow,LOW);
  digitalWrite(LED_red,LOW);
  delay(5000);
}
Sketch uses 998 bytes (3%) of program storage space. Maximum is 32256 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes.

Мне нужен шестнадцатеричный адрес для связывания этого кода с Proteus, но он не компилируется и не дает мне шестнадцатеричный адрес.

, 👍0

Обсуждение

Я не думаю, что это ошибка. Это похоже на отчет о том, сколько ресурсов целевых процессоров вы используете. Судя по всему, ваша программа очень мала и, безусловно, будет соответствовать выбранному вами целевому процессору., @st2000

Где находится переполнение стека, о котором вы упоминаете в названии своего вопроса? Как отмечали другие, ваша “ошибка” - это просто сводка, сгенерированная после успешной компиляции вашего кода, а не фактическая ошибка., @StarCat

В чем именно заключается проблема? Как уже много раз упоминалось, **ваш код отлично компилируется** в соответствии с выводом, который вы показали. Вы не показываете нам никаких признаков проблемы. Что означает “Мне нужен шестнадцатеричный адрес для связывания этого кода с Proteus”? Какой шестнадцатеричный адрес? Вы пытаетесь сделать это с помощью Proteus или с помощью Arduino IDE?, @StarCat


4 ответа


0

То, что вы видите, не является ошибкой.

Хотя ваш скетч пуст, с его помощью создается код платформы Arduino. Этот код фактически вызывает ваши функции setup() и loop (), чтобы все работало так, как вы ожидали. Он был разработан таким образом, чтобы облегчить начало работы.

,

спасибо , но я не знаю, что делать, не могли бы вы помочь мне еще раз, пожалуйста, и сказали мне, что делать, @dorsa

@dorsa, вам не нужно ничего делать, кроме как загружать свой код в Arduino. Пожалуйста, следуйте учебнику, в котором объясняются основы работы среды разработки Arduino, например [этот](https://www.arduino.cc/en/Guide/ArduinoUno)., @StarCat


1

Здесь нечего делать.

То, что вы видите, не является ошибкой. Это всего лишь информационное сообщение, сообщающее вам, сколько доступных ресурсов использует ваш скетч. Поскольку он использует гораздо меньше, чем максимально доступный (как и следовало ожидать от пустого скетча), у вас нет проблем.

Вам нужно беспокоиться об этих цифрах только тогда, когда "оставшаяся сумма" становится слишком маленькой.

,

танков много , но мне нужен адрес hxe для согласования этого кода с Proteus, но он не компилируется и не указывает мне адрес hxe ; не могли бы вы сказать мне, что мне делать, пожалуйста?, @dorsa

@dorsa Какой код? Что именно ты пытаешься сделать?, @Majenko

int LED_red=4; int LED_yellow =2; int green =0; void setup() { pinMode(LED_red,OUTPUT); pinMode(LED_yellow,OUTPUT); pinMode(green,OUTPUT); } void loop() { digitalWrite(LED_red,HIGH); digitalWrite(LED_yellow,LOW); digitalWrite(green ,LOW); delay(5000); digitalWrite(LED_yellow,HIGH); digitalWrite(LED_red,LOW); digitalWrite(green,LOW); delay(5000); digitalWrite(green,HIGH); digitalWrite(LED_yellow,LOW); digitalWrite(LED_red,LOW); delay(5000); }, @dorsa

@dorsa Пожалуйста, не оставляйте код в комментариях. Отредактируйте свой вопрос и предоставьте *всю* информацию. Включая фактическую ошибку, которую вы получаете при попытке компиляции., @Majenko

Хорошо ,я сделаю это ; у тебя есть какие-нибудь идеи по этому поводу ?, @dorsa

@dorsa По-прежнему нет ошибки. В чем ваша реальная проблема?, @Majenko


2

Sketch использует 444 байта (1%) пространства для хранения программ. Максимум-32256 байт.
Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2039 байт для локальных переменных. Максимум-2048 байт.

Это не сообщение об ошибке. Скорее, это сообщение, которое является результатом успешной компиляции вашей пустой программы.

Sketch использует 998 байт (3%) пространства для хранения программ. Максимум-32256 байт.
Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2039 байт для локальных переменных. Максимум-2048 байт.

Это также не является сообщением об ошибке. Скорее, это сообщение, которое является результатом успешной компиляции вашей более существенной программы.

Чтобы экспортировать шестнадцатеричный файл из Arduino IDE для Proteus, перейдите по адресу:

  • Строка меню -> Скетч ->> Экспорт скомпилированного двоичного файла>>

Короткий путь-Ctrl+Alt+S.

Вы найдете файл .hex в том же каталоге, что и ваш скетч.

,

Танков много , ваш ответ был так полезен для меня!, @dorsa

@dorsa, спасибо. Если он отвечает на ваш вопрос, обязательно примите его, нажав на галочку слева от него., @tim


0

Вы можете изменить настройки процессора, выбрав Сервис-->Процессор-->Atmega328P(Загрузчик). Это решило мою проблему.

,

Пожалуйста, объясните, как это решает "проблему". Какое **ваше** сообщение об ошибке?, @Nick Gammon