Это мой первый пост, и он освещает то, над чем я пытался работать и выключать уже около года.
По сути, это сводится к следующему: у меня есть копияnewlib, которую я пытаюсь заставить работать над LPC2388 (ARM7TDMI от NXP).Это на linux box с использованием arm-elf-gcc
У меня есть вопрос, что я смотрел много уроков, посвященных портированию newlib, и все они рассказывают о заглушках (например, exit, open, read / write, sbrk), и у меня есть довольно хорошее представление о том, как реализовать все эти функции.Но где я должен их поместить?
У меня есть дистрибутив newlib из sources.redhat.com/pub/newlib/newlib-1.18.0.tar.gz и после того, как я покопался, я нашел"syscalls.c" (в newlib-1.18.0 / newlib / libc / sys / arm), который содержит все заглушки, которые мне нужно обновить, но все они заполнены довольно законченным кодом (который делает НЕ , кажется, работает без crt0.S, который сам по себе не работает с моим чипом.
Должен ли я просто уничтожить эти функции и переписать их?Или я должен написать их где-нибудь еще.Должен ли я создать совершенно новую папку в newlib / libc / sys с именем моей «архитектуры» и изменить цель на соответствующую?
Мне также любопытно, есть ли соответствующий этикет для распространения чего-то подобного послевыпустив его как проект с открытым исходным кодом.В настоящее время у меня есть скрипт, который загружает binutils, arm-elf-gcc, newlib и gdb и компилирует их.Если я изменяю файлы, которые находятся в каталоге newlib, я должен передать патч, который автоматически применяется моим сценарием?Или я должен добавить измененный newlib в репозиторий?
Спасибо, что удосужились прочитать!Ниже приведено более подробное описание того, что я делаю.
Для тех, кто хочет / нуждается в дополнительной информации о моей настройке:
Я строю консоль ARM для видеоигр на основесвободно в проекте Uzebox (http://belogic.com/uzebox/).
Я делал все возможное, используя разные ресурсы, пытаясь понять это.Вы можете прочитать о начале моих приключений здесь (форумы sparkfun, никто не отвечает, как я сам в этом разбираюсь): forum.sparkfun.com/viewtopic.php?f=11&t=22072
Я следовалвсе это, прочитав вопросы Stackoverflow о портировании newlib и увидев несколько различных руководств (например, wiki.osdev.org/Porting_Newlib), но они также страдают от того, что рассказывают мне о реализации заглушек, не упоминая где, кто, что, когдаили как!