архитектуры arm, avr

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Re: архитектуры arm, avr

Сообщение kipar » 09.08.2011 23:33:58

Для встраиваемых решений и прочих пультов есть Windows Embedded. Это винда, из которой можно выкидывать все что душа пожелает, совершенно легально, вплоть до голой консоли.
kipar
новенький
 
Сообщения: 78
Зарегистрирован: 04.03.2010 12:15:54

Re: архитектуры arm, avr

Сообщение .wOvAN » 10.08.2011 02:31:02

Вы не можете выкинуть то, что вам не нужно из Win.
О Windows Embedded слышали?

непомерно раздутое и неповоротливое ядро
Вот оно как. Я тут искал ОСЬ под старый ноутбук с 128 Памяти и процем П3 700Мгц, перепробовал кучу линупсовых недоделок более или менее приличной оказалась Lubunta но и ту по всем параметрам побил Windows XP, так как более экономно использовал системные ресурсы, кажется всего 50 мег оперативы. (всякое убогое и неюзабельное, вырвиглазное типа ноппиксов не в счет)

По поводу темы, поскольку арм сейчас в основном живет в мобильно-планшетной сфере, то там традиционные приложения малоюзабельны из-за необходимости в управлении мультач и жестами, так что их так или иначе надо модифицировать.
.wOvAN
постоялец
 
Сообщения: 118
Зарегистрирован: 16.04.2010 06:36:12

Re: архитектуры arm, avr

Сообщение Sash0k » 10.08.2011 08:27:05

.wOvAN писал(а):О Windows Embedded слышали?

Слышал, но в том и дело, что только слышал. Купить её сложно:
  • на каждом углу не продается
  • штучно не купишь
  • цена
У GNU/Linux нет ни одной вышеперечисленной проблемы.

тут искал ОСЬ под старый ноутбук с 128 Памяти и процем П3 700Мгц, перепробовал кучу линупсовых недоделок

Казалось бы, причем тут linux kernel?

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

Тут вы правы, но мне интуиция подсказывает, что arm уже вполне пригоден для замены десктопного компьютера в его классическом понимании. Впрочем
  • сейчас им х86 полностью не заменить, и в ближайшем будущем тоже
  • как мне кажется, само понятие компьютера, как коробки на столе/под столом в будущем изменится в сторону мобильности/планшетности/интернетности/облачности.
Sash0k
новенький
 
Сообщения: 43
Зарегистрирован: 19.01.2009 11:39:27
Откуда: Вятка - Киров

Re: архитектуры arm, avr

Сообщение Ism » 10.08.2011 13:26:51

Все это прекрасно, но что дает arm кроме экономии энергии ?
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: архитектуры arm, avr

Сообщение SII » 10.08.2011 13:45:38

Удешевление самого процессора: более простую архитектуру и в кремнии реализовать проще. Кстати говоря, это же обеспечивает и более низкое энергопотребление, что для мобильных приложений чрезвычайно важно. Впрочем, воспользоваться преимуществами железа ещё надо суметь; вон, гуглофоны сажают аккумуляторы в режиме ожидания очень быстро (у самого такой), что, вполне может быть, связано как раз с низким качеством системы и порочностью самой концепции: лепить приложения исключительно на жабе (естественно, дотнет ничем не лучше в этом плане будет).
SII
новенький
 
Сообщения: 64
Зарегистрирован: 24.06.2007 17:15:09
Откуда: Зеленоград

Re: архитектуры arm, avr

Сообщение Sash0k » 10.08.2011 14:58:59

да, именно поэтому я и смотрю на них с интересом!
упрощение + удешевление + понижение энергозатрат = прогресс :)
Интересные хабростатьи: раз и два. арм-контроллеры уделывают пики с атмегами по производительности/цене/энергопотреблению.

В будущем это же будет со "старшими" камнями, ибо арм архитектура продуманней х86
Sash0k
новенький
 
Сообщения: 43
Зарегистрирован: 19.01.2009 11:39:27
Откуда: Вятка - Киров

Re: архитектуры arm, avr

Сообщение SII » 10.08.2011 17:16:27

Хотя всё равно довольно костыльная... Плохо они думали, когда Тумбу добавляли, например, из-за чего кучу нюансов в голове держать надо. Хотя в смысле маразматичности хуже ИА-32 только ПИК (во всяком случае, 16-разрядный).

