Jump to content

    

GeneralProger

Участник
  • Content Count

    8
  • Joined

  • Last visited

Community Reputation

0 Обычный
  1. Как работать с GPIO под Linux?

    Цитата(Jury093 @ Jul 20 2016, 12:01) чем смотрели? что пишет в ответ: Кодfile hello.s в корне фтп лежит файл ftp.catalog-6-27-8.txt поищите в нем.. там мелькает типа ./tmp/gcc-3.2.3-glibc-2.2.5.tar.gz вроде видел исходники ядра у вас же х86 архитектура, в теории можно нативно собирать на обычном компе исполнимые бинарники, надо только с библиотеками внимательно разобраться.. Вообщем с gcc вроде решилось с помощью toolchain, а по поводу отрывка кода что вы мне скинули, я все-равно не понимаю: ioperm(0x7A,4,1) это получение прав на работу или что? Описания атрибутов я не нашел, что значит from, num и turn_on? Я так предполагаю что from это начало, num количество после from, но как во всем это ориентироваться? В инструкции TS написано: 7Bh R/W DIO1_0 thru DIO1_7 (Bits 0-7) 7Ch R/W DIO1_8 thru DIO1_13 (Bits 0-5) Значит получается, что мы получаем права на работу с ножками DIO от 0 до 7 при вызове ioperm(0x7B,1,1)? А это что: Кодioval = inb(0x7a); ioval = ioval & 0xFE; outb(ioval, 0x7A); Мы через inb(0x7B); в моем случае выбираем диапазон DIO от 0 до 7, потом приписав ioval = ioval & 0xFE; прыгаем на какую-то ножку из диапазона 0-7 задав ее номер 0xFE?? Что же тогда значит outb(ioval, 0x7A);, я совсем уже не догадываюсь
  2. Как работать с GPIO под Linux?

    Цитата(Jury093 @ Jul 19 2016, 19:29) судя по тексту в pdf, там все непросто для программирования, типа One problem developers run into is missing libraries. The complete set of unstripped glibc 2.2.5 libraries used by all TSLinux SBCs, can be found on the Technologic Systems website. The file is named entire.libs.dir.tar.bz2. Another common problem is mismatched library versions, between the developer's desktop and the target SBC. In these cases, the problem can be solved by explicitly linking against the unpacked entire.libs.dir.tar.bz2 tarball. сходите на сайт производителя https://www.embeddedarm.com/embedded-develo...t/downloads.php там растет линк на фтп ftp://ftp.embeddedarm.com/ts-x86-sbc поищите там make и gcc Нашел этот архив, распаковал, создалась папка /usr/lib/gcc-lib/i386-pc-linux-gnu/2.95.3 со следующим содержимым: include/ cc1plus crtbeginS.o libgcc.a collect2 crtend.o libstdc++.a SYSCALLS.c.X cpp0 crtendS.olibstdc++.so cc1 crtbegin.o specs Попытался скормить исходник C++ файлам выделенным выше, все, как один при скармливании hello.cc выдают на выходе hello.s с содержимым похожим на гибрид sh и ассемблера. Я так понял это какие-то утилиты для самого gcc, только где его искать вопрос остается открытым. Да и библиотеку libc он не обновил, так 2.2.5 и осталась. Поиски make успехом пока не увенчались, сам отдельно gcc есть вроде лежит на ftp в нескольких версиях, но вроде все это не под эту плату, искал разное по названию платы, но там только различные образы DOS, BIOS, Linux нашлись
  3. Как работать с GPIO под Linux?

    Цитата(Jury093 @ Jul 18 2016, 18:13) гугленье - свет, а негугленье - тьма.. вот вам пример (ссылка, параграф 4.2): Код#include <stdio.h> #include <sys/io.h> int main() { if (ioperm(0x7A,4,1)<0){ printf(“Error\n”); return -1; } //set pins0 to 3 to inputs ioval=inb(0x7a); ioval= ioval & 0xFE; outb(ioval, 0x7A); return 0; } Знаете, что самое интересное, я никак не могу установить компилятор gcc на свой linux, ни одна инструкция не подходит, нету make, пробовал использовать Java даже с горя, но ее как я понял на мою i486 архитектуру не существует в природе, пытался скомпилировать файл на Linux на компьютере, но он ругается на и работать не хочет (наверное из-за другой архитектуры ОС на которой был скомпилирован), вообщем даже это уже огромная проблема, не знаю даже что и делать.
  4. Как работать с GPIO под Linux?

    Цитата(Jury093 @ Jul 17 2016, 08:50) конечно тупанули, по вашей ссылке есть область адресов: Код074h - 07Fh      DIO and Control registers и ниже таблица описания.. прочитайте содержимое по адресу 0x74, должны считать значение 0x50: Код74h      Read      Product Code 50h = Product Code for TS-5300 если ваша система "знает" о наличии этих портов, то карта адресов будет видна либо Кодcat /proc/iomem либо Кодcat /proc/ioports Файл /proc/ioports выше, а файл /proc/iomem вот: Код00000000-0009e3ff : System RAM 0009e400-0009ffff : reserved 000a0000-000bffff : Video RAM area 000f0000-000fffff : System ROM 00100000-01ffffff : System RAM   00100000-0022aacd : Kernel code   0022aace-002719c3 : Kernel data fff00000-ffffffff : reserved Вот вы говорите прочитать содержимое, а какой командой вообще обращения к портам ввода вывода по адресам такого вида осуществляется? Я смотрел в интернете как обращаться по этому байтному адресу надо, но там везде требуются какие-то пакеты которые вообще отказываются устанавливаться на эту версию Linux и все примеры разнятся. Вы не могли бы привести пример?
  5. Как работать с GPIO под Linux?

    Я в принципе уже сам понял что тупанул и rtc это совсем не то
  6. Как работать с GPIO под Linux?

    Почитал в интернете по обращению к портам ввода вывода и нашел файл /proc/ioports Со следующем содержимым: Код0000-000f : dma1 0020-0021 : pic1 0040-0043 : timer 0070-007f : rtc 0080-008f : dma page reg 00a0-00a1 : pic2 00c0-00df : dma2 00f0-00ff : fpu 01f0-01f7 : ide0 02f8-02ff : serial(auto) 0300-030f : eth0 03f6-03f6 : ide0 03f8-03ff : serial(auto) 0cf8-0cff : PCI conf1 По инструкции порты DIO висят на 074h - 07Fh, значит если я правильно понимаю к ним относится эта строчка: Код0070-007f : rtc И выходит что на эти порты есть драйвер /dev/rtc через который можно будет с ними работать?
  7. Как работать с GPIO под Linux?

    Цитата(mantech @ Jul 16 2016, 08:14) Первое - читайте документацию на ваш компьютер. Это не АРМ, а стандартный х86 процессор. Второе - Линукс с "пол-оборота" не осваивается, это достаточно сложная система, по сравнению с АВР программированием. Третье - Не вижу смысла в данной задаче вообще его использовать, у вас РС-совместимая машина, берете любой компилятор, на вроде Watcom C, под MS-DOS и пишите свою прогу. Если нужно много памяти, используйте dos-4gw. Ну и напоследок - если уж все-таки хотите влезть в линукс - сначала почитайте о нем по-подробнее... Может я конечно чего-то не понимаю, но я почитал wiki по ссылке которая ведет на этот компьютер, а документации по разработке на них не увидел. А относительно MS-DOS тема для меня еще менее ясная чем linux, туда мне лезть еще более страшней. Я пытался найти какую-то информацию, но даже не знаю как мне составить поисковый вопрос, пытался запрашивать gpio linux example и подобного рода, но что-то все совсем не то, может подскажете как мне правильно сформулировать запрос поисковику для решения моей задачи? Цитата(1113 @ Jul 16 2016, 09:40) какая версия ядра? По команде uname -mrs выводит: Linux 2.4.31 i486
  8. Как работать с GPIO под Linux?

    Здравствуйте! Заранее предупреждаю, что это первый раз когда я имею дело с микрокомпьютерами, раньше работал только с AVR и для меня тема программирования из под Linux темный лес, так что прошу сильно не бить, если я написал не туда или задаю очевидные/глупые/неправильно сформулированные вопросы. Имеется плата http://wiki.embeddedarm.com/wiki/TS-5300, хочу использовать ее как Arduino (т.е. иметь возможность подавать и снимать питание с определенных ножек), почитав в интернете конкретно про такой тип микрокомпьютеров я примерно предположил что под мои цели на данной плате могут подойти выходы DIO1 и DIO2. Как вообще к ним обратиться из под Linux и задать им какое-то состояние? Нашел в интернете какие-то примеры обращения через файл /sys/dio, но в версии Linux которая стоит на этом микрокомпьютере не то что такого файла нету, папка sys вообще не существует. Что мне делать что бы выполнить хотя бы такую задачу и вообще возможно ли это?