архитектуры arm, avr
Модератор: Модераторы
Для встраиваемых решений и прочих пультов есть Windows Embedded. Это винда, из которой можно выкидывать все что душа пожелает, совершенно легально, вплоть до голой консоли.
О Windows Embedded слышали?Вы не можете выкинуть то, что вам не нужно из Win.
Вот оно как. Я тут искал ОСЬ под старый ноутбук с 128 Памяти и процем П3 700Мгц, перепробовал кучу линупсовых недоделок более или менее приличной оказалась Lubunta но и ту по всем параметрам побил Windows XP, так как более экономно использовал системные ресурсы, кажется всего 50 мег оперативы. (всякое убогое и неюзабельное, вырвиглазное типа ноппиксов не в счет)непомерно раздутое и неповоротливое ядро
По поводу темы, поскольку арм сейчас в основном живет в мобильно-планшетной сфере, то там традиционные приложения малоюзабельны из-за необходимости в управлении мультач и жестами, так что их так или иначе надо модифицировать.
.wOvAN писал(а):О Windows Embedded слышали?
Слышал, но в том и дело, что только слышал. Купить её сложно:
- на каждом углу не продается
- штучно не купишь
- цена
тут искал ОСЬ под старый ноутбук с 128 Памяти и процем П3 700Мгц, перепробовал кучу линупсовых недоделок
Казалось бы, причем тут linux kernel?
По поводу темы, поскольку арм сейчас в основном живет в мобильно-планшетной сфере, то там традиционные приложения малоюзабельны из-за необходимости в управлении мультач и жестами, так что их так или иначе надо модифицировать.
Тут вы правы, но мне интуиция подсказывает, что arm уже вполне пригоден для замены десктопного компьютера в его классическом понимании. Впрочем
- сейчас им х86 полностью не заменить, и в ближайшем будущем тоже
- как мне кажется, само понятие компьютера, как коробки на столе/под столом в будущем изменится в сторону мобильности/планшетности/интернетности/облачности.
Все это прекрасно, но что дает arm кроме экономии энергии ?
Удешевление самого процессора: более простую архитектуру и в кремнии реализовать проще. Кстати говоря, это же обеспечивает и более низкое энергопотребление, что для мобильных приложений чрезвычайно важно. Впрочем, воспользоваться преимуществами железа ещё надо суметь; вон, гуглофоны сажают аккумуляторы в режиме ожидания очень быстро (у самого такой), что, вполне может быть, связано как раз с низким качеством системы и порочностью самой концепции: лепить приложения исключительно на жабе (естественно, дотнет ничем не лучше в этом плане будет).
да, именно поэтому я и смотрю на них с интересом!
упрощение + удешевление + понижение энергозатрат = прогресс
Интересные хабростатьи: раз и два. арм-контроллеры уделывают пики с атмегами по производительности/цене/энергопотреблению.
В будущем это же будет со "старшими" камнями, ибо арм архитектура продуманней х86
упрощение + удешевление + понижение энергозатрат = прогресс
Интересные хабростатьи: раз и два. арм-контроллеры уделывают пики с атмегами по производительности/цене/энергопотреблению.
В будущем это же будет со "старшими" камнями, ибо арм архитектура продуманней х86
Хотя всё равно довольно костыльная... Плохо они думали, когда Тумбу добавляли, например, из-за чего кучу нюансов в голове держать надо. Хотя в смысле маразматичности хуже ИА-32 только ПИК (во всяком случае, 16-разрядный).
А что уделывают, это точно. Более того, даже старые АРМы зачастую смотрятся очень неплохо по энергопотреблению в сравнении с теми же 8-разрядными АВРками, особенно если не забывать про разницу в производительности и уметь спать, когда работы нету.
А что уделывают, это точно. Более того, даже старые АРМы зачастую смотрятся очень неплохо по энергопотреблению в сравнении с теми же 8-разрядными АВРками, особенно если не забывать про разницу в производительности и уметь спать, когда работы нету.
Пытаюсь поднять кросскомпилятор, столкнулся с проблемой.
0) Рабочая машина: i686, Ubuntu 10.04.2 LTS
1) Взял отсюда собранный кросскомпилятор отсюда. Содержимое распаковал в /usr и сделал симлинк ppcrossarm в /usr/bin. Компилятор работает.
2) Набросал привет мир, компилится, но не собирается из-за отсутствия кросспакета binutils.
В репозитарии убунты binutils для арм нету. Гугление тоже не помогло.
Где взять as, ar и прочие утилиты для кросскомпиляции с i386-linux в arm-linux ?
Либо буду благодарен ссылке на инструкцию по самостоятельной сборке (но тогда надо искать кросспакет arm-gcc %))
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 %))
Mr.Smart, спасибо. binutils собрал. Но имею ошибку несовместимости версий EABI при линковке.
Прихожу к выводу, что нужно пересобирать кросскомпилятор самому с нужными опциями, но проще будет использовать qemu и компилировать нативно.
Кстати, в вики надо поправить пример конфигурирования.
--program-prefix=arm-linux- забыли тире
Добавлено спустя 56 минут 18 секунд:
Помимо кросскомпилятора разбираюсь с нативной компиляцией под arm.
Имею нeтбук Toshiba AC100, на который поставил убунту и экспериментирую в свободное время.
Готовый fpc нашелся на ftp.freepascal.org.
Могу поделиться наблюдениями:
1) "Привет мир" вполне себе компилируется и работает на тошибе. Но при переносе и попытке запуска бинарника на Motorola E6 имею сегфолт.
2) Попытка сборки mseide для тошибы. Насколько понимаю, никто подобным не занимался, и официально Мартин арм не поддерживает, тем не менее.

Код: Выделить всё
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 отключается директивами условной компиляции. Не нашел, как ими пользоваться
, поэтому просто закоментировал все компоненты, которые используют 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
Sash0k писал(а):Имею нeтбук Toshiba AC100
Тоже имею данную игрушку
Но в серьёз я ей так и не занялся. То времени нет, то великая лень...
Добавлено спустя 56 секунд:
ps Удачи в изысканиях
Sash0k писал(а):Имею нeтбук Toshiba AC100, на который поставил убунту и экспериментирую в свободное время.
На счёт AC100. На днях вышел релиз Oneric'a, так у него в репах уже имеется необходимый набор FPC+Lazarus.
Поставил, вроде фурыкает и даже терпимо. Т.е. можно на "игрушке" полноценно отлаживаться
Устанавливаем как и для обычной бубунты:
Код: Выделить всё
sudo apt-get install lazarus-ide-0.9.30и сорцы FPC за одно:
Код: Выделить всё
sudo apt-get install fpc-source-2.4.4так у него в репах уже имеется необходимый набор FPC+Lazarus
О, спасибо за такую хорошую новость
Тошку забросил, не до нее было. Теперь есть мотивация к установке онерика.