А что уделывают, это точно. Более того, даже старые АРМы зачастую смотрятся очень неплохо по энергопотреблению в сравнении с теми же 8-разрядными АВРками, особенно если не забывать про разницу в производительности и уметь спать, когда работы нету.
SII
новенький
 
Сообщения: 64
Зарегистрирован: 24.06.2007 17:15:09
Откуда: Зеленоград

Re: архитектуры arm, avr

Сообщение Sash0k » 06.09.2011 15:17:11

Пытаюсь поднять кросскомпилятор, столкнулся с проблемой.

0) Рабочая машина: i686, Ubuntu 10.04.2 LTS
1) Взял отсюда собранный кросскомпилятор отсюда. Содержимое распаковал в /usr и сделал симлинк ppcrossarm в /usr/bin. Компилятор работает.
2) Набросал привет мир, компилится, но не собирается из-за отсутствия кросспакета binutils.
Код: Выделить всё
Free Pascal Compiler version 2.5.1 [2011/01/19] for arm
Copyright (c) 1993-2010 by Florian Klaempfl
Target OS: Linux for ARMEL
Compiling helloarm.pas
Assembling hello
helloarm.pas(3,24) Error: Assembler arm-linux-as not found, switching to external assembling
helloarm.pas(3,24) Fatal: There were 1 errors compiling module, stopping


В репозитарии убунты binutils для арм нету. Гугление тоже не помогло.
Где взять as, ar и прочие утилиты для кросскомпиляции с i386-linux в arm-linux ?
Либо буду благодарен ссылке на инструкцию по самостоятельной сборке (но тогда надо искать кросспакет arm-gcc %))
Sash0k
новенький
 
Сообщения: 43
Зарегистрирован: 19.01.2009 11:39:27
Откуда: Вятка - Киров

Re: архитектуры arm, avr

Сообщение Mr.Smart » 06.09.2011 17:02:28

Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: архитектуры arm, avr

Сообщение Sash0k » 09.09.2011 09:00:07

Mr.Smart, спасибо. binutils собрал. Но имею ошибку несовместимости версий EABI при линковке.
Код: Выделить всё
ppcrossarm helloarm.pas
Free Pascal Compiler version 2.5.1 [2011/01/19] for arm
Copyright (c) 1993-2010 by Florian Klaempfl
Target OS: Linux for ARMEL
Compiling helloarm.pas
Assembling hello
Linking helloarm
/usr/bin/arm-linux-ld: warning: link.res contains output sections; did you forget -T?
/usr/bin/arm-linux-ld: error: Source object helloarm.o has EABI version 0, but target helloarm has EABI version 5
/usr/bin/arm-linux-ld: failed to merge target specific data of file helloarm.o
helloarm.pas(3,24) Error: Error while linking
helloarm.pas(3,24) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted


Прихожу к выводу, что нужно пересобирать кросскомпилятор самому с нужными опциями, но проще будет использовать qemu и компилировать нативно.
Кстати, в вики надо поправить пример конфигурирования.
--program-prefix=arm-linux- забыли тире

Добавлено спустя 56 минут 18 секунд:
Помимо кросскомпилятора разбираюсь с нативной компиляцией под arm.

Имею нeтбук Toshiba AC100, на который поставил убунту и экспериментирую в свободное время.
Готовый fpc нашелся на ftp.freepascal.org.

Могу поделиться наблюдениями:
1) "Привет мир" вполне себе компилируется и работает на тошибе. Но при переносе и попытке запуска бинарника на Motorola E6 имею сегфолт.

