Jump to content

    

impatt

Участник
  • Content Count

    169
  • Joined

  • Last visited

Community Reputation

0 Обычный

About impatt

  • Rank
    Частый гость
  • Birthday 07/26/1977

Контакты

  • Сайт
    http://

Информация

  • Город
    Челябинск
  1. Цитата(udofun @ May 22 2012, 17:49) Если есть какой-то вопрос на который надо получить ответ - также пишите. Спасибо, приятно, когда самый главный человек на форуме предлагает такие вещи. Вопросов пока нет.
  2. Цитата(udofun @ May 22 2012, 11:35) ПРАВИЛА - http://electronix.ru/index.php?pid=2 собственно как они здесь и были с времен старых. Уважаемый, у меня лично был случай, когда ко мне применяли пункт правил, который на тот момент не был опубликован, а вы лично этот случай правоприменительной практики зааппрувили. Я без претензий, это ваш проект, так что поймите меня правильно. Отчасти поэтому я назвал режим правления авторитарным, так я понимаю это дело. Соответственно, написал товарищу, что правила админы применяют любые, а не только те, о которых предупреждены участники форума.
  3. Цитата(udofun @ May 22 2012, 11:20) вот такая вот авторитарная-анархия Я про практику применения правил, которые отсутствуют в публичном доступе. Впрочем, не хочу обсуждать действия админов, ибо запрещено. Всех благ, расшаркиваюсь.
  4. Цитата(level @ May 22 2012, 00:28) Как выключить ваши рассылки . Фильтром в почтовом клиенте Цитата(level @ May 22 2012, 00:28) Спамить некрасиво есличо. Предполагаю, что в правилах пользования форума найдётся согласие на подобные действия администрации Ну, а если и нет, то и неписанные правила всё равно к тебе применимы (были прецеденты), здесь авторитарный режим правления.
  5. Цитата(udofun @ May 19 2012, 06:20) я у себя с декодировкой никогда не видел проблем. Это потому, вероятно, что используете виндовс. Цитата(udofun @ May 19 2012, 06:20) буду благодарен - если укажите - как именно надо закодировать, что дописать. программиста подключим, допилит движок На вскидку, как немножко программист: поле Subject кодируется верно, вероятно потому, что формируется функцией преобразования в правильный вид, а поле From забыли формировать так-же. Вот пусть, наверное, программер глянет, как формируется одно и другое поле и сделает по образцу. Как-то так, наверное.
  6. Цитата(Maverick @ Mar 14 2012, 15:02) Эта проблема известна с времен существования форума... и неоднократно обсуждалась... А-а.. Ладно, пусть будет как есть Фирменный стиль, так-скать.
  7. Привет, админы. Сегодня решил написать по поводу писем от форума. У вас немного недонастроено что-то, поэтому на платформах, отличных от шиндовс, могут быть траблы. Собственно, если отступать от стандарта кодирования сообщений, то это вполне ожидаемо. Подсказка: не указана кодировка имени отправителя, в то время как в других полях указана. Вам для сведения, может, будет интерес поразбираться. А я потерплю, так что можно забить. Скриншот прилагаю.
  8. Цитата(dch @ Mar 29 2010, 14:11) отключить всё с чем не умеете работать. Кусок кода точно поместился в память? Со светодиодом проще в чём то но дольше. Спасибо за ответ. Не мог сразу прореагировать - маленько мне тут прикрыли кислород. По сути вопроса: описание того, чем можно управляь с помощью сопроцессора #15 занимает страниц 150 чистого английского языка ПРичём темы, там обсуждаемые - совсем космические. Посему я бы и рад отключить, да не знаю как Там слишком много непонятного понаписано. Цитата(zhenekan @ Mar 30 2010, 00:17) Если зависает, то скорее всего какая то из предыдущих команд была неверна или из-за неправильной настройки чего то из периферии, вот на этой команде и зависло.... (хотя обычно виснет вроде как на следующей команде после вызвавшей ошибку) У меня было (правда не в openOCD) зависание когда все нормально даже... так как сообщения в терминал по UART выдавались далее... Совет пожалуй 1 - или светодиод, а лучше настройте UART и отлаживайтесь :-) будет проще А jtag у вас какой? Зависает даже в произвольным местах. Похоже на эффект неотключенного и несброшенного кэша. К сожалению, я плохо понимаю, как работает ARM в режиме отладки: например, возможно ли, что через JTAG в режиме отладки я вижу в памяти одно значение, а при работе без режима отладки (например, ещё и со включенным кэшем) процессор читает из "памяти" (т.е. замусоренного кэша) совсем другое значение ?.. Насчёт UART: даже попытка настройки его иногда заканчивалась зависанием В общем, атас. Сейчас это как-то преодолено с помощью заклинаний на ассемблере, взятых из разных загрузчиков. Надеюсь, что положительный эффект не случайный и устойчивый
  9. Привет всем. Есть кусок кода: 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. Верно понимаю ? Спасибо.
  10. Привет всем. Вожусь с написанием загрузчика для 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. Но сперва хочется понять - вообще, так надо инициализировать или что-то ещё надо или вовсе иное надо ? Спасибо.
  11. Цитата(sergeeff @ Mar 19 2010, 17:57) Если не секрет. Откуда возникла такая потребность? Оба режима Abort или Undefined Instruction - это "аварийные режимы" процессора. Если вы в них попали, надо выяснять почему и исправлять программу. А вываливаться из них какой смысл? Не секрет, конечно: после сброса и до ввода в режим отладки, процессор успевает исполнять какой-то мусор с флэшки. Мне же его надо иметь в нормальном состоянии. Собственно, вот Вообще, я пока приведённым рецептом не воспользовался - нашёл способ сделать инче, но это частный случай, а так-то рецептик себе на манжету запишу
  12. Цитата(Aurochs @ Mar 18 2010, 16:55) Вот фрагмент кода на ассемблере, который позволит переключиться в режим супервизора Вольшое спасибо, похоже на то, что требуется
  13. Сорри за тупой вопрос. Я не спец в АРМ-ах, но кое-что надо сделать, не познавая весь мир со стадии "когда Земля была жидкая". Посему нуждаюсь в конкретных советах: у меня есть консоль OpenOCD, подключенного к ARM1136, я могу загружать туда код и исполнять его, могу даже сделать что-то на ассемблере, скомпилировать и выдрать бинарный образ из ELF-контейнера. Надо переключить состояние с Abort или Undefined Instruction на Supervisor. Беда в том, что не знаю до тонкостей ARM-ассемблера и особенностей работы. Собсна, вот. Заранее спасибо.
  14. openocd

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

    Соединил OpenOCD - Wiggler - PXA270. Зателнетился на openocd, можно всякие команды попыться поисполнять. Но не всё ясно. Напрмер, это: например, чтобы что-то сделать с контроллером, надо сперва его перевести в состояние halt (пардон, если использую корявые термины - пока профан в этой области). Набираю halt - пишет, мол, состояние контроллера неопределено. Пишу reset а затем halt - срабатывает. Начинают работать команды, можно брекпоинт поставить, например. Так вот, закавыка в том, что reset после того, как ОС на контроллере запустится, нежелательно делать - сбросится же всё Кто нибудь делает остановку контроллера без сброса ? Или вообще, как поставить, например, брекпоинт после того, как ОС стартовала и работает (с учётом того, что надо сперва сделать halt, которые хорошо ставится после reset, но без него не получается) ? Спасибо.