Я новичок в этом материале низкого уровня. В настоящее время я изучаю Arduino. В настоящее время я использую Arduino Mega 2560, и в нашем курсе мы практикуем управление памятью. Я профессионал в области управления памятью на ПК, но почему-то у меня возникают сумасшедшие проблемы в Arduino. Например:
У arduino есть 8192B, я пытаюсь переполнить его с помощью uint_16, поэтому я создал массив 8192/16, который равен 512.
uint16_t A[512+1];
Ну, я ожидал, что вызвать переполнение.
Что не так с моей концепцией?
Вы, кажется, путаете свои биты со своими байтами.
Если предположить, sizeof (uint16_t)
равен 2 на Arduino, ваш массив из 513 16-разрядных целых чисел использует только 1026 байтов, что легко помещается.
Также в Arduino, когда память заполнена, вы не получаете никаких ошибок или предупреждений. Микроконтроллер просто перезагружается.