Jump to content

    

impatt

Участник
  • Content Count

    169
  • Joined

  • Last visited

Everything posted by impatt


  1. Доброе утро всем. Есть ARM9** на плате. Хочу поотлаживать линукс на нём. ARM оснащён JTAG интерфейсом. Вопрос: если я заведу GDB, то будет ли он корректно отлаживать ядро линукса ? Там ведь всякие режимы адресации: физические, логические, виртуальные.. Как сам JTAG интерфейс манипулирует типом адресов ? В общем, прокомментируйте, плз, кто может. Спасибо. ЗЫ: если это уже есть на форуме, прошу дать линк. Поиск всё равно хламной, искать даже не пробовал в этот раз (хватило прошлых разов).
  2. Добрый день. Собрался сделать антенку для wifi, но хочу ,чтобы не окислялась на улице. Надо покрасить. Надо покрасить с учётом того, чтобы не вязла мощность в краске. Антенны с рынка крашены какой-то матовой серой краской, типа грунтовки. Держится хорошо, но что она есть из себя и где такую взять - неясно. Размышляю над следующим: 1.УР-231. Наверняка не ВЧ, но слой тонкий, мож, не страшно, много не потеряется сигнала в ней ? 2. Какую-нибудь другую краску, типа автомобильной. Те-же соображения, что и по п.1. 3. Растворённые хорошие диэлектрики: полистирол или оргстекло (полиметилметакрилат) в дихлорэтане: полистирол имеет низкую адгезию к чистому металлу, облетит (мож, добавить туда чегонибудь ?), про оргстекло не знаю. Минусы - низкая атмосферная стойкость. 4. Стекловидная эмаль из кварцевой пыли - нереально, антенна погорит в печке :) 5. Пыль фторопласта-4 (кстати, где её берут ?) запечь на поверхности антенны - тоже фантастика. В общем, мож, у кого какие мысли будут ? Спасибо.
  3. Привет, админы. Сегодня решил написать по поводу писем от форума. У вас немного недонастроено что-то, поэтому на платформах, отличных от шиндовс, могут быть траблы. Собственно, если отступать от стандарта кодирования сообщений, то это вполне ожидаемо. Подсказка: не указана кодировка имени отправителя, в то время как в других полях указана. Вам для сведения, может, будет интерес поразбираться. А я потерплю, так что можно забить. Скриншот прилагаю.
  4. Цитата(udofun @ May 22 2012, 17:49) Если есть какой-то вопрос на который надо получить ответ - также пишите. Спасибо, приятно, когда самый главный человек на форуме предлагает такие вещи. Вопросов пока нет.
  5. Цитата(udofun @ May 22 2012, 11:35) ПРАВИЛА - http://electronix.ru/index.php?pid=2 собственно как они здесь и были с времен старых. Уважаемый, у меня лично был случай, когда ко мне применяли пункт правил, который на тот момент не был опубликован, а вы лично этот случай правоприменительной практики зааппрувили. Я без претензий, это ваш проект, так что поймите меня правильно. Отчасти поэтому я назвал режим правления авторитарным, так я понимаю это дело. Соответственно, написал товарищу, что правила админы применяют любые, а не только те, о которых предупреждены участники форума.
  6. Цитата(udofun @ May 22 2012, 11:20) вот такая вот авторитарная-анархия Я про практику применения правил, которые отсутствуют в публичном доступе. Впрочем, не хочу обсуждать действия админов, ибо запрещено. Всех благ, расшаркиваюсь.
  7. Цитата(level @ May 22 2012, 00:28) Как выключить ваши рассылки . Фильтром в почтовом клиенте Цитата(level @ May 22 2012, 00:28) Спамить некрасиво есличо. Предполагаю, что в правилах пользования форума найдётся согласие на подобные действия администрации Ну, а если и нет, то и неписанные правила всё равно к тебе применимы (были прецеденты), здесь авторитарный режим правления.
  8. Цитата(udofun @ May 19 2012, 06:20) я у себя с декодировкой никогда не видел проблем. Это потому, вероятно, что используете виндовс. Цитата(udofun @ May 19 2012, 06:20) буду благодарен - если укажите - как именно надо закодировать, что дописать. программиста подключим, допилит движок На вскидку, как немножко программист: поле Subject кодируется верно, вероятно потому, что формируется функцией преобразования в правильный вид, а поле From забыли формировать так-же. Вот пусть, наверное, программер глянет, как формируется одно и другое поле и сделает по образцу. Как-то так, наверное.
  9. Цитата(Maverick @ Mar 14 2012, 15:02) Эта проблема известна с времен существования форума... и неоднократно обсуждалась... А-а.. Ладно, пусть будет как есть Фирменный стиль, так-скать.
  10. IBIS файл на Samsung S3C2440

    Спрашивал у дилеров (МТ-Систем, Спб) - пошушукались с китайцами и послали нахрен. А нет ли у кого-нибудь из посетителей ? Поделитесь, плз.
  11. Привет всем. Вожусь с написанием загрузчика для iMX35(ARM1136), не зная толком архитектуры, так получилось. Блуждаю в потёмках Использую JTAG-отладчик (если можно его так назвать) OpenOCD, суть которого в том, что он даёт возможность из консоли пошагово исполнять команды, ставить брекпоинты, смотреть содержимое регистров и ещё немного всякого. Сам загрузчик состоит из нескольких частей, здесь коснусь только одну; работать она должна так: после сброса микроконтроллер читает страницу NAND-флэш в SRAM буфер, и начинает его исполнять. Тут-то я, как программер, должен извернутся и проинициализировать всякую периферию и собственно ARM1136. Если с периферией местами понятно, то с ARM1136 - совсем нет. Мой представление об этой тёмной части инициализации следующее: 1. Надо отключить все кэши, MMU и прочие замороченые вещи (хотя я предполагаю, что после сброса оно и так отключено, но не уверен). 2. Надо настроить шины, мосты между ними и прочую заумь Касательно первого пункта на свой страх и риск поставил кусок из, кажется, u-boot: CODE/* * flush v4 I/D caches */ mov r0, #0 mcr p15, 0, r0, c7, c7, 0 /* flush v3/v4 cache */ mcr p15, 0, r0, c8, c7, 0 /* flush v4 TLB */ /* * disable MMU stuff and caches */ mrc p15, 0, r0, c1, c0, 0 bic r0, r0, #0x00002300 @ clear bits 13, 9:8 (--V- --RS) bic r0, r0, #0x00000087 @ clear bits 7, 2:0 (B--- -CAM) orr r0, r0, #0x00000002 @ set bit 2 (A) Align orr r0, r0, #0x00001000 @ set bit 12 (I) I-Cache mcr p15, 0, r0, c1, c0, 0 Касательно шин: то место, где исполняется код загрузчика (тот самый SRAM-буфер NAND-контроллера), оно находится в юрисдикции периферийной шины. В документации про неё понаписано много, но мой слабый мозг это всё осознать не может (по крайней мере, на настоящий момент). Вот что сказано, например: The PPMRR in the ARM1136 CPU, could be programmed to 0x40000014 or 0x40000015 for the ARM1136 platform. These values corresponds to a base address of 0x40000000 with total peripheral region of 512 Mbytes and 1 Gbyte, respectively. Я делаю так: Кодldr r0, PPMRR_value mcr p15, 0 ,r0, c15, c2, 4 PPMRR_value: .word 0x40000015 Это похоже на то, что надо или вообще мимо ? Нда, ну и проделывая это, после пошагово выполняю код в SRAM-буфере NAND-контроллера и OpenOCD отваливается на определённом адресе, мол, таймаут чего-то там. Мож, проц завис ? Мож, какой-нибудь Abort произошёл - не могу вкурить. Равно как не знаю, как в этом случае выжать что-то более подробное с помощью OpenOCD. Но сперва хочется понять - вообще, так надо инициализировать или что-то ещё надо или вовсе иное надо ? Спасибо.
  12. Цитата(dch @ Mar 29 2010, 14:11) отключить всё с чем не умеете работать. Кусок кода точно поместился в память? Со светодиодом проще в чём то но дольше. Спасибо за ответ. Не мог сразу прореагировать - маленько мне тут прикрыли кислород. По сути вопроса: описание того, чем можно управляь с помощью сопроцессора #15 занимает страниц 150 чистого английского языка ПРичём темы, там обсуждаемые - совсем космические. Посему я бы и рад отключить, да не знаю как Там слишком много непонятного понаписано. Цитата(zhenekan @ Mar 30 2010, 00:17) Если зависает, то скорее всего какая то из предыдущих команд была неверна или из-за неправильной настройки чего то из периферии, вот на этой команде и зависло.... (хотя обычно виснет вроде как на следующей команде после вызвавшей ошибку) У меня было (правда не в openOCD) зависание когда все нормально даже... так как сообщения в терминал по UART выдавались далее... Совет пожалуй 1 - или светодиод, а лучше настройте UART и отлаживайтесь :-) будет проще А jtag у вас какой? Зависает даже в произвольным местах. Похоже на эффект неотключенного и несброшенного кэша. К сожалению, я плохо понимаю, как работает ARM в режиме отладки: например, возможно ли, что через JTAG в режиме отладки я вижу в памяти одно значение, а при работе без режима отладки (например, ещё и со включенным кэшем) процессор читает из "памяти" (т.е. замусоренного кэша) совсем другое значение ?.. Насчёт UART: даже попытка настройки его иногда заканчивалась зависанием В общем, атас. Сейчас это как-то преодолено с помощью заклинаний на ассемблере, взятых из разных загрузчиков. Надеюсь, что положительный эффект не случайный и устойчивый
  13. Сорри за тупой вопрос. Я не спец в АРМ-ах, но кое-что надо сделать, не познавая весь мир со стадии "когда Земля была жидкая". Посему нуждаюсь в конкретных советах: у меня есть консоль OpenOCD, подключенного к ARM1136, я могу загружать туда код и исполнять его, могу даже сделать что-то на ассемблере, скомпилировать и выдрать бинарный образ из ELF-контейнера. Надо переключить состояние с Abort или Undefined Instruction на Supervisor. Беда в том, что не знаю до тонкостей ARM-ассемблера и особенностей работы. Собсна, вот. Заранее спасибо.
  14. Привет всем. Есть кусок кода: CODE ; ; Disable L2 cache ; ldr r1, =CSP_BASE_REG_PA_L2CC ldr r0, =0x0 str r0, [r1, #L2CC_CR_OFFSET] Как я разумею: 1. "ldr r1, =CSP_BASE_REG_PA_L2CC" - загружает в r1 то, что содержится (а именно константа CSP_BASE_REG_PA_L2CC) в некоем адресе, заданном как смещение относительно PC. Так ? 2. "ldr r0, =0x0" - по аналогии, запись в r0 числа 0. Хотя, путь странноват. Неправильно понимаю ? 3. "str r0, [r1, #L2CC_CR_OFFSET]" - созранить значение из r0 в адрес, заданный как r1+ L2CC_CR_OFFSET. Верно понимаю ? Спасибо.
  15. Цитата(sergeeff @ Mar 19 2010, 17:57) Если не секрет. Откуда возникла такая потребность? Оба режима Abort или Undefined Instruction - это "аварийные режимы" процессора. Если вы в них попали, надо выяснять почему и исправлять программу. А вываливаться из них какой смысл? Не секрет, конечно: после сброса и до ввода в режим отладки, процессор успевает исполнять какой-то мусор с флэшки. Мне же его надо иметь в нормальном состоянии. Собственно, вот Вообще, я пока приведённым рецептом не воспользовался - нашёл способ сделать инче, но это частный случай, а так-то рецептик себе на манжету запишу
  16. Цитата(Aurochs @ Mar 18 2010, 16:55) Вот фрагмент кода на ассемблере, который позволит переключиться в режим супервизора Вольшое спасибо, похоже на то, что требуется
  17. DMA унд ARM

    Итак, ARM9, конкретно Самсунг S3c2440. Есть две микрухи памяти, по 16 магабайт каждая. Каждая содержит в себе 4 банка (х.з., что такое), имеет 16 разрядную шину данных. Планируется подключение их каждую на свою половину шины данных, стало быть, вдвоём они будут на шине 32 бита. Гимор с сигналами выбора банка (полагаю, что их можно прицепить на пару сраших адресных линий), и самый большой гимор с сигналами *DQM (UDQM, LDQM - их там пара). Вот что делать с ними - неизвестно. На схеме отладочной платы для at91rm9200, которую глянул ради интереса, они подключены к чему-то непонятному: одна к младшей адресной линии, другая к сигналу разрешения записи, что-ли, не вдавался. Подскажите, плз, как понимать эти ножки ? По скудным описаниям SDRAM в инете - увязать всё по нормальному не могу. Спасибо.
  18. От ПЛИС далёк, признаюсь. Но приходится коснуться. Вопрос в следующем: на ПЛИС надо будет сделать несколько (пару-тройку) целочисленных умножителей 16x16 бит и аналогичные делители. Логики немного, потому гляжу в сторону самых простых моделей. Что-то мне подсказывает, что сложнее всего делается делитель, и потому обратил своё внимание на оборудованность кристаллов аппаратными умножителями: почему-то думается, что деление может реализоваться с их помощью. Так вот, Altera кажется подороже при том что у неё аж 23 умножителя. А спартан самый попроще который - 4. И думаю: реально ли для делителя нужны умножители ? Если нет, то ворох аппаратных умножиетелей - явно избыток. И попутно: за сколько тактов делается деление ? Пардон за некую сумбурность. Спасибо за возможный ответ.
  19. openocd

    Цитата(klen @ Oct 8 2008, 20:55) а че собсна дебажить нада - OS или приложения? если прилагухи - то нада на таргете запустить GDB приатачить дебажуемый процес и через консоль его связать с IDE или четам у Вас прикручено ОС. А по существу вопроса есть какие-нибудь сведения ?
  20. openocd

    Привет всем. У меня валяется несколько Segger Jlink, пытаюсь скрестить OpenOCD + JLink + PXA270. В доке на OpenOCD какая-то каша (не могу вникнуть, а примеров не вижу). Я пробую подсунуть такой конфиг: --- telnet_port 1001 gdb_port 1234 interface jlink jtag_speed 10 #Marvell/Intel PXA270 Script # set jtag_nsrst_delay to the delay introduced by your reset circuit # the rest of the needed delays are built into the openocd program jtag_nsrst_delay 260 # set the jtag_ntrst_delay to the delay introduced by a reset circuit # the rest of the needed delays are built into the openocd program jtag_ntrst_delay 0 #use combined on interfaces or targets that can▓t set TRST/SRST separately reset_config trst_and_srst separate #jtag scan chain #format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE) jtag_device 7 0x1 0x7f 0x7e target xscale little 0 pxa27x # maps to PXA internal RAM. If you are using a PXA255 # you must initialize SDRAM or leave this option off working_area 0 0x5c000000 0x10000 nobackup #flash bank <driver> <base> <size> <chip_width> <bus_width> # works for P30 flash flash bank cfi 0x00000000 0x1000000 2 4 0 --- Кроме первых 4-х строк, остальное наобум вставил из какого-то конфига из комплекта OpenOCD. Вроде демон openocd запускается, на JLink-е моргает светодиод. Когда делаю что-то через телнет, то постоянно валится такая ошибка в ответ: ---- > halt target was in unknown state when halt was requested Runtime error, file "command.c", line 436: ---- И так далее. Хотя reset вроде сожрала. Так вот, вопрос: есть ли у кого какие-то соображения или рабочий конфиг ? Порассматривать в качестве примера. Спасибо заранее.
  21. openocd

    Соединил OpenOCD - Wiggler - PXA270. Зателнетился на openocd, можно всякие команды попыться поисполнять. Но не всё ясно. Напрмер, это: например, чтобы что-то сделать с контроллером, надо сперва его перевести в состояние halt (пардон, если использую корявые термины - пока профан в этой области). Набираю halt - пишет, мол, состояние контроллера неопределено. Пишу reset а затем halt - срабатывает. Начинают работать команды, можно брекпоинт поставить, например. Так вот, закавыка в том, что reset после того, как ОС на контроллере запустится, нежелательно делать - сбросится же всё Кто нибудь делает остановку контроллера без сброса ? Или вообще, как поставить, например, брекпоинт после того, как ОС стартовала и работает (с учётом того, что надо сперва сделать halt, которые хорошо ставится после reset, но без него не получается) ? Спасибо.
  22. Цитата(Волощенко @ Oct 8 2008, 11:25) Если камень преткновения в этом То тема подымалась, здесь http://electronix.ru/forum/index.php?showt...=32932&st=0 а также здесь http://electronix.ru/forum/index.php?showtopic=46469&hl= В последнем есть схемы деления как в прямом, так и доп.коде, их можно синтезировать как на HDL, так и редактором схем. За линки спасибо, думаю, что вполне могут пригодиться. Вопрос, главным образом, в оценке предпочтительности микросхемы (см. тему).
  23. Цитата(Kuzmi4 @ Oct 7 2008, 19:27) Неправильно думаете. Берём самый страшный случай там - страница 12 Операции с плавающей точкой не интересуют Цитата(yes @ Oct 7 2008, 19:50) пачему неправильно? если есть умножитель - делать можно на умножителе см xilinx ug073 там возможно больше хитростей с уменьшением тактов на операцию О, интересно. Почитал. Умножители не особо погоду делают, значит то-же количество тактов и всё такое.. А как, ты говоришь, можно схитрить с уменьшением количества тактов ? Цитата(vik0 @ Oct 7 2008, 17:11) Почитайте, что предлагает Xilinx для деления: http://www.xilinx.com/support/documentatio...n/div_ds530.pdf http://www.xilinx.com/ipcenter/catalog/log...cs/sdivider.pdf Это ж закрытая ботва ? Логика работы неясна, переносимости на альтеру нет. Невозможно оценить преимущества спартана перед циклоном.
  24. DMA унд ARM

    Цитата(Dog Pawlowa @ Sep 19 2008, 16:23) чтение и запись происходят одновременно. Ну, я ж не спрашиваю, что такое DMA ? Так что, сэр, предлагаю поразмыслить над тем, как имея одну шину адреса и одну шину данных, к которым подключен источник и получатаель, можно читать и писать _одновременно_. Типа, шина адреса будет сразу два адреса удерживать (источника и получателя), так что-ли ? Собсна, ввиду того, что такое невозможно, становится ясно, почему в ARM-ах а-ля PXA270 и S3C2440 сделано сходно и именно таким образом. Вопрос снят. ЗЫ: а за ссылочку спасибо - что-то я позабыл про cache coherency problem, вовремя вспомнил благодаря ссылочке
  25. DMA унд ARM

    Привет всем. Опять у меня дошли руки до АРМ-процов. Читаю доку на Samsung S3C2440. Интересует пересылка данных посредством DMA с подключенного внешнего устройства. Судя по прочтённому получается, что общение блоками состоит из: 1. Инициализация (подробности опущу). 2. 4 операции чтения + 4 операции записи (можно меньше, наверное). 3. Проверка готовности DMA 4. Если готов - продолжаем на шаг #2 5. Завершение (опускаю подробности). Требуется понять: нафига обязательные 4 чтения перед записью, если я хочу только писать ? Или наоборот ? Может, я как-то не так понял ? Как на других контроллерах сделано ? Цитата(impatt @ Sep 19 2008, 14:48) Требуется понять: нафига обязательные 4 чтения перед записью, если я хочу только писать ? Или наоборот ? Может, я как-то не так понял ? Как на других контроллерах сделано ? Э-э.. Кажется, я начинаю догонять. Сначала читается из того места, откуда берутся данные, потом пишется в целевое место, кусками по 4 слова. Так, что-ли ?..