там есть одна тонкость - команды должны быть предварены двойной табуляцией.
если в mc makefile открыть по F4, то отступы красным видно, например перед "$(CC) $(LDFLAGS) .....".
а когда сюда на форум копируешь , отступы не видны :)
Если отступ не делать, или вместо двух Tab нажать один, то будет ругаться "пропущен разделитель".
насчет tftp
в последних образах базибокс собран уже с ним.
загрузка командой
tftp -g -r myprog 192.168.0.2
где myprog- файл программы
192.168.0.2 - адрес виртуалки, где в /tftpboot лежит ваша прога
итак: простейшая программа Hello World! скомпилирована без всяких мэйкфайлов компилятором arm-none-linux-gnueabi-gcc, получили бинарник my1.out
так как на плате не работал tftp, покопались в конфиге BusyBox, включили то что нужно, пересобрали его и файловую систему. Затем перекомпилили ядро и перезалили на плату. Итак tftp работает.
Далее загрузили по tftp наш бинарник my1.out из папки /tftpboot и попытались запустить, но получаем такую ошибку:
и вопрос номер два: после перезагрузки платы наш my1.out пропадает (как будто он лежал только в ОЗУ), следовательно вопрос, что делать чтобы сохранить прогу на плате?
спасибо большое, обязательно почитаю
мы делали также, только вместо -r писали -l , не знаю почему:)) хотя файл перекинулся, это принципиальная разница?
что-то-там.out - это файл для промежуточного вывода
если компилировали что-то-там.с, то ищите рядом файл что-то-там без расширения - если посмотреть его из MC кнопкой F3, то будет написано в начале ARM архитектура, статический и тыпы..
вот его и тащите на плату
чтобы файл не пропадал скопируйте его на внешний носитель типа SD/MMC или USB Flash. иначе он принимается программой tftp и попадает в ОЗУ, откуда при выключение благополучно пропадает..
на стандартной плате кита при отсутствие внешних накопителей существует единственный вариант - Serial Flash или Nand, на чипе любого из них можно организовать долговременное энергонезависимое хранилище файлов..
но на первое время лучше купить наидешевейшую SD или USB флешку. ибо по незнанию вполне можно "запилить" (испортить) набортные флеши..
дело в том, что на нашей плате только один разъем USB 2.0 и он используется для питания платы от ПК, следовательно нет возможности подключить USB Flash, поэтому придется покупать SD
плохая идея - питать плату от порта. я бы посоветовал нормальный блок питания
а USB использовать по назначению
вместо покупки SD можно обойтись бюджетно гоняя файлы по сети Ethernet..
в файле make проверьте пути к исходникам ядра (там еще остались кое-какие лишние вам опции, но они вам не помешают)
компилируете командой make (все-таки удобней, чем вручную компилятор вызывать)
потом копируете hello в /tftpboot
дальше в консоли кита:
после загрузки файловая система распаковывается в ОЗУ, и чтобы вы в ней не делали, после перезагрузки ничего не сохранится.
чтобы программу сохранить, перед ее загрузкой перейдите на NAND, котрая при загрузке монтируется как раздел диска (cd /mnt/nand), если она есть на вашем ките, или на MMC(SD).
благодарствую:)
т.е. как я понимаю этот мэйкфайл можно использовать и для написания других приложений на этом же языке?
да, кстати, не подскажете, в какой среде писать проги? может есть специальная среда под ARM чтобы писать на С++ ? потому что я смотрю, в вашей проге какие то странные библиотеки :)
ага, опять траблы... взял ваш Мэйк, изменил путь до библиотек на свой (но причина не в этом точно) и получили такую ошибку при сборке:
make: *** Нет правила для сборки цели 'hello.o', требуемой для 'hello'. Останов.
версия make 3.80
такое подозрение, что все дело в make...
можно даже MS VisualStudio использовать - в том файле ссылку на который давал вчера есть мессадж про настройку (там исходных скриптов нет, но их уж на форуме сами найдете, по тексту мессаджа)