2) Попытка сборки mseide для тошибы. Насколько понимаю, никто подобным не занимался, и официально Мартин арм не поддерживает, тем не менее.
  • Скачал исходники версии 2.6, и паралльно trunk из свн.
  • Ключи для сборки подсмотрел в этой теме + прописал путь к модулям fpc.
    Код: Выделить всё
    fpc -omseide -Fu/home/sash0k/coding/mse/msegui/lib/common/kernel/i386-linux -Fu/home/sash0k/coding/mse/msegui/lib/common/kernel/ -Fi/home/sash0k/coding/mse/msegui/lib/common/kernel/ -Fu/home/sash0k/coding/mse/msegui/lib/common/*/ -Fu/usr/lib/fpc/2.4.4/units/arm-linux/*/ -l -Mobjfpc -Sh -O- mseide.pas

  • Компилятор не может переварить код Мартина в файле msebufdataset.pas:
    Код: Выделить всё
    Compiling main.pas
    Compiling /home/sash0k/coding/mse/msegui/lib/common/regcomponents/regdb.pas
    Compiling /home/sash0k/coding/mse/msegui/lib/common/db/msesqldb.pas
    Compiling /home/sash0k/coding/mse/msegui/lib/common/db/msebufdataset.pas
    msebufdataset.pas(190,12) Fatal: Syntax error, "OF" expected but ":" found
    Fatal: Compilation aborted

    Проблема как в релизе 2.6, так и в транке + в i386-linux mse компилится, делаю вывод, что проблема в fpc.
  • В main.pas сборка нужных/ненужных компонентов mseide отключается директивами условной компиляции. Не нашел, как ими пользоваться :oops: , поэтому просто закоментировал все компоненты, которые используют msebufdataset.pas (БД и что-то еще) mseide собрался!
  • Была небольшая надежда на то, что он еще и работать будет, но к сожалению, она не оправдалась. Со сборкой транка - такой же результат.
    Код: Выделить всё
    ./mseide
    An unhandled exception occurred at $001EC6E4 :
    EAccessViolation : Access violation
      $001EC6E4
      $001F1700
      $000BED6C
      $000AE78C
      $001F9D60
      $001FD710
      $001FE084
      $001F9EC8
      $000AD030
      $0005436C
      $0000BC20
  • Далее попробовал слинковать mseide статически, (с ключом -Xt), но он не собрался. Начал линковать куски иксов и вылетел с ошибкой.
    Код: Выделить всё
    Linking mseide
    /usr/bin/ld: warning: link.res contains output sections; did you forget -T?
    /usr/lib/fpc/2.4.4/units/arm-linux/rtl/cthreads.o: In function `CTHREADS_LOADPTHREADS$$BOOLEAN':
    cthreads.pp:(.text.n_cthreads_loadpthreads$$boolean+0xc): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
    /home/sash0k/coding/mse/msegui/lib/common/kernel/i386-linux/msesocketintf.o: In function `MSESOCKETINTF_SOC_URLTOADDR$SOCKETADDRTY$$SYSERRORTY':
    msesocketintf.pas:(.text.n_msesocketintf_soc_urltoaddr$socketaddrty$$syserrorty+0xd0): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
    /usr/lib/arm-linux-gnueabi/libX11.a(ClDisplay.o): In function `XCloseDisplay':
    (.text+0x78): undefined reference to `xcb_disconnect'
    /usr/lib/arm-linux-gnueabi/libX11.a(OpenDis.o): In function `OutOfMemory':
    (.text+0x278): undefined reference to `xcb_disconnect'
    /usr/lib/arm-linux-gnueabi/libX11.a(OpenDis.o): In function `XOpenDisplay':
    (.text+0x528): undefined reference to `xcb_get_setup'
    /usr/lib/arm-linux-gnueabi/libX11.a(OpenDis.o): In function `XOpenDisplay':
    (.text+0x86e): undefined reference to `xcb_get_maximum_request_length'
    /usr/lib/arm-linux-gnueabi/libX11.a(xcb_disp.o): In function `_XConnectXCB':
    (.text+0xc6): undefined reference to `xcb_parse_display'
    /usr/lib/arm-linux-gnueabi/libX11.a(xcb_disp.o): In function `_XConnectXCB':
    (.text+0x106): undefined reference to `xcb_connect_to_display_with_auth_info'
    /usr/lib/arm-linux-gnueabi/libX11.a(xcb_disp.o): In function `_XConnectXCB':
    (.text+0x126): undefined reference to `xcb_get_file_descriptor'
    /usr/lib/arm-linux-gnueabi/libX11.a(xcb_disp.o): In function `_XConnectXCB':
    (.text+0x138): undefined reference to `xcb_generate_id'
    /usr/lib/arm-linux-gnueabi/libX11.a(xcb_disp.o): In function `_XConnectXCB':
    (.text+0x178): undefined reference to `xcb_connection_has_error'
    /usr/lib/arm-linux-gnueabi/libX11.a(xcb_disp.o): In function `_XConnectXCB':
    (.text+0x18a): undefined reference to `xcb_connect'
    /usr/lib/arm-linux-gnueabi/libX11.a(xcb_io.o): In function `require_socket':
    (.text+0x176): undefined reference to `xcb_take_socket'
    /usr/lib/arm-linux-gnueabi/libX11.a(xcb_io.o): In function `poll_for_event':
    (.text+0x1e0): undefined reference to `xcb_poll_for_event'
    /usr/lib/arm-linux-gnueabi/libX11.a(xcb_io.o): In function `poll_for_response':
    (.text+0x442): undefined reference to `xcb_poll_for_reply'
    /usr/lib/arm-linux-gnueabi/libX11.a(xcb_io.o): In function `_XSend':
    (.text+0x5c2): undefined reference to `xcb_writev'
    /usr/lib/arm-linux-gnueabi/libX11.a(xcb_io.o): In function `_XReadEvents':
    (.text+0x696): undefined reference to `xcb_connection_has_error'
    /usr/lib/arm-linux-gnueabi/libX11.a(xcb_io.o): In function `_XReadEvents':
    (.text+0x710): undefined reference to `xcb_wait_for_event'
    /usr/lib/arm-linux-gnueabi/libX11.a(xcb_io.o): In function `_XEventsQueued':
    (.text+0x7b2): undefined reference to `xcb_connection_has_error'
    /usr/lib/arm-linux-gnueabi/libX11.a(xcb_io.o): In function `_XAllocIDs':
    (.text+0x858): undefined reference to `xcb_generate_id'
    /usr/lib/arm-linux-gnueabi/libX11.a(xcb_io.o): In function `_XReply':
    (.text+0x92e): undefined reference to `xcb_wait_for_reply'
    mseide.pas(40,35) Error: Error while linking
    mseide.pas(40,35) Fatal: There were 1 errors compiling module, stopping
    Fatal: Compilation aborted
