E71.RU E71.RU
Добро пожаловать, Гость! [ ИнфоБлокОбновленияУчастникиПравилаПоискFAQ-ЧаВо ] Регистрация недоступна • Вход RSS
Вторник, 19.11.2024
ARM-программисту требуется чайник с телефоном для тестирования эльфа с вирусом.
  • Страница 1 из 1
  • 1
Модератор форума: Леший  
Создание ELF-приложений
EvgrДата: Среда, 06.06.2007, 13:18 | Сообщение # 1
Волшебник
Имя: Евгений
С нами с: 07.05.2007
Сообщений: 874
Награды: 8
Модель телефона: E71v45x2, EL71v45
Статус: Offline
FAQ по самостоятельной сборке эльфов

1. Скачиваем урезанную до минимально необходимого размера (10,1Мб) версию Си компилятора IAR "ARM_Embedded_Workbench" и устанавливаем, распаковав архив в выбранную папку.
® inquis
URL: http://download.e71.ru/load/programs/IAR442A.exe

2. Скачиваем клиента "TortoiseSVN" (8,78 Мб), устанавливаем.
URL: http://heanet.dl.sourceforge.net/sourcef....4.3.msi

3. В браузере (например, IE) заходим по адресу svn://cbsie.dyndns.info. Открывается окошко "Repository Browser".
* Кликаем на папку svn://cbsie.dyndns.info. Там исходники многих эльфов.
* Выбираем папку ARM, заходим.
* Первым делом выбираем папки \inc и \SerialLib, так как они необходимы для компилирования эльфов. Кликая правой кнопкой мыши на папке, выбираем "Export…". В окошке “TortoiseSVN Export…” выбираем “Revision: HEAD revision” (головная, самая свежая), сохраняем у себя на компьютере. Для SerialLib для удобства сразу прописываем путь C:\SerialLib, так как именно такой путь указан в исходниках многих эльфов.
* Содержимое папки \inc с SVN копируем в папку \inc ARM_Embedded_Workbench.
* Также скачиваем утилиту "_SVN_Utility", которая может оказаться полезной для автоматической подстановки номера ревизии в проект при компиляции.

4. Выбираем папку понравившегося эльфа, однако не стоит сразу копировать ее к себе на компьютер. Некоторые ревизии кода предназначены для версий эльфпака, на которые еще не было официального релиза. Кликая правой кнопкой мыши на папке, выбираем "Show log". Внимательно читаем историю изменений. Выбираем самую свежую версию (Revision), совместимую с Вашим эльфпаком, скачиваем, явно указав в опциях при экспорте номер ревизии.

5. Теперь уже можно пробовать собирать эльфов для вашего телефона. Однако некоторые из них будут требовать файлы, которые отсутствуют в скачанной "ARM_Embedded_Workbench". Поэтому тренировку лучше всего начать со сборки SerialLib, после которой появится многое, необходимое для сборки других эльфов.
* Запускаем IAR (…\ARM_Embedded_Workbench\Embedded Workbench 4.0 Evaluation\common\bin\IarIdePM), кликаем “Open existing Workspace”, кликаем SerialLib.eww. (Или в папке C:\SerialLib кликаем дважды на SerialLib IAR IDE Workspace (если IAR Embedded_Workbench IDE не запускается автоматически, вручную указываем путь к приложению)).
* В “Project”->”Edit Configurations…” выбираем “Release”, т.к. скомпилированные с Debug эльфы не загрузятся!
* В “Project”->”Options”->”General Options” выбираем “Processor variant: ARM926EJ-S”, “Processor mode: Arm”.
* Теперь выбираем “Project”->”Rebuild All”.
В нижней части экрана смотрим сообщение об успешной компиляции проекта.
* Теперь скомпилируем собственно эльфа SerialTest. В окошке в выпадающем списке “Workspace” выбираем “SerialTest-Release”, и снова “Project”->”Rebuild All”.
После запуска программы “IAR” и выбора “Project”->”Rebuild All” в папке проекта создаются дополнительные папки \Settings и \Release. В \Release находятся три папки \Exe, \List и \Obj. В папку \Exe при успешной компиляции помещается готовый эльф.

6. По описанной методике приступаем к сборке выбранного Вами эльфа.
Если в проекте присутствуют два файла XXX.eww и XXX_IAR_old.eww, открываем XXX.eww. Скомпилированные с XXX_IAR_old.eww эльфы создают .bcfg нулевого размера.
Если у Вас телефон E/El71, то в “Project”->”Edit Configurations…” выбираем “Release_ELKA”. Если такой опции нет, можно попробовать выбрать другой вариант, вдруг да заработает.
Если в проекте присутствует файл revision.h, но нет желания настраивать утилиту getsvn, пропишите в файле revision.h строку #define __SVN_REVISION__ 000, где 000 замените на номер ревизии. Если при компиляции программа требует наличия файла revision.h, а в проекте его нет, запустите приложение getsvn в папке _SVN_Utility, появившийся файл revision.h скопируйте в папку с файлами проекта.

7. Сообщения об ошибках и пути решения

Вопрос: что значит " #include "..\..\swilib.h" " и почему на нём выдаётся ошибка?
Ответ: "..\..\" это относительный путь. Означает, что файл лежит на два уровня ниже текущей директории. Если стереть, то должно получиться #include "swilib.h", тогда swilib будет браться из директории, где установлен IAR\ARM\INC. Можно еще написать #include ".\swilib.h", тогда swilib будет браться из папки, где лежит проект.

Вопрос: что это за ошибка “Fatal Error[e72]: Segment ELFBEGIN must be defined in a segment definition option (-Z, -b or -P)”?
Ответ: в IAR'е заходишь Project->Options->Linker->Config. Там в Linker command file ставишь галочку Override default, жмешь на многоточие справа и выбираешь из папки, где лежит твой проект, файл test.xlc.

Вопрос: все примеры компилируются нормально, но они все вырубают мобилу.
Ответ: в настройках линкера какой *.xcl указан? Надо тот, который в папке с исходниками лежит, а не тот, который с IAR идет. Да, кстати, когда проект открываешь, необходимо заново прописывать xcl файл.

Вопрос: эльф получается, но при запуске создаётся нулевой (пустой) файл *.bcfg. В чём проблема?
Ответ: проверь имя сегмента для файла config_data.c в проекте: правой мышью по имени файла в дереве проекта - Options, должно стоять Override inherited settings, на вкладке Output в Segment base name - имя сегмента CONFIG (а не DATA и CODE).

Вопрос: достала ошибка: "_thumb functions can only call_swi functions with swi_number in range 0-0xFF". Как ее исправить?
Ответ: в опциях надо выбрать ARM,а не тумбу.

Вопрос: “Fatal Error[e136]: The output format 'debug' does not support the use of relocation areas (-V option). Did you forget a format modifier flag?” Что делать?
Ответ: ну сколько говорить, что для компиляции любого проекта необходимо ставить конфигурацию Release, а не Debug.

Вопрос: у кого-нибудь есть такой файл obexcopy.exe? А то у меня выдает ошибку, что нет такого файла.
Ответ: этот файл не является обязательным для компиляции проекта, это скорее для удобства. Чтобы не выдавала ошибку, идешь по след пути: Project-Options, выбираешь пункт Build Actions и удаляешь все из полей Pre-buid и Post-build command line.

Вопрос: IAR пишет, что не найдены div_32a, div_64a, doubleToLong, float.
Ответ: В меню Project->Options->Library Configuration выбрать Normal. Нужные библиотеки подключатся автоматически.

Предупреждение:
Собранные с исходников svn эльфы разрешены только для личного использования, в целях предварительного ознакомления и стимулирования интереса к эльфописанию. Публичное размещение скомпилированных ревизий до официального релиза без разрешения автора проекта запрещено!

Данный FAQ основан на личном опыте и материалах:
"Создание ELF-приложений": http://cbn.narod.ru/elf.html
Тема "Эльфы (Elf)→Основы программирования":
http://forum.allsiemens.com/viewtopic.php?t=43022


E71v45, CL61v00db128@E71, EL71v45x2, S75v47, S68v52, C72v22
curious
"...нам хотя бы на излёте заглянуть за..."


Сообщение отредактировано sim_emrom - Воскресенье, 05.04.2009, 05:07
 
EvgrДата: Пятница, 15.06.2007, 10:11 | Сообщение # 2
Волшебник
Имя: Евгений
С нами с: 07.05.2007
Сообщений: 874
Награды: 8
Модель телефона: E71v45x2, EL71v45
Статус: Offline
Помогите, пожалуйста, кто знает. Встретился с такой проблемой. Скомпилировал для E71 последнюю ревизию elfloader с svn, получил в папке \exe два файла elf и hex, сюда же скопировал файл elf2vkp и файл фуллфлеша. Создал в ней же файл patch.bat, прописал все пути:
"elf2vkp.exe ELFLoader.elf ELFLoader.vkp C:\SVN elfloader_1103 test\E71sw45\Exe\351776010129997_E71sw45lg91.bin
copy /b swilib.vkp+swi.vkp+ELFLoader.vkp ElfPack.vkp".
Но при запуске patch.bat неизменно получаю: "elf2vkp.exe - обнаружена ошибка. Приложение будет закрыто". Файл Elfloader.vkp создаётся нулевого размера. Скачал с сайта BоВа другую версию elf2vkp, но результат тот же. По поиску ни у кого такой проблемы нет. Подскажите, как победить?
Добавлено:
Переписал путь в виде:
"elf2vkp.exe ELFLoader.elf ELFLoader.vkp 351776010129997_E71sw45lg91.bin
copy /b swilib.vkp+swi.vkp+ELFLoader.vkp ElfPack.vkp", и все заработало. Так где была ошибка?


E71v45, CL61v00db128@E71, EL71v45x2, S75v47, S68v52, C72v22
curious
"...нам хотя бы на излёте заглянуть за..."


Сообщение отредактировано Evgr - Пятница, 15.06.2007, 11:45
 
Blind007Дата: Воскресенье, 29.07.2007, 21:09 | Сообщение # 3
Майор
Имя: Николай
С нами с: 29.05.2007
Сообщений: 93
Награды: 0
Модель телефона: el71
Статус: Offline
Скорее всего в первом варианте был не правильный путь до файла фф? Я конечно не знаю где он лежит, и все же, может с путями что-то не то? Или программа не работает с абсолютными путями, что конечно вряд ли...

Итак, раз посоветовали так, спрошу здесь...
Вот я остальные пункты называю просто по порядку cfghdr1 , 2 и т.д. Всего у меня там 7 пунктов, но в телефоне доступно только 6. На последний курсор невозможно поставить, и отредактировать, соответственно. CfgEdit пишет в этом месте Unsupported item 1952672080. Как это исправить?


...И пусть это трудно ночами не спать, программы писать, баклажаны читать, учить базы данных, грамматику СППО. Но с гордостью можно потом сказать, что ты с мехмата и все будут знать, что для тебя невозможного нет ничего!
 
Miha_rДата: Пятница, 10.08.2007, 22:32 | Сообщение # 4
Лейтенант
Имя: Михаил
С нами с: 15.07.2007
Сообщений: 55
Награды: 0
Статус: Offline
Quote (Blind007)
Вот я остальные пункты называю просто по порядку cfghdr1 , 2 и т.д. Всего у меня там 7 пунктов, но в телефоне доступно только 6. На последний курсор невозможно поставить, и отредактировать, соответственно. CfgEdit пишет в этом месте Unsupported item 1952672080. Как это исправить?

Выложи свой конфиг, посмотрим, а так не понятно

 
Blind007Дата: Суббота, 11.08.2007, 13:42 | Сообщение # 5
Майор
Имя: Николай
С нами с: 29.05.2007
Сообщений: 93
Награды: 0
Модель телефона: el71
Статус: Offline
Странности какие-то у меня с этим конфигом! Извратился, назвал пункты cfghdr0, cfghdr01-05, последний попробовал cfghdr19... Заработало!

...И пусть это трудно ночами не спать, программы писать, баклажаны читать, учить базы данных, грамматику СППО. Но с гордостью можно потом сказать, что ты с мехмата и все будут знать, что для тебя невозможного нет ничего!
 
DrearyДата: Воскресенье, 13.09.2009, 16:37 | Сообщение # 6
Генерал-лейтенант
Имя: Дмитрий
С нами с: 19.10.2008
Сообщений: 704
Награды: 5
Модель телефона: E71v45
Статус: Offline
ребята, когда я делаю вот это
Quote
В браузере (например, IE) заходим по адресу svn://cbsie.dyndns.info. Открывается окошко "Repository Browser".
* Кликаем на папку svn://cbsie.dyndns.info. Там исходники многих эльфов.
* Выбираем папку ARM, заходим.

он пишет что невозможно подключится к cbsie.dyndns.info
что делать?
 
ЛешийДата: Воскресенье, 13.09.2009, 17:24 | Сообщение # 7
Генерал-майор
Имя: Ле
С нами с: 22.02.2008
Сообщений: 415
Награды: 2
Модель телефона: E71v45
Статус: Offline
научится читать. http://e71.ru/publ/6-1-0-60
 
Diman-94Дата: Воскресенье, 13.09.2009, 17:26 | Сообщение # 8
Рядовой
Имя: Дима
С нами с: 03.06.2009
Сообщений: 12
Награды: 2
Модель телефона: E71v45
Статус: Offline
спасибо Леший, не увидел B)
 
Danil_e71Дата: Воскресенье, 13.09.2009, 17:55 | Сообщение # 9
Генерал-майор
Имя: Даниил Корековцев
С нами с: 04.03.2009
Сообщений: 334
Награды: 6
Модель телефона: 89601864950
Статус: Offline
Только теперь svn://svn.boba.su/
 
BenqmaksДата: Понедельник, 23.11.2009, 19:22 | Сообщение # 10
Генерал-майор
Имя: Максим
С нами с: 06.02.2009
Сообщений: 259
Награды: 0
Модель телефона: EL71sw45+Elfpack 2.31; C81sw51
Статус: Offline
^при переходе по ссылке пишет введите имя пользователя и пароль и че вводить? dontknow

Фан-сайт Ferry Corsten

Сообщение отредактировано Benqmaks - Понедельник, 23.11.2009, 20:08
 
Danil_e71Дата: Понедельник, 23.11.2009, 20:03 | Сообщение # 11
Генерал-майор
Имя: Даниил Корековцев
С нами с: 04.03.2009
Сообщений: 334
Награды: 6
Модель телефона: 89601864950
Статус: Offline
Login: guest
Pass: guest
Небольшое добавление к факу:
Если ошибка
Error[e46]: Undefined external "main" referred in ?ABS_ENTRY_MOD ( )
То в options->Linker->Config->Override default, в в entry label прописано main, а у вас не такой функции (например у цбна onstart)


Сообщение отредактировано Danil_e71 - Понедельник, 23.11.2009, 20:15
 
TwitchДата: Четверг, 15.04.2010, 16:54 | Сообщение # 12
Подполковник
Имя: Макс
С нами с: 06.08.2009
Сообщений: 116
Награды: 0
Модель телефона: E71v45
Статус: Offline
не знаю насколько это относится к разработке эльфов, но в общем проблема такая. Иар что то не хочет работать под вайном на ubuntu 9.10, если без эмуляции виртуального рабочего стола, то запускаться запускается, но окна нету. а если же с эмуляцией, то окно появляется, но курсор "прячется" под его окном, да и похоже виснет просто и все. что можно сделать?


 
napukmaxepДата: Четверг, 15.04.2010, 19:18 | Сообщение # 13
Полковник
Имя: Дмитрий
С нами с: 07.12.2009
Сообщений: 241
Награды: 4
Модель телефона: EL71v45
Статус: Offline
А вайн какой версии? У меня последняя версия(по крайней мере так было на 1.04) и на ней ИАР, скачанный с цбн'ового сайта, работает на ура и без шаманств.

Да плевать кто ты! Главное, чтобы человек был хороший!
 
TwitchДата: Четверг, 15.04.2010, 20:16 | Сообщение # 14
Подполковник
Имя: Макс
С нами с: 06.08.2009
Сообщений: 116
Награды: 0
Модель телефона: E71v45
Статус: Offline
версия 1.0.1


 
napukmaxepДата: Суббота, 17.04.2010, 14:59 | Сообщение # 15
Полковник
Имя: Дмитрий
С нами с: 07.12.2009
Сообщений: 241
Награды: 4
Модель телефона: EL71v45
Статус: Offline
Twitch, у меня 1.1.42

Да плевать кто ты! Главное, чтобы человек был хороший!
 
loquatДата: Суббота, 17.04.2010, 16:23 | Сообщение # 16
Подполковник
Имя: loquat
С нами с: 26.03.2010
Сообщений: 115
Награды: 1
Модель телефона: S7Cv47&SK6Cv50
Статус: Offline
src of 0110 created by BingK,if need uploading competence,please mail to binghelingxi@163.com
or you can mail me loquat520@mail.ru ,and I will PM BingK to add you to SVN group.
or you want to share src,you can mail them to my mail.ru too.It will be my pleasure to uploade for you.
http://sieelf.googlecode.com/svn/SieELF/
and url begin as https needs SVN group ID & PSW
https://sieelf.googlecode.com/svn/SieELF/

--------------------------------------------------------------------------------

ГНЦ 0110 создан BingK, в случае необходимости загрузки компетенции, напишите binghelingxi@163.com
или вы можете отправить меня loquat520@mail.ru , и я буду г. BingK добавить вас в группу SVN.
или вы хотите поделиться SRC, Вы можете отправить их своим mail.ru too.It будет удовольствием uploade для вас.
http://sieelf.googlecode.com/svn/SieELF/
и URL начинаются HTTPS потребностей SVN группы ID и PSW
https://sieelf.googlecode.com/SVN/SieELF/


Table-tennis,volleyball,swimming
Good good study,day day up.
Lifting my head I watched the brignt moon,Lowering my head I dreamed that I'm home.
 
SaroyanДата: Понедельник, 07.02.2011, 16:06 | Сообщение # 17
Полковник
Имя: Vasiliy Kaa
С нами с: 19.09.2008
Сообщений: 168
Награды: 0
Модель телефона: E71sw45+ep2.3
Статус: Offline
В пункте три написано ...Первым делом выбираем папки \inc и \SerialLib...
У меня папка inc есть, а папки SerialLib после распаковки никакой не наблюдается. есть просто lib, что делать ?
 
Danil_e71Дата: Понедельник, 07.02.2011, 16:59 | Сообщение # 18
Генерал-майор
Имя: Даниил Корековцев
С нами с: 04.03.2009
Сообщений: 334
Награды: 6
Модель телефона: 89601864950
Статус: Offline
Эти папки брать с perk11.info или svn://svn.boba.su
 
SaroyanДата: Понедельник, 07.02.2011, 17:18 | Сообщение # 19
Полковник
Имя: Vasiliy Kaa
С нами с: 19.09.2008
Сообщений: 168
Награды: 0
Модель телефона: E71sw45+ep2.3
Статус: Offline
Понял. Благодарю !
 
St-HunterДата: Пятница, 25.02.2011, 01:55 | Сообщение # 20
Ушедший навсегда...
Имя: Vitaliy
С нами с: 21.09.2009
Сообщений: 24
Награды: 0
Модель телефона: S75sw47, E71sw45
Статус: Offline
Ответ: этот файл не является обязательным для компиляции проекта, это скорее для удобства. Чтобы не выдавала ошибку, идешь по след пути: Project-Options, выбираешь пункт Build Actions и удаляешь все из полей Pre-buid и Post-build command line.

а если из коммандной строки компилить, как убрать это всплывающее окно?
Twitch, может нужно кому-то подправить проекты на SVN?
многие ругаются на отсутствующие файлы. наведи порядок, хотя бы для тех которые ты мне в скрипт добавил.


svn://st-hunter.ru - SVN EP3 ELFs
http://s75.st-hunter.ru - Ы75!

Siemens Ы75 - вне стандартов, вне конкуренции!
 
krot-snaiperДата: Понедельник, 27.01.2014, 12:16 | Сообщение # 21
Майор
Имя: Егор
С нами с: 31.10.2007
Сообщений: 96
Награды: 0
Модель телефона: E/EL71v45 rusleng
Статус: Offline
а есть Си компилятор под ARM для MAC или Linux ?

E71v45 RUSleng, kingston2Gb, ELFPack-2.3, MPv14, bl-4c
EL71v45 RUSleng
DCA-140/110
 
ЛеснойДата: Вторник, 28.01.2014, 20:18 | Сообщение # 22
Ответственный за флуд
Имя: Илья
С нами с: 15.07.2008
Сообщений: 616
Награды: 9
Модель телефона: SK65, EL71, A52 и какой-то андроид
Статус: Offline
GCC вроде как настроить можно. Да и IAR под wine можно запустить.
 
  • Страница 1 из 1
  • 1
Поиск:
Использование материалов сайта возможно только при согласовании с администрацией