ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
478674 Топик полностью
VVB (08.01.2014 14:14, просмотров: 563) ответил fk0 на У вас дичайшая каша в голове. Библиотеки содержатся в виде библиотек. Т.е. при компоновке в них находятся нужные функции (отдельные .o файлы в архиве .a библиотеки, содержащие буквально отдельную функцию) и компонуются к проекту. Соответственно,
По пунктам. 1. >Очевидно же, например, что если определения своих new и delete вставить в файл с main(), то действовать будет на всю программу, в т.ч. на библиотечные функции. С каких это щей? Ведь конструктор std::cout вызывается до запуска main и соответствующего переопределения new. Я сам писал код вызова конструкторов для статически объявленных и глобальных объектов для ARM7TDMI, наработки взял вот отсюда https://github.com/ckormanyos на основе http://www.springe …book/978-3-642-34687-3 (в книге приведён устаревший код, в репозитории более правильный). 2. "приплетение STL" STL прямо касается поднятой в начальном топике темы, потому что можно написать свой аллокатор памяти и разместить всю требуемую для контейнеров память в стеке задачи (через массив в стеке). "Куча" не будет трогаться. Что есть круто и устраняет вообще все проблемы с использованием MPU при использовании STL. 3. стартапный код на ассемблере для GCC для ARM7TDMI я писал и знаю, как выделяется динамическая память и как связывается с CRT. Не так давно я здесь тему поднимал насчёт newlib и _sbrk, вы же мне в ней и отвечали (касалось использования ассемблерных команд для связи сишной переменной и регистра стека). 4. последний абзац очевиден при использовании двух операционок, я так и думал, и более просто не сделать.