странно .. сначала я думал что в make удалил нечаянно нужную строку, для создания OBJ, но потом заметил что компиляция объектника объединена с линковкой исполяемого файла :-/
PS я так понимаю, Вы в Linux-программировании новичок? я советую вам приобрести книгу "Программирование в Linux. Профессиональный подход" (Марк Митчелл, Джеффри Оулдем, Алекс Самьюэл). Она небольшая, чуть больше 200 страниц, но там очень просто объясняются многие вещи, причем практически "с нуля" начиная от компиляции и отладки, до конкретных примеров реализации различных вещей типа, связи через сокеты или многопоточности. Попробуйте купить именно бумажную, потому что единственный электронный скан этой книги в тырнете очень отвратного качества.
Более подходящей темы ненашел.Решил я все же разобраться со spi на плате.Начал писать и наткнулся на следующее
test_spi.c
Компилятор начинает ругаться на /spi/spi.h мол много чего не знаю-
это не все...
открываю spi.h и понимаю что надо что то доинклюдить что бы компилятор узнал о структурах и типах так исполюзуемых но не знаю что надо добавить...
Собираю так
твой вопрос по адресу, так как мне тоже предстоит работать с SPI (и CAN), и кстати зачем ты юзаешь SPI для Хелло Ворлд?
я просто мало знаю про него, для чего он используется?
спасибо, все отлично работает, это я забыл поправить в Мэйкфайле имя Hello на Hello2 :)
поэтому и вышла такая ошибка:)
Хеллоу ворд что бы просто проверить найдет компилятор все или нет.Зачем писать что то сложнее на этапе проверки всех заголовков и путей?
SPI использую потому что если через GPIO подключать экран то процессор забивается на 100% при 10фпс..Больше экран вродебы не позволяет.Переходник на меге склепал.Заодно и инициализацию туда перенес.
Я сам только приблезительно знаю как с ним в линухе работать.И незнаю какие пути надо для этого прописывать.Может гуру помогут?
Так на предыдущей странице просто хеллоу ворд без того как подключить заголовочный файл для спи.Да и потом,я же на плате компилирую,а не на бб.
я предложил взять 100%- рабочий минимальный проект, и добавляйте в него на здоровье все что нужно. просто чтобы быть уверенным что, вы не ошиблись при запуске компилятора вручную и т.п.
PS вы что, сделали образ для кита с средствами разработки, исходными текстами и библиотеками?!
У меня и так все работает если убрать инклюд с /spi/spi.h.
Я сам все собирал.С диска из комплекта ничего не брал.Нашел кросс компиляторы,скачал с кернал.орг 2.6.34 ядро,собрал его,собрал root fs для дебиана,загрузился поставил уже на плате apt-get ом gcc и хидеры...
вообще все заголовочные фалы (*.h) самодостаточны, то есть все что им нужно подключают внутри себя сами. единственное что - возможно вы цепляете spi.h не от той библиотеки, например от at91lib (которая в общем-то сделана для stand-alone программ), либо не все include-пути прописаны в опциях
Все примеры которые я находил собираются вместе с ядром.Процесс сборки ядра для меня черный лес..Умею только конфигугрировать ядро и забирать бинарник..
Так вот.Решил идти от противного.Собственно для моего драйвера нужен примерно такой список инклюдов
вот если #include <linux/kernel.h> только написать все собирается хорошо,а если #include <linux/module.h> прибавить еще то куча ошибок сыпится.Что то мне подсказывает что в технологии у меня где то ошибка..Или за инклюды надо взять папочку с исходниками своего ядра?
Поэксперементировав установил,какие заголовочные файлы компилятор нормально съедает,а на какие плюется..