Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:0
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Embedded Linux
компиляция программ и их перенос на плату
Novichok
Добавлено 21.07.2010 11:25 Сообщение: 21
Novichok
5

Пункты: 36
Регистрация: 08.07.2010
я там выше редактировал сообщение, посмотрите пож-та
Спуститься к концу Подняться к началу
Персональная информация
Valentinus
Добавлено 21.07.2010 13:20 Редактировалось 21.07.2010 21:54 Сообщение: 22
Valentinus
4

Пункты: 2138
Регистрация: 23.01.2010
Пол: Мужчина
Цитата
я там выше редактировал сообщение, посмотрите пож-та


странно .. сначала я думал что в make удалил нечаянно нужную строку, для создания OBJ, но потом заметил что компиляция объектника объединена с линковкой исполяемого файла :-/

PS я так понимаю, Вы в Linux-программировании новичок? я советую вам приобрести книгу "Программирование в Linux. Профессиональный подход" (Марк Митчелл, Джеффри Оулдем, Алекс Самьюэл). Она небольшая, чуть больше 200 страниц, но там очень просто объясняются многие вещи, причем практически "с нуля" начиная от компиляции и отладки, до конкретных примеров реализации различных вещей типа, связи через сокеты или многопоточности. Попробуйте купить именно бумажную, потому что единственный электронный скан этой книги в тырнете очень отвратного качества.
Спуститься к концу Подняться к началу
Персональная информация
Lavin
Добавлено 21.07.2010 14:17 Сообщение: 23
Lavin
2.4

Пункты: 1267
Регистрация: 22.05.2009
Пол: Мужчина
Из: Москва
Более подходящей темы ненашел.Решил я все же разобраться со spi на плате.Начал писать и наткнулся на следующее
test_spi.c
Код

#include <linux/spi/spi.h>
#include <stdio.h>

int main()
{
printf("hello word\r\n");
return 0;
}

Компилятор начинает ругаться на /spi/spi.h мол много чего не знаю-
Код

/usr/src/linux-headers-2.6.26-1-common/include/linux/spi/spi.h:100: warning: implicit declaration of function ‘container_of’
/usr/src/linux-headers-2.6.26-1-common/include/linux/spi/spi.h:100: error: expected expression before ‘struct’
/usr/src/linux-headers-2.6.26-1-common/include/linux/spi/spi.h:100: error: ‘NULL’ undeclared (first use in this function)

это не все...
открываю spi.h и понимаю что надо что то доинклюдить что бы компилятор узнал о структурах и типах так исполюзуемых но не знаю что надо добавить...
Собираю так
Код
gcc -I/usr/src/linux-headers-2.6.26-1-common/include -O2 -Wall -march=armv5te -mtune=arm926ej-s -s -ffunction-sections -fdata-sections -c test_spi.c
Спуститься к концу Подняться к началу
Персональная информация
Novichok
Добавлено 21.07.2010 16:50 Редактировалось 21.07.2010 16:54 Сообщение: 24
Novichok
5

Пункты: 36
Регистрация: 08.07.2010
Цитата
Более подходящей темы ненашел.

твой вопрос по адресу, так как мне тоже предстоит работать с SPI (и CAN), и кстати зачем ты юзаешь SPI для Хелло Ворлд?
я просто мало знаю про него, для чего он используется?

Цитата
*обновлено !!!!
странно .. сначала я думал что в make удалил нечаянно нужную строку, для создания OBJ, но потом заметил что компиляция объектника объединена с линковкой исполяемого файла :-/

на всякий случай добавил и явное правило для объектника, архив с примером заменил, скачайте, попробуйте.

спасибо, все отлично работает, это я забыл поправить в Мэйкфайле имя Hello на Hello2 :)
поэтому и вышла такая ошибка:)
Спуститься к концу Подняться к началу
Персональная информация
Valentinus
Добавлено 21.07.2010 21:52 Сообщение: 25
Valentinus
4

Пункты: 2138
Регистрация: 23.01.2010
Пол: Мужчина
Цитата
Более подходящей темы ненашел.Решил я все же разобраться со spi на плате.Начал писать и ...

попробуйте взять за основу hello_world на предыдущей странице
Спуститься к концу Подняться к началу
Персональная информация
Lavin
Добавлено 21.07.2010 22:01 Редактировалось 21.07.2010 22:04 Сообщение: 26
Lavin
2.4

