Распределение памяти — Arduino

Я новичок в этом материале низкого уровня. В настоящее время я изучаю Arduino. В настоящее время я использую Arduino Mega 2560, и в нашем курсе мы практикуем управление памятью. Я профессионал в области управления памятью на ПК, но почему-то у меня возникают сумасшедшие проблемы в Arduino. Например:

У arduino есть 8192B, я пытаюсь переполнить его с помощью uint_16, поэтому я создал массив 8192/16, который равен 512.

uint16_t A[512+1];

Ну, я ожидал, что вызвать переполнение.

Что не так с моей концепцией?

1

Решение

Вы, кажется, путаете свои биты со своими байтами.

Если предположить, sizeof (uint16_t) равен 2 на Arduino, ваш массив из 513 16-разрядных целых чисел использует только 1026 байтов, что легко помещается.

3

Другие решения

Также в Arduino, когда память заполнена, вы не получаете никаких ошибок или предупреждений. Микроконтроллер просто перезагружается.

0

По вопросам рекламы [email protected]