10.7.4 Ограничения на память

Предыдущая  Содержание  Следующая V*D*V

uClinux не обеспечивает динамический стек. Исполняемые приложения имеют заранее заданный размер стека, установленный во время компиляции с помощью elf2flt. Программисты должны избежать больших выделений памяти на стеке. Вместо этого используйте "кучу" или, если требование не является динамическим, переместите его в раздел bss.

Программы C++ используют malloc даже для деклараций встроенных типов данных через оператор new. Многие приложения,  написанные на C++, имеют проблемы с запуском на uClinux. Отсутствие MMU и интеллектуального malloc приводит к неразрешимой проблеме фрагментации памяти, что делает систему бесполезной. Следовательно, C++ не рекомендуется на системе без MMU. Изменяйте любое приложение, которое должно выделять малые куски памяти через malloc или, если возможно, пишите зависимые от приложения методы распределения памяти, которые будут сами управлять заранее выделенной областью памяти.

 

Предыдущая  Содержание  Следующая