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

AndrejM

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

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

  • Посещение

Сообщения, опубликованные AndrejM


  1. On 10/17/2021 at 10:28 AM, AndrejM said:

     

    вопрос к ELVEES R&D Center , отладочная плата Салют-ЭЛ24ОМ1 рев.1.2

    Вопрос снят, разобрался. Скачал с git-а  u-boot ,и собрал как мне нужно.

    Но появился еще один.

    Мне к этой отладке дали еще устройство под названием mc-usb-jtag , документации нет , из программного обеспечения одна утилита , которой , как я понял можно spi flash прошить. 

    Есть ли у вас на него документация? На сколько это полноценный j-tag, и можно ли его с oprnocd по использовать для ядра cortex-a9?

  2. Добрый день. 

    вопрос к ELVEES R&D Center , отладочная плата Салют-ЭЛ24ОМ1 рев.1.2 , я  знакомлюсь с документацией на процессор и  исследую периферию , для этого пишу небольшие bare-metal приложения и запускаю из под u-boot (elf с загрузкой с SD карты).

    Несколько строк на ассемблере запустить получается , в том числе что то вывести в uart , а вот запуск более крупной сборки заканчивается примерно так:

    reading test2
    272744 bytes read in 31 ms (8.4 MiB/s)
    mcom# bootelf 0x60000000
    CACHE: Misaligned operation at range [40010000, 40013038]
    CACHE: Misaligned operation at range [40013038, 40013058]
    CACHE: Misaligned operation at range [40013058, 40013100]
    CACHE: Misaligned operation at range [40013100, 40013110]
    CACHE: Misaligned operation at range [40013110, 400134bd]
    CACHE: Misaligned operation at range [400134bd, 400134d6]
    CACHE: Misaligned operation at range [400134d6, 400134da]
    CACHE: Misaligned operation at range [400134dc, 400134fc]
    CACHE: Misaligned operation at range [400134fc, 4001351c]
    CACHE: Misaligned operation at range [4001351c, 40013538]
    CACHE: Misaligned operation at range [40013538, 4001354c]
    CACHE: Misaligned operation at range [4001354c, 4001356c]
    CACHE: Misaligned operation at range [4001356c, 40013574]
    CACHE: Misaligned operation at range [40013578, 400155ac]
    CACHE: Misaligned operation at range [500166ac, 500196ac]
    CACHE: Misaligned operation at range [50100000, 50100804]
    ## Starting application at 0x40000000 ...
    plU cm
      ete.
    *************** test2 start *****************
    undefined instruction
    pc : [<00000004>]          lr : [<40013108>]
    reloc pc : [<c0082044>]    lr : [<00095148>]
    sp : 50019670  ip : 4001310c     fp : 7ff800cc
    r10: 00000002  r9 : 7f76dee0     r8 : 7f78bad8
    r7 : 5001967c  r6 : 7f78bae0     r5 : 00000000  r4 : 00000000
    r3 : 00000020  r2 : 00000804     r1 : 00000000  r0 : 000000ff
    Flags: nZCv  IRQs off  FIQs off  Mode SVC_32
    Resetting CPU ...
     

    Можно ли как то, используя u-boot загрузить elf на исполнение  с предварительно выключенным MMU и кэшами?   Ну или как , вы советуете поступить , для решения озвученной выше задачи?

  3. Для управления критически важными объектами в плане требований к архитектуре и к разработке все уже придумано, и более, как военные уставы написано кровью. Можете изучить соответствующий ГОСТ   МЭК61508 (он же IEC61508), а если решите использовать несколько архитектур то тогда вам еще понадобится МЭК61784, прочитайте там требования к безопасным коммуникационным профилям и оцените надо оно вообще для вашей задачи, или же достаточно будет, к примеру, то же геркулес взять и в рамках одного CU решить. Ну и требования к разработке ПО посмотрите, прежде чем решение принимать, там много сюрпризов типа запрета арифметики с указателями, фактический запрет приведения типов, запрет использования динамической памяти, запрет использования внешних прерываний и.т.д.  Я вас уверяю, что даже после поверхностного изучения темы, ваша альтернатива выбора контроллера уложится в два пальца на руке (ну и третий отказаться от задачи), если вы конечно не представитель корпорации типа Боинга.

    Ну и до кучи. Безопасность и надежность это не одно и тоже, более того требования там противоположные, понятно, что конечное изделие должно как то и тому другому удовлетворять, вот поиск этого компромисса и есть настоящий вопрос.

  4. загляните в примеры для freertos , там есть для cortex-a9 реализация FreeRTOS_IRQ_Handler в файле portASM.s .

    стартуете в supervisor , в обработчике снова в него переключаетесь

    FreeRTOS_IRQ_Handler

     

    ; Return to the interrupted instruction.

    SUB lr, lr, #4

     

    ; Push the return address and SPSR

    PUSH {lr}

    MRS lr, SPSR

    PUSH {lr}

     

    ; Change to supervisor mode to allow reentry.

    CPS #SVC_MODE

     

    ; Push used registers.

    PUSH {r0-r4, r12}

    ............................

  5. возьмите другую плату да проверьте.

    у меня есть тоже запиленная до дыр discovery f429 , и подобные же спецэффекты не так давно начали проявляться , проблема судя по всему по питанию , ибо если на 0.1 V подать больше , то все работает.

  6. извиняюсь , наврал я вам . это я так хотел сделать , но не получилось . в итоге выходной файл IAR в формате binary , и запуск с адреса загрузки , там reset vector

    __vector:

    ARM

     

    LDR PC,Reset_Addr ; Reset

     

    DATA

     

    Reset_Addr: DCD __iar_program_start

     

     

    map

    __vector 0x80000000 Code Gb cstartup.o

  7. У меня подозрение на 2 вещи: 1) с какого адреса нужно делать запуск и правильность процедуры запуска,

    и второе, ИАР компилит бинарник либо со встроенной загрузочной записью (IVT, DCD и т.д.) либо без нее.

    Каким образом можно стартовать оба случая, т.е. точки входа - непонятно.

     

    Пытался с 0 адреса(по оффсету, конечно), +4, как в стм, и +20, как в вибриде - ничего.

    Потом попробовал просто перейти на 0й адрес, по идее, там должен бутром стартануть, но тоже нет, что за магия такая??? Вот тут бы кто разъяснил...

     

    а к чему эти искания? IAR (если его об ином не просить) сгородит вам в elf формате , при загрузке image прочитали в заголовке адрес точки входа (e_entry) от туда и запускайте. или в чем то другом вопрос?

  8. NVIC_InitStructure.NVIC_IRQChannelPriority = configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY + 1;

     

    посмотрите в отладчике какой реально приоритет функция NVIC_Init установит в IP регистр , не знаю как для F072 , но для F407 NVIC_Init это делает не правильно ,в результате вы можете иметь проблемы с вызовом функций freertos из вашего прерывания.

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

     

    для чистоты экспериментов , у bootloader есть режим Emulation Debug если его установить (boot mode pins) то после reset ничего вообще исполняться не будет в ожидании коннекта через jtag

  10. не знаю что вам еще посоветовать ,а как это все конструктивно выглядит ? там с питанием ,с проводами все хорошо? :)

     

    connect через раз у меня был на am3359 ,если в настройках эмулятора опция target reset установлена software , при установке в hardware reset все нормализовалось. посмотрите наверное в CCS есть что то подобное.

  11. запускаю коннект, вижу, как частота наростает и устанавливается на 10 MHz.

     

    там же есть вариант адаптивного режима по частоте с установленным лимитом , если именно он выбран тогда не будет она подниматься выше того что установили

     

  12. Счас ещё раз попробую. Вообще по-умолчанию Target Timeouts - Very Fast, JTAG TCLK 10.368 MHz

    ну раз при более медленной clk и длинных timeouts "виснет" , значит при значениях по умолчанию просто по timeout вываливалось - не работает интерфейс эмулятора.

  13. и замечено, что для данного процессора GEL-файл отсутствует. Пытаюсь понять, в нем ли проблема?

     

    странно что нет , я хоть и не пользую CCS , но ставил его как раз чтобы взять gel и на его основе сделать mac для IAR.

     

    вот посмотрел в том что установлено есть \ti\ccsv5\ccs_base\emulation\gel\am1808.gel , оно вам не подходит?

  14. Спасибо, счас посмотрю все Ваши ссылки. Насколько понимаю, одна из функций GEL-файла это то, что он описывает карту памяти для дебагера, т.е. на основании его заливается прошивка? Он как бы необходим CCS. Как тогда получается что для остальных процессоров в папке c:\ti\ccsv5\ccs_base\emulation\gel\ присутствуют соответствующие GEL файлы, а для AM1808 нет. В примерах StarterWare на AM1808 нашёл такой файлик и попробовал подключать, но не прокатило, выбрасывает ошибки. Их можно коментить и до какой-то поры всё работает, процессор модключается, могу смотреть, перезаписывать адреса On-Chip RAM, но вот заливка прошивки не проходит. Это баг TI, что в CCS нет нормального файла или подразумевается, что я должен написать его сам?

     

    ситуация следующая , поскольку flash памяти нет ,то ваше приложение для работы должно быть загружено либо во внутренюю sram либо во внешнюю ddr память . обычно порядок загрузки такой , rom-boot (загрузчик в нестираемом пзу процессора) с одного из устройств загрузки считывает код и размещает его во внутренюю sram (ну и управление ему передает) . в задачи этого код (загруженного в sram) стоит инициализация всего и вся - все клоки , power менеджмент , и самое главное инициализирует внешнюю ddr и загружет туда ваше приложение (ну к примеру с sd карты) и передает ему управление.

    это все относилось к "рабочему режиму" , при отладке ваш jtag может сразу загручить что угодно и куда угодно (потытаться это сделать) , но если вы собрались использовать внешнюю память , то кто то должен произвести ее иницализацию , для этого пишут скрипт с макросами , который будет в начале исполнен отладчиком ,а потом уже загружено приложение. это и есть этот самый gel . соотвественно нужен он в ,основном , когда то куда вы собираетесь разместить когда приложения требует каких то действий перед самой загрузкой. для приложения которое будет работать из onchip sram макро-файл исполнять не нужно. А вообще очень полезно этот файл написать самостоятельно (взяв что то для примера) , это знания о базовых вещах процессора.

    я не знаю , может быть для am1808 нужны какие то предварительные иницаилизационные действия , которые в штатном режиме делает boot-rom , но для более старших моделей TI этого не требуется , и если вы ,скажем попытались загрузить в "пустоту" то просто получите ошибки при верификации.

    а вообще поищите gel , есть ведь всякие dev-boards с этим процессором .

  15. В мануале на AM1808 прописано, что адреса 0х8000_0000 - 0х8001_FFFF (128K) - On-Chip RAM, туда и пытаюсь залить, или Вы что-то другое увидели?

     

    да , мне показалось там 0xB0000000 , ваша правда во внутреннюю память грузить пытаетесь.

  16. при попытке залить прошивку выбрасывает ошибку (см. рисунок).

     

    Связана ли эта ошибка с данным файлом? И как поступить?

     

    судя по картинке "прошивку" вы пытаетесь залить в диапазон адресов внешней памяти (ddr) ,есть она у вас или нет я не знаю , но то что вы не нашли gel говорит о том что она как минимум не инициализирована. Попробуйте для начала загрузить во внутреннюю sram , когда все получится тогда уже разберетесь как в ddr грузить и зачем gel нужен.

     

  17. И что это? Демонстрация умения искать в гугле, и ориентироваться на сайте TI?

    это свежая информация по теме BBB.

     

    если лень смотреть то вот резюме:

     

    "Бесплатный комплект для разработки ПО (SDK) Linux от компании TI позволяет быстро и легко оценить программное обеспечение Linux на базе ядра 3.12.10 для процессоров Sitara AM335x и компьютеров BeagleBone Black на базе процессоров AM335x.

     

    Благодаря этому новому предложению стержневой ветви встроенные конструкторы, использующие процессоры Sitara, смогут в полной мере воспользоваться поддержкой новейших устройств, функций и исправлений в новых версиях ядра Linux. Эти улучшения будут предлагаться с регулярным интервалом, так что со временем вы сможете почувствовать пользу от растущей стабильности, надежности и качества стержневой ветви Linux. Новейший Sitara Linux SDK 7.0 для процессоров AM335x "

×
×
  • Создать...