На сегодняшний день все. Далее планирую собрать fpc под арм из транка и пообщаться с Мартином на тему допиливания mseide_armel_linux. С меня тестирование и посильная помощь, к сожалению навыков системного программирования для поддержки fpc-arm и выяснения платформозависимых проблем с mseide не имею. :oops:
Sash0k
новенький
 
Сообщения: 43
Зарегистрирован: 19.01.2009 11:39:27
Откуда: Вятка - Киров

Re: архитектуры arm, avr

Сообщение Mr.Smart » 09.09.2011 11:07:26

Sash0k писал(а):Имею нeтбук Toshiba AC100

Тоже имею данную игрушку :wink: Гоняю на ней линупсы т.к. андроид мягко говоря - буээ, да и покупал её т.к. ARM для удобной отладки встраиваемых решений на ARM архитектуре.
Но в серьёз я ей так и не занялся. То времени нет, то великая лень...

Добавлено спустя 56 секунд:
ps Удачи в изысканиях :wink:
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: архитектуры arm, avr

Сообщение Mr.Smart » 24.10.2011 20:43:32

Sash0k писал(а):Имею нeтбук Toshiba AC100, на который поставил убунту и экспериментирую в свободное время.

На счёт AC100. На днях вышел релиз Oneric'a, так у него в репах уже имеется необходимый набор FPC+Lazarus.
Поставил, вроде фурыкает и даже терпимо. Т.е. можно на "игрушке" полноценно отлаживаться :wink:
Устанавливаем как и для обычной бубунты:
Код: Выделить всё
sudo apt-get install lazarus-ide-0.9.30

и сорцы FPC за одно:
Код: Выделить всё
sudo apt-get install fpc-source-2.4.4
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: архитектуры arm, avr

Сообщение Sash0k » 31.10.2011 21:27:14

так у него в репах уже имеется необходимый набор FPC+Lazarus

О, спасибо за такую хорошую новость :)
Тошку забросил, не до нее было. Теперь есть мотивация к установке онерика.
Sash0k
новенький
 
Сообщения: 43
Зарегистрирован: 19.01.2009 11:39:27
Откуда: Вятка - Киров

Пред.

Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

Рейтинг@Mail.ru
cron