Пункты: 1267
Регистрация: 22.05.2009
Пол: Мужчина
Из: Москва
Хеллоу ворд что бы просто проверить найдет компилятор все или нет.Зачем писать что то сложнее на этапе проверки всех заголовков и путей?
SPI использую потому что если через GPIO подключать экран то процессор забивается на 100% при 10фпс..Больше экран вродебы не позволяет.Переходник на меге склепал.Заодно и инициализацию туда перенес.
Я сам только приблезительно знаю как с ним в линухе работать.И незнаю какие пути надо для этого прописывать.Может гуру помогут?
Так на предыдущей странице просто хеллоу ворд без того как подключить заголовочный файл для спи.Да и потом,я же на плате компилирую,а не на бб.
Спуститься к концу Подняться к началу
Персональная информация
Valentinus
Добавлено 21.07.2010 23:13 Сообщение: 27
Valentinus
4

Пункты: 2138
Регистрация: 23.01.2010
Пол: Мужчина
Цитата
Хеллоу ворд что бы просто проверить найдет компилятор все или нет.Зачем писать что то сложнее на этапе проверки всех заголовков и путей?
...
Так на предыдущей странице просто хеллоу ворд без того как подключить заголовочный файл для спи.Да и потом,я же на плате компилирую,а не на бб.

я предложил взять 100%- рабочий минимальный проект, и добавляйте в него на здоровье все что нужно. просто чтобы быть уверенным что, вы не ошиблись при запуске компилятора вручную и т.п.

PS вы что, сделали образ для кита с средствами разработки, исходными текстами и библиотеками?!
Спуститься к концу Подняться к началу
Персональная информация
Lavin
Добавлено 21.07.2010 23:56 Сообщение: 28
Lavin
2.4

Пункты: 1267
Регистрация: 22.05.2009
Пол: Мужчина
Из: Москва
У меня и так все работает если убрать инклюд с /spi/spi.h.
Я сам все собирал.С диска из комплекта ничего не брал.Нашел кросс компиляторы,скачал с кернал.орг 2.6.34 ядро,собрал его,собрал root fs для дебиана,загрузился поставил уже на плате apt-get ом gcc и хидеры...
Спуститься к концу Подняться к началу
Персональная информация
Valentinus
Добавлено 22.07.2010 09:51 Сообщение: 29
Valentinus
4

Пункты: 2138
Регистрация: 23.01.2010
Пол: Мужчина
Цитата
У меня и так все работает если убрать инклюд с /spi/spi.h.

вообще все заголовочные фалы (*.h) самодостаточны, то есть все что им нужно подключают внутри себя сами. единственное что - возможно вы цепляете spi.h не от той библиотеки, например от at91lib (которая в общем-то сделана для stand-alone программ), либо не все include-пути прописаны в опциях

насчет spi - попробуйте поискать примеры на http://www.at91.com
Спуститься к концу Подняться к началу
Персональная информация
Lavin
Добавлено 22.07.2010 10:03 Редактировалось 22.07.2010 10:16 Сообщение: 30
Lavin
2.4

Пункты: 1267
Регистрация: 22.05.2009
Пол: Мужчина
Из: Москва
Все примеры которые я находил собираются вместе с ядром.Процесс сборки ядра для меня черный лес..Умею только конфигугрировать ядро и забирать бинарник..
Так вот.Решил идти от противного.Собственно для моего драйвера нужен примерно такой список инклюдов
Код

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/string.h>
#include <linux/mm.h>
#include <linux/slab.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/kthread.h>
#include <linux/fb.h>
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/spi/spi.h>
#include <linux/uaccess.h>
#include <mach/gpio.h>

вот если #include <linux/kernel.h> только написать все собирается хорошо,а если #include <linux/module.h> прибавить еще то куча ошибок сыпится.Что то мне подсказывает что в технологии у меня где то ошибка..Или за инклюды надо взять папочку с исходниками своего ядра?
Поэксперементировав установил,какие заголовочные файлы компилятор нормально съедает,а на какие плюется..
Код

#include <stdio.h>
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/string.h>
#include <linux/mm.h>
#include <linux/delay.h>
#include <linux/kthread.h>
#include <linux/fb.h>
#include <linux/init.h>
//#include <linux/platform_device.h>
//#include <linux/spi/spi.h>
//#include <linux/uaccess.h>

может кто знает в чем дело?
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux