Cross toolchains - Emdebian

Information of device properties, device configuration, internal register modification, memory mapping.
Creating, building, loading and executing binary images form RedBoot, including Linux kernel.
Creating, building, loading and executing binary files from Linux user and kernel space.

Cross toolchains - Emdebian

Postby mshopov » Wed Jul 21, 2010 2:55 pm

(Съществуват няколко добри дистрибуции на cross toolchains в мрежата. В този пост ще се спра на инсталирането на Emdebian toolchains.)

Когато работите под Debian или Debian съвместима операционна изборът на Emdebian cross toolchain е съвсем логичен. Съществуват два начина за инсталиране на съответния cross toolchain - да използвате прекомпилирани пакети или да си компилирате сами от source пакетите.

В случай, че нямате някакви специфични изисквания инсталирането от прекомпилирани пакети е най-лесния и бърз вариант. Ако вече сте запознати с инсталирането на пакети под Debian, то не са ви необходими повече знания.
    Необходимо е да добавите Emdebian в списъка с репозиторита, можете да използвате пакетен мениджър като synaptic, kpackage и т.н. или да редактирате директно файла /etc/apt/sources.list. Още по-добър вариант е да добавите нов файл в директорията /etc/apt/sources.list.d/. Ако искате да използвате текущата стабилна версия е необходимо да добавите следния ред:
    Code: Select all
    deb http://www.emdebian.org/debian/ lenny main
    Необходимо е да опресните списъка с пакети посредством командата
    Code: Select all
    #apt-get update
    Последната стъпка е инсталирането на избраните пакети. Примерно следния ред ще инсталира ARM C/C++ toolchain:
    Code: Select all
    apt-get install libc6-arm-cross libc6-dev-arm-cross binutils-arm-linux-gnu gcc-4.3-arm-linux-gnu g++-4.3-arm-linux-gnu gdb-arm-linux-gnu

    Ако не знаете точното име на някой пакет можете да ползвате търсачката на пакети

EDIT: Все още съществува някакъв досаден dependency проблем с инсталирането на gdb-arm-linux-gnu. За момента се препоръчва да го игнорирате като включите опцията -f към apt-get командата.


EDIT [July 2013]: В новите версии имената на пакетите за ARM са сменени. За по-старите процесори (armv4t, armv5, armv6) се използва armel, а за новите (armv7+VFP) - armhf. Също така, за доста от пакетите префикса -gnu- е заменен с -gnueabi-, за да се подчерате архитектурата на изпълнимия файл EABI.
За горната инсталация това ще изглежда така:
Code: Select all
apt-get install libc6-armel-cross libc6-dev-armel-cross binutils-arm-linux-gnueabi gcc-4.3-arm-linux-gnueabi g++-4.3-arm-linux-gnueabi gdb-arm-linux-gnueabi


EDIT [April 2014]: Последните месеци GCC има проблем с зависимост от пакет, невключен в emdebian, но нужен за иснталация. Затова е възможно при инсталация да се стигне до грешка
Broken Dependency
. При опит за следване на зависимостите се стига до пакет libgomp1. Възможен вариант за справяне с този проблем е инсталирането на пакетите xapt и dpkg-cross. После чрез тях да се свали и инсталира libgomp1 от нормалното Debian хранилище и да се прекомпилира за amrel:
Като администратор
Code: Select all
xapt -a armel -m libgomp1

Това ще свали сорсовете на пакета и ще го генерира за архитектура armel.
Би трябвало да го инсталира автоматично след сваляне, но ако не го направи - значи го е конвертирало и съхранило в текущата директория като .deb пакет. Този пакет може да се инсталира ръчно с dpkg -i.
Take a method and try it. If it fails, admit it frankly, and try another. But by all means, try something
User avatar
mshopov
 
Posts: 16
Joined: Thu Feb 26, 2009 2:15 pm
Location: Plovdiv

Eclipse and ARM toolchains

Postby mshopov » Wed Jul 21, 2010 3:37 pm

Ако използвате Eclipse CDT и Emdebian ARM toolchain логично бихте искали да можете да използвате пълните възможностти които Eclipse CDT ви дава. За целта Ви е необходимо да разполагате с плъгин за Eclipse които да свърже средата и използвания от вас toolchain. След направено проучване в Интернет с изненада установих, че все още никой не е създал такъв плъгин за Emdebian toolchain (когато четете тази статия е възможно вече това да не е вярно). В този момент вариантите пред мен бяха малко: да си създам свой плъгин, да си конфигурирам отделните инструменти като External tools в Eclipse, или да модифицирам някой от съществуващите в мрежата плъгини. Най-добре щеше да бъде да разработя нов плъгин разбира се, но поради липса на необходимото време което трябваше да инвестирам, предпочетох последния вариант.

Избрания от мен плъгин бе GNU ARM Eclipse Plug-in. Инсталирането на плъгина може и е препоръчително да стане посредством вградения update manager на Eclipse. В зависимост от версията на Eclipse е необходимо да направите следното:

    Избирате следното меню: Help -> Software Updated -> Available Software -> Add Site
    Изключете опцоята 'Group items by category'
    Приемете да инсталирате неподписан плъгин

Стъпки по създаването на нов проект и конфигурирането на плъгина за работа с Emdebian toolchain ....

TODO: ......
Take a method and try it. If it fails, admit it frankly, and try another. But by all means, try something
User avatar
mshopov
 
Posts: 16
Joined: Thu Feb 26, 2009 2:15 pm
Location: Plovdiv

Re: Eclipse and ARM toolchains

Postby mshopov » Wed Jul 21, 2010 3:40 pm

Едно добро описание на стъпките по създаване на свой собствен toolchain "from scratch":

Building a GNU/Linux ARM Toolchain (from scratch)
Take a method and try it. If it fails, admit it frankly, and try another. But by all means, try something
User avatar
mshopov
 
Posts: 16
Joined: Thu Feb 26, 2009 2:15 pm
Location: Plovdiv


Return to EP9302_Linux

Who is online

Users browsing this forum: No registered users and 2 guests