Перейти к содержанию
    

kovalchuk_i_v

Свой
  • Постов

    173
  • Зарегистрирован

  • Посещение

Весь контент kovalchuk_i_v


  1. что-то мне не верится что просто-так. хотя бы потому, что битовые поля - удобнее. некоторое время назад писал софт для ЦОС, взаимодействующий с ПЛИС. и я софт разрабатывал и человек проект для ПЛИС тоже разрабатывал. естественно были всякие регистры с битовыми полями, формат которых менялся в процессе разработки. Если-бы я не использовал структуры с битовыми полями, то намного сложнее было бы адаптировать софт под новые версии проекта ПЛИС. Почему это каждый раз? один раз описал формат для конкретного регистра, и используй сколько хочешь. А в случае с масками, это надо каждый раз при использовании учитывать расположение битов. А если формат измениться, скажем поле шире станет, так это надо будет по всему проекту исправлять, запаришься.
  2. Рассматривая примеры программ в Embedded (для ARM) обратил внимание, что нигде не встречается работа с регистрами микроконтроллеров с использованием битовых полей. Интересно, почему так? Помнится еще студентами ставили эксперимент, сравнивая скорость работы через битовые поля и использование масок со сдвигами. Пришли к выводу что битовые поля как-то побыстрее.
  3. читайте раздел "ISP commands", в мануале. там описаны все команды UART0. если английский дается хуже русского, могу порекомендовать книжку: Мартин Т. "Микроконтроллеры ARM7. Семейчтво LPC2000 компании Philips. Вводный курс" На мой взгляд не плохой обзор по возможностям LPC, но мануал не заменит. Есть еще такая утилитка "FlashMagic", кажется на сайте nxp. Позволяет по UART0 программировать микроконтроллер. Спасибо, что обратили внимание на ногу 2.10, в младших моделях подается именно на P0.14, мы этого не заметили сразу, а схему почти уже в разводку отдали.
  4. При сбросе LPC управление передается во встроенный загрузчик (0x7fff ffff), прошитый производителем. если в момент reseta загрузчик обнаруживает на ноге P0.14 напряжение низкого уровня, то он не передает управление во флеш, где находится пользовательский загрузчик, а начинает ждать всяких команд по UART0. подробности читаете в мануале. Я так понимаю, что этого достаточно чтобы победить вашу прошивку, если дело в ней.
  5. C++ позволяет переопределять операции. ихмо стоит попробовать определить операцию присвоения для типов device1_cmd и device2_cmd .
  6. Начинаем пользовать uClinux. Собирается из под Linux. Собрать ядро из под Windows нахожу затруднительным. Расчитана на работу в процах без MMU. Ядро 2.4 само весит около метра. 2.6 - еще не пользовал, но в требованиях указан минимальный размер озу - 2 Мб.
  7. Вот только не понятная ситуация. Есть документ от NXP "Getting started uClinux with LPC22xx". есть там всякие ссылочки, на их-же собственный сайт, по которым можно скачать сам uClinux, патчи разные и toolchan-ы. Все эти ссылки почему-то не работают... Может подскажет кто-нибудь, как-же скачить uClinux для lpc? Да, между прочим, документ этот датирован за ноябрь 2006г, а семейство lpc22хх было запущено в производство в 2004г, так что кажется мне в ближайшее время uClinux для 24хх не появиться.
  8. Стоило немного подумать да поискать, и нашелся ответ на вопрос. NXP сделала порт для lpc22xx. а после сравнения мануалов для lpc22xx и lpc24xx я пришел к выводу что софт работающий на lpc22хх, по идее, должен работать и на lpc24xx. Правда остается открытым вопрос по драйверам устройств lpc24xx, но написание их явно проще портирования. Теперь жду появления живого железа
  9. Интересно, а кто нибудь уже начал портировать ucLinux под lpc24xx? может ссылочку интересную кто подкинет?
  10. подредактировал файл конфигурации DDD и все получилось, большое спасибо.
  11. Люди, поделитесь опытом, как настроить кириллицу в DDD. А то как-то не удобно работать, когда в исходниках комментарии не читабельны...
  12. Спасибо ребята. я понял направление, буду работать.
  13. в разрабатываемом изделии Ethernet будет. а вот на Evaluation Board - нету... :-(
  14. Не хорошо так: 1. надо будет тащить исходники на плату, это не удобно да и места - мало. 2. не будет возможности использовать DDD. на сколько я понял, gdbserver функционирующий на плате, соединяется с gdb по com-порту. и еще один com нужен для консоли uClinux. а всего com-ов - 3. в конечном изделии все порты будут задействованы. очень не хочется тратить такой драгоценный порт на отладку.
  15. Возможно я плохо сформулировал вопрос. На процессоре ARM(str710), работает ОС uClinux. Из под нее запускается приложение. Возможна ли отладка этого приложения посредством gdb, через JTAG? И если возможно то как.
  16. У меня вопрос такой: не могу понять как использовать GDB для отладки пользовательских приложений под uClinux. Железо: Evaluation Board for STR71xF MB393B, J-Link. ПО: J-Link GDB Server, Debian linux, arm-elf-gcc 2.95.3, arm-elf-gdb 5.0. Подключаю JLink к Eval-Board и Windows-машине. Запускаем J-Link GDB Server на Windows-машине. На Linux-машине запускаю arm-elf-gdb и ввожу: file <приложение> target remote <IP Addr>:<Port> monitor reset load таким образом мы отлаживаем загрузчик или сам uClinux. А вот как отлаживать пользовательское приложение – не понятно. Может кто-нибудь подскажет что, или ссылочку полезную подкинет?
  17. спасибо, в линуксе я - новичек, но уже начал догадоваться что так оно есть :) ...
  18. Проблему удалось решить. Хотя, думаю, не лучшим образом, но все компилируется и вроде как работает. Я заменил строку 58: err = (errno < sys_nerr) ? sys_errlist[errno] : "unknown error"; на char temp[256]; sprintf (temp, "%d", errno); err=temp; т.е. вместо строки об ошибке я вывожу ее код. Таким образом я избавился от использования не объявленных переменных sys_ner и sys_errlist. Но почему эти переменные оказались не объявленными – не ясно. Может быть, кто-то поделится своими мыслями по этому поводу?
  19. Не молчите, товарищи, скажите хоть что-нибудь. Неужели ни у кого больше не было такой ошибки? Может, у меня кривая версия закачена?
  20. На своем компьютере, я использую ОС debian gnu/linux. При компиляции uClinux для STR710 возникли 2 проблемы: Проблема 1. компилирую в соответствии с указаниями an-2119.pdf: ядро 2.4, uClibc, все настройки – по умолчению. На шаге компиляции «make user_only» возникает ошибка: gcc -I/usr/include -c -o build/compr_rtime.o compr_rtime.c compr_rtime.c:31: error: syntax error before "uint32_t" compr_rtime.c: In function `jffs2_rtime_compress': compr_rtime.c:39: error: `sourcelen' undeclared (first use in this function) compr_rtime.c:39: error: (Each undeclared identifier is reported only once compr_rtime.c:39: error: for each function it appears in.) compr_rtime.c:39: error: `dstlen' undeclared (first use in this function) compr_rtime.c:43: error: `data_in' undeclared (first use in this function) compr_rtime.c:45: error: `cpage_out' undeclared (first use in this function) compr_rtime.c: At top level: compr_rtime.c:71: error: syntax error before "uint32_t" compr_rtime.c: In function `jffs2_rtime_decompress': compr_rtime.c:79: error: `destlen' undeclared (first use in this function) compr_rtime.c:84: error: `data_in' undeclared (first use in this function) compr_rtime.c:85: error: `cpage_out' undeclared (first use in this function) make[2]: *** [build/compr_rtime.o] ошибка 1 make[2]: Leaving directory `/home/ivan/ucLinux/uClinux-dist/user/mtd-utils' make[1]: *** [all] ошибка 2 make[1]: Leaving directory `/home/ivan/ucLinux/uClinux-dist/user' make: *** [user_only] ошибка 2 В принципе, удалось от нее избавиться, заменив uint32_t на __u32. Но правильный ли это путь? Проблема 2. Если, при конфигурировании, в ядро добавить gdbserver, то возникает ошибка (make user_only): arm-elf-gcc -c -O2 -g -fomit-frame-pointer -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -I/home/ivan/ucLinux/uClinux-dist/lib/uClibc/include -I/home/ivan/ucLinux/uClinux-dist/lib/libm -I/home/ivan/ucLinux/uClinux-dist/lib/libcrypt_old -I/home/ivan/ucLinux/uClinux-dist -fno-builtin -nostartfiles -I/home/ivan/ucLinux/uClinux-dist/linux-2.4.x/include -Ibfd -I./bfd -Igdb -Iinclude -Iconfig -I. gdbreplay.c cc1: warning: -g with -fomit-frame-pointer may not give sensible debugging gdbreplay.c: In function `perror_with_name': gdbreplay.c:58: `sys_nerr' undeclared (first use in this function) gdbreplay.c:58: (Each undeclared identifier is reported only once gdbreplay.c:58: for each function it appears in.) gdbreplay.c:58: `sys_errlist' undeclared (first use in this function) make[2]: *** [gdbreplay.o] ошибка 1 make[2]: Leaving directory `/home/ivan/ucLinux/uClinux-dist/user/gdbserver' make[1]: *** [all] ошибка 2 make[1]: Leaving directory `/home/ivan/ucLinux/uClinux-dist/user' make: *** [user_only] ошибка 2 Подскажите, пожалуйста, как устранить эту проблему.
×
×
  • Создать...