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

Sauris

Участник
  • Постов

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

  • Посещение

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


  1. TI AM1808

    Там еще bootloader есть... По Reset именно в него входит процессор, и он что-то там делает согласно режима загрузки. По идее, если сделать Reset CPU через эмулятор, тогда процессор будет "в чистом состоянии", если же просто подключиться после подачи питания, то он прервет нечто, что исполняется в текущий момент, в каком-то неясном состоянии.
  2. TI AM1808

    Тут другой вопрос скорее... Кто и зачем включил этот user mode? По reset-у согласно документации ядро стартует супервайзером (Table 2-1.)
  3. TI AM1808

    Если правильно помню, туда через SWI вход - либо System mode, либо Supervisor. Увидеть же, какой режим сейчас, можно в PSR (биты 4:0)
  4. TI AM1808

    Возможно, но в любом случае, на сколько я помню, запись в эти регистры (SYSCFG) возможна только из Priveleged mode. В общем, тут моя память закончилась (на сколько я помню, эмулятор всегда в Privileged, поэтому писать должен. Да и тот же GEL, конфигурируя, например, EMIF, свободно меняет PINMUXы). Для дальнейших полезных подсказок надо иметь на столе систему на AM1808, к сожалению сейчас таковой у меня нет. Вдогонку... У меня были похожие глюки на AM3517, когда я случайно запустил его на сильно запредельной частоте PLL... Вряд ли, конечно, у Вас такое же. Но тем не менее...
  5. TI AM1808

    Странно это. Жаль я не могу проверить это сейчас. Ну тут как вариант, надо включить сначала LCDC в PSC1. А попробуйте другие PINMUX писать, например EMIF. Попробуйте туда записать 22222222 прямо через memory browser, и потом обновить его, для проверки "а записалось ли".
  6. TI AM1808

    Это не важно, я же поправился, тут речь про SYSCFG, а не GPIO. Вы должны увидеть 0x22222222, если откроете memory browser ПОСЛЕ исполнения вашего "hotmenu", или если вручную обновите в нем данные.
  7. TI AM1808

    Ой. Был не прав. PINMUX это же SYSCFG, а не GPIO. Ну GPIO включен. Так что разбирайтесь, скорее всего, с memory protection, чего это он не дает туда записывать из ARM. После выполнения скрипта, возможно надо обновить содержимое browser, он может автоматом не обновляться, и увидеть там 22222222
  8. TI AM1808

    Во первых, я там ошибся с адресом, исправил, сорри. Во вторых - да, должны увидеть 0x22222222. Но, если это сделано до PSC1_LPSС_ENABLE для GPIO, то и не должны.
  9. TI AM1808

    Не, не совсем они. Нужного MDSTAT тут нет. Его адрес 01E2780Ch ( MDSTAT0 - 01E27800h ) ( MDSTAT1 - 01E27804h ) ( MDSTAT2 - 01E27808h ) ( MDSTAT3 - 01E2780Ch ) ( MDSTAT4 - 01E27810h ) ....
  10. TI AM1808

    Вот именно на этом рисунке и написано, что его состояние по умолчанию - SwRstDisable, что значит, что он без клока и в резете. Ну да, питание ему выключить нельзя... Но что это меняет, если ему обрублено все остальное :) :) Эмулятором считайте регистр MDSTAT19 MDSTAT3 в PSC1 - будет видно, в каком состоянии GPIO UPD: По идее, его мог включить (если он включен) начальный загрузчик, который в ROM, если ему надо что-то делать через GPIO. UPD2: Его включает GEL файл, вызовом "PSC1_LPSC_enable(0, LPSC_GPIO);" - так что при запуске из-под эмулятора, если GEL подцеплен, то GPIO включен (и вообще, он там все что ни попадя включает).
  11. TI AM1808

    ну вообще документация говорит вот что: 20.2.9 Initialization The following steps are required to configure the GPIO module after a hardware reset: 1. Perform the necessary device pin multiplexing setup (see your device-specific data manual). 2. Program the Power and Sleep Controller (PSC) to enable the GPIO module. For details on the PSC, see the Power and Sleep Controller (PSC) chapter. А где сказано, что он "Always ON" ? Я вижу в разделе про PSC, что у него состояние по умолчанию "SwRstDisable" а не "Enable" Но, еще раз, раз эмулятор пишет в этот регистр, то это говорит, что он все же включен. Ну, либо, это какие-то глюки каких-то кешей, что эмулятор якобы пишет, но только якобы. Как перевести его в Enable читайте в "8.3.2 Module State Transitions" - там надо задать Enable в его MDCTLn и потом дать "GO" в PTCMD
  12. TI AM1808

    Ну Вы сами же это опровергли, когда я предполагал, что что-то не выведено из резета или обесклочено. Тогда бы и через эмулятор не писалось (хотя, возможно, вопрос еще в GEL, что при запуске под эмуляцией он что-то там сам проинициализировал, а без эмуляции - нет) Зато тут есть куда круче. Memory Protection Unit (MPU), режимы исполнения Supervisor и User, и в самом ARM еще есть MMU.
  13. TI AM1808

    Возможно, что-то с механизмами защиты памяти. Уровни доступа через эмулятор и у пользовательского кода - это, как говорится, две большие разницы.
  14. TI AM1808 + XDS510USB

    Ну это не удивительно, пытаться запустить код с библиотекой от ARMv7 (конкретно от ARM Cortex-M3) на архитектуре ARMv5 (ARM9) - это как бы, как код от пентиума с MMX запускать на старом i8086.
  15. TI AM1808

    Именно в тот момент, когда "этот код не работает" ? То есть, поставив туда точку останова, и после ее срабатывания? Еще попробуйте убрать в скобки "PINMUX_REG_ADDR" - может быть он объявлен как арифметика без скобок в дефайне, и тогда результат от (unsigned int*) может быть непредсказуем. 2 Сергей Борщ - Ну раз "Если указатель на обычный кусок памяти - всё гуд" - то, вроде, volatile тут не причем. Да и не должен оптимизатор такое выкидывать, когда работа через указатель, объявленный глобально.
  16. TI AM1808

    Как вариант, этому блоку, в котором находится регистр, не включен клок, или он не выведен из состояния резета (по аналогии с другими АРМ-ами TI)
  17. TI AM1808 + XDS510USB

    Угу, не так понимаете... Адаптивное тактирование, это когда эмулятор выдает следующий перепад на линии TCK только после того, как предыдущий перепад прошел через процессор, войдя в него по TCK, и выйдя по RTCK. Вообще, это реализуется тупым инвертором и триггером, на вход триггера подается RTCK, с выхода через инвертор подается на TCK, ну и это чем-то там тактируется достаточно высокочастотным (я недопонимаю, чего там спектрумдигитал на 150 баксов наворотил). Суть этого процесса в том, что в зависимости от тактовой ядра процессора (у ARM9), меняется максимально допустимая тактовая его TCK. Схема адаптивного тактирования сама адаптируется к изменению тактовой частоты ядра и меняет частоту TCK, поддерживая ее всегда около максимально разрешенной для данного режима процессора. А она, максимально разрешенная, меняется в разы и в десятки раз при запуске PLL и изменениях ее коэффициентов умножения. Вот, изучите на досуге. http://www.blackhawk-dsp.com/downloads/doc...cking-TA-01.pdf ЗЫ надо бы нам статейку в нашей wiki накатать по-русски... ЗЗЫ Да, настройка "Automatic with limit", возможно, подразумевает адаптивное тактирование. Это уже надо изучать доку на конкретный эмулятор, что они там подразумевают под этим. И совсем вдогонку. Еще вариант есть для XDS510 - найти где-то в Вашей плате клок 1 МГц или ниже, и его завести на TCK процессора и TCK_RET эмулятора. А RTCK процессора и TCK эмулятора не использовать. Возможно, спасет ситуацию для 510.
  18. TI AM1808 + XDS510USB

    XDS510 в принципе своем (не зависимо от производителя) поддерживает все те семейства, что поддерживает XDS560, без каких либо исключений или добавок. А вот в частностях, чтобы XDS510 корректно работал с ARM9 (любым ARM9), надо либо самому обеспечить адаптивную генерацию TCK, не используя сигнал TCK с эмулятора (или используя его как строб для триггера петли RTCK->TCK), подавая на эмулятор получившийся TCK_RET, либо купить готовый адаптер с адаптивным тактированием, ну или использовать такой XDS510, в котором адаптивное тактирование встроено. Еще одна частность, возможно, поможет добавление параметра router.skip_polling YES и router.adaptive_tclk yes, но зная особенности спектрумовских драйверов, не факт, что они будут вообще как-то реагировать на эти настройки, в отличие от других XDS510, базирующихся на драйверах TI. Да и адаптивное тактирование надо обеспечить, прежде чем играться этими параметрами. На сайте спектрума написано, что поддерживает OMAP - значит поддерживает OMAP-L138 - а значит и его кастрированную версию - AM1808 UPD: Вроде у XDS510 спектрума нет возможности менять параметры тактирования, в железе нет. UPD2: Если отвалилось, причем с такими ошибками, то надо полностью перезапускать дебаг сессию, с нуля, а с учетом того, что в современных композерах ее не всегда удается "срубить", то вплоть до перезапуска композера. После чего сделать "Reset emulator" и еще передернуть питание у таргета. К сожалению, код драйверов эмуляции TI построен так, что в нет ничего для корректного завершения после ошибочной ситуации. Внутренние эмуляционные блоки процессора остаются черти в каком состоянии, из которых корректно выйти практически невозможно.
  19. TI AM1808 + XDS510USB

    XDS510 полностью поддерживает AM1808. Все эти проблемы случаются от двух вещей: 1) (в части ошибок во время заливки программы, коннекта, или исполнения GEL) - не включено адаптивное тактирование. Для ARM9 оно необходимо, ну либо ставить частоту TCK в 4 или более раз меньше той частоты, на которой стартует процессор до инициализации PLL. Это особенности архитектуры ARM9 и его эмуляционного блока. 2) ( в той же части) - несогласованность линий JTAG, особенно TCK_RET, слишком большие выбросы на них, или некорректные уровни (например 5-вольтовые при допустимых в 3.3). ну и 3) - это уже в части, когда программа залилась, запустилась, а после ее останова происходят всевозможные глюки - то это, скорее всего, ошибка в программе, которая привела либо к записи в недокументированные области адресного пространства процессора, либо ушла на исполнение "левого" кода (например данных в качестве кода), например, из-за проблем со стеком.
  20. Разобрались в вопросе. Нужный файлик можно уже взять с сауриса (из соотв. темы форума), на днях инсталлятор выложим новый, в котором он будет внутри вместе с полной поддержкой CCS6.
  21. 1) Если у Вас эмулятор "Iso" или "Iso Plus", то и выбирать надо "Iso [Plus]" 2) Ну как бы нельзя.... 3) Test Connection и не будет работать, так как для тестов у нас нет отдельной утилиты. Можете использовать штатные xdsprobe или dbgjtag. 4) Будет. По административным причинам небольшая задержка с выходом драйверов (если честно - я до сих пор не получил сам CCS6), но "вручную" уже можно засетапить его и сейчас (на форуме Sauris выложен архив).
  22. Разницы нет, обратная совместимость полная. А вот поправить конфигурацию таргета в CCS придется, указав там новый эмулятор.
  23. Давайте не везде сразу :) - или тут, или у нас. Вот архив для ручной установки поддержки в CCS6 ЗЫ модераторам. Объедините пожалуйста эту тему с основной "Вопрос к SAURIS GmbH" ccsv6_files.rar
  24. Поддержка конкретного процессора - это не наша компетенция, а TI. Видимо, следует обновить CCS.
  25. Ждите... Там все не так и просто. Железо, начиная с Iso V2, все поддерживает, а вот дрова сделать так, чтобы это виделось как родное FTDI-изделие, в долгой и нудной работе.
×
×
  • Создать...