Сквозная система разрабоки embedded устройств. Я давно мечтаю организовать сквозной цикл разработки:
* симулятор - для полностью виртуальной отладки
- симулятор всего камня, а не только инструкций процессора
- удаленные аутсорсеры
- когда идет проработка струкуры и логики - железо только мешает
* многофукциональная отладочная плата
- проверять софт на железе, пока делается целевая плата
* целевая плата
Это делается в коммерческих системах типа KEIL, IAR. Но возникает вопрос ОСи.
uCOS, ARTX - это хорошо, но все-таки для маленьких проектов. Суровую системщину хочется делать под чем-то более серьезным. Есть ровно 3 варианта:
* eCos
* RTEMS
* Linux.
Линух все-таки тяжел и могуч, посему оставим его в покое, а вот первые два очень интересны. На чем же их симулировать?
****************** Симулятор *********************
Копаясь в листе RTEMS, выловил такие сообщения:
===
23 дек 2005
Re: edb7312 and SkyeEye followup - SUCCESS
I've tried my own old build of RTEMS-4.7 (from around September I guess)
demos (hello world) with your skyeye config file and I can confirm that
skyeye really aborts. Anyway, I have arm-elf-insight installed so I
decided to give a try to skyeye debug capability and run skyeye in debug
mode and connect insight to it. I've set breakpoint on
BSP_rtems_irq_mngt_init just to see that skyeye will abort really on
*INTMR3 = 0.
Well, what was my surprise to see that I've gone ok thorough this code and
continued into deep RTEMS internals? The second surprise was that when
I've given up debugging and just push it to `continue' expecting skyeye
aborting somewhere else, it in fact executed whole hello world demo well!
So instead of patching RTEMS I do have simple workaround for skyeye bug:
run it in debug mode and set breakpoint on the function above...
http://www.rtems.c …december/msg00156.html
===
9 янв 2006
RTEMS/SkyEye 1.2.0RC4 success!
find below reference to the 1.2.0RC4 version which is able to run RTEMS
tests: hello.exe, ticker.exe and paranoia.exe w/o any issue and w/o any
workaround in the RTEMS sources!
http://www.rtems.c …/january/msg00041.html
===
http://www.skyeye.org/ - сайт
В комментариях к последнему релизу нашлось такое
http://gro.clinux. …orum.php?forum_id=2949
http://gro.clinux. …yeye-1.2-RC7-2.tar.bz2
* add ICE breakpoint debug function for SkyEye interpretting execution. now the arm-gdb can remotely debug os running on skyeye.
* support ecos for s3c2410 running on skyeye(mmu disabled s3c2410),if open mmu, then have some bug.
* fix several bugs.
И точно, на сайте у них написано
http://skyeye.sourceforge.net/wiki/um5
Now Skyeye supports the RDI (remote debug interface) protocol of GDB.
In the future, we hope SkyEye can support more debugging protocols.
http://gro.clinux.org/frs/?group_id=327 - файлы на скачку.
У них там есть замечатальная вещь - test suite, в который входят
эталонные загрузочные образы Linux для всех процов, которые они там
эмулируют (причем, если проц с графикой, и она эмулируется - образ с
поддержкой графики). Так что можно тут же проверить тулзу в работе.
At91RM9200 тоже входит в число эмулируемых процов, что характерно :).
Таким образом, получается, что симулятор, на котором можно пустить RTEMS, eCos, Linux (у них там и симуляция uCOS есть) наличествует. Ура!
Но возникает вопрос Линуха. Хорошо тем, что живет под ним. А вот для таких как я это тяжело. Но о нас уже позаботились!
******* Live CD на основе Knoppix GNU/Linux для embedded девелоперов **************
Полный набор Linux cross тулзов на одном CD!
http://free-electr …nelkit?set_language=en
KernelKit is a Knoppix GNU/Linux derivative targetting the development of Linux kernel and drivers, as well as Free Sofware embedded systems. It is currently being used in our Embedded Linux Training sessions.
Набор тулзов просто фантастический, словами не описать. Под все распространенные платформы, половина тузлов (да каких тулзов! - опишу ниже) лично мне просто была неизвестна до этого момента.
IMHO, идеальный выбор для начинающих изучать GNU (тпа меня). Не зря фирма, которая сделала это чудо, использует его для тренингов по Embedded Linux.
Skyeye присутсвует, правдна старой версии - но это поправимо :)
if машина мощная - под WmVare пустить.
else - в дисковод и перегрузиться :)
Еще у этой фирмы замечательные материалы учебных курсов на сайте выложены
http://free-electrons.com/training
А вот на стоимость самих курсов лучше не смотреть :))
http://free-electr …ns.com/training/prices
Особенно меня там заинтересовали 2 тулзы:
************************************************************************************************
*** SCons - a Software construction tool. A strong alternative to autoconf / automake / make ***
************************************************************************************************
http://www.scons.org/
http://www.scons.o …/scons-user/book1.html - дока
*********** What is SCons? ************
SCons is an Open Source software construction tool—that is, a next-generation build tool. Think of SCons as an improved, cross-platform substitute for the classic Make utility with integrated functionality similar to autoconf/automake and compiler caches such as ccache. In short, SCons is an easier, more reliable and faster way to build software.
************ What makes SCons better? ************
* Configuration files are Python scripts--use the power of a real programming language to solve build problems.
* Reliable, automatic dependency analysis built-in for C, C++ and Fortran--no more "make depend" or "make clean" to get all of the dependencies. Dependency analysis is easily extensible through user-defined dependency Scanners for other languages or file types.
* Built-in support for C, C++, D, Java, Fortran, Yacc, Lex, Qt and SWIG, and building TeX and LaTeX documents. Easily extensible through user-defined Builders for other languages or file types.
* Building from central repositories of source code and/or pre-built targets.
* Built-in support for fetching source files from SCCS, RCS, CVS, BitKeeper and Perforce.
* Built-in support for Microsoft Visual Studio .NET and past Visual Studio versions, including generation of .dsp, .dsw, .sln and .vcproj files.
* Reliable detection of build changes using MD5 signatures; optional, configurable support for traditional timestamps.
* Improved support for parallel builds--like make -j but keeps N jobs running simultaneously regardless of directory hierarchy.
* Integrated Autoconf-like support for finding #include files, libraries, functions and typedefs.
* Global view of all dependencies--no more multiple build passes or reordering targets to build everything.
* Ability to share built files in a cache to speed up multiple builds--like ccache but for any type of target file, not just C/C++ compilation.
* Designed from the ground up for cross-platform builds, and known to work on Linux, other POSIX systems (including AIX, *BSD systems, HP/UX, IRIX and Solaris), Windows NT, Mac OS X, and OS/2.
Идея просто замечательная. Заменить все эти мощные, но весьма недружелюбные autoconf / automake / make на понятный скриптовый язык - IMHO, это просто мечта!
***********************************************************
******** Splint static C code checker.*********************
***********************************************************
http://www.splint.org/
http://www.splint.org/manual/
Splint is a tool for statically checking C programs for security vulnerabilities and coding mistakes. With minimal effort, Splint can be used as a better lint. If additional effort is invested adding annotations to programs, Splint can perform stronger checking than can be done by any standard lint.
Некая проверялка кода. Не знаю пока, что это такое.
************** JTAG ************************
ОК, с симуляцией разобрались. Как бы теперь все это на плате-то завести?
Переписываясь с одним буржуином по теме JTAG отладки под eCos GDB получил такое письмо:
> you might want to check out openocd (
http://openocd.berlios.de/web/)
> I think it has support for atmel parts. I use it with a homebuilt
> usb-jtag adapter on a freescale ARM9 part and it works pretty well.
http://openocd.berlios.de/web/ - очень занятная вещь! И под нее есть хорошая коммерческая железяка
http://www.amontec.com/jtagkey.shtml
OpenOCD supported processors:
ARM7TDMI(-S)
ARM720t
ARM920t (and ARM9TDMI in general)
User interaction is available through a telnet interface and a GDB server.
Support for other targets is planned, with 926EJ-S likely being the next one.
More advanced JTAG devices are being considered. Adding support for other flash types is easily possible.
Похожий на jtagkey девайс, но с немного другой разводкой пинов. Вместе
со схемами и печатками!
http://www.fh-augs …j/usbjtag/usbjtag.html
When using the Amontec JTAGkey, you have to get the drivers from the
Amontec homepage (www.amontec.com), as the JTAGkey uses a non-standard
VID/PID.
Так что похоже, чтобы добиться хоть какой-то защиты, JTAGkey имеет
нестандартную прощивку EEPROM. Но это легко победить :)
Таким образом, мы получим рабочую GDB отладку по JTAG со скоростью
несколько десятков кбайт/сек.
!!! Эт не попытка отбить хлеб у DASM, которому я весьма признателен! Это просто продолжение темы "JTAG под GDB".
Конечно, накопив денег, надо будет когда-нибудь купить эту суперсистемную тулзу
http://www.ronetix.com/peedi.html
Весь лист eCos тащится от нее. Осталось найти 1.5 к евриков :)
****** Дополнения *****
Что почить по Knoppix.
По Knoppix книга свежая вышла
http://www.bolero. …/product-39512305.html
*********** Название: Hacking Knoppix (ExtremeTech) ***************
Автор: Scott Granneman
Издательство: Wiley
Год: 2006-01-04
Страниц: 336
Формат: chm
Размер: 3.84 Mb
ISBN: 0764597841
Язык: англ.
Источник:
http://www.natahau …oppix_extremetech.html
Качать (без пароля):
http://www.mytempdir.com/740427
http://up.spbland.ru/files/06061540/
http://depositfile …/110066/HKnop.rar.html
**** Д. Н. Колисниченко, Питер В. Аллен Linux: полное руководство ** Серия: Полное руководство **
2006 г.
784 стр.
.PDF
92М в сумме!
Источник:
http://www.natahau …olnoe_rukovodstvo.html
Качать (без пароля):
http://rapidshare. …vodstvo.part1.rar.html
http://rapidshare. …vodstvo.part2.rar.html
http://rapidshare. …vodstvo.part3.rar.html
************* ВЫВОД ***********
Ну что, типа мечта идиота начинает материализовываться? Полноценная GNU среда (и не такая уж и страшная) для embedded разработки?