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

AzardCry

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

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

  • Посещение

Репутация

0 Обычный

Информация о AzardCry

  • Звание
    Участник
    Участник

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

  1. Ошибка с STR была причиной HardFault изначально, не то записал. Был уверен, что Keil выполняет пошагово, но, почему-то в моём конкретном случае он не желал заходить в __main до того момента, пока я не добавил в область данных DCD ProgStart и не сделал свой код внутренностями процедуры. 1.__main 2. ProgStart PROC . .. ENDP, после этого стал заходить в main.s, работает. PS: И научитесь вставлять в сообщения текст исходных кодов, а не картинки. Кнопка для этого есть здесь в редакторе. Также научитесь корректно цитировать. -> Это я не уметь. Я так редко заходить. Обычно я говорить с ИИ и читать книжки, уже существующие ответы на форумах... Но я стараться!
  2. Хотя бы прочитать в описании системы команд - что именно делают написанные вами команды CPU? Нет? -> Собственно, всем этим и другим занимаюсь (когда есть время). Вот оформленная в виде функции в коде на Си ассемблерная вставка работает..., а простая программа чисто в ассемблерном формате - нет. Пытаюсь выяснить, как же так... Вы смешиваете понятия "программа не компилируется или компилируется с ошибками" (п.1) с понятием "программа выполняется неверно" (п.2) -> Вроде нет - я говорю, что у меня есть событие А, и есть событие Б, я не говорю, что они связаны, но я не знаю, есть ли связь между ними или нет, поэтому указываю сразу и то, и другое. Первый раз смотрю в sct файл. Это писать бессмысленно, так как у Cortex-M нету других режимов кроме Thumb2. -> А как же THUMB (урезанные, 16 бит?). Но, честно говоря, на данном этапе мне всё равно, главное, что функционал свой выполняют. Что именно делаете и как выполняете - тоже ничего не понятно. Пошагово? Если да - то как? -> Делал с заходом, делал без него. Вылет на BX R0 после LDR R0, __main. Пошаговое с заходом, есть. Но BX R0 выполняется ПОШАГОВО, без пропуска моей __main, и я уже попадаю в HF. То есть, с моей точки зрения, я даже на MOVS R0, #10 не попадаю. Кто надумал писать в переменную, объявленную в const-памяти? (запись в CellAddr объявленную как const). -> Это вижу Ещё раз: смотрите ваш же первый скриншот. На нём видно куда идёт переход. -> 0x0800013A, на себя же саму? нет? Но это и не важно (пока), так как до этого дело не доходит.
  3. Отключил, отладка протекает так же. CFSR - 0x04 - неточная ошибка доступа к данным. Касательно 0x08000288 от jcxz - значение лежит в R1 когда LDR R0, =SystemInit вы об этом писали? Но все команды, даже используемые в __main это значение для записи не используют... Если "Очевидно в последней строчке происходит переход за пределы "программы" и соответственно - улёт в HF", то я всё еще не могу определить, где именно (не вижу/не понимаю)
  4. SystemInit отрабатывает нормально (базовая настройка частоты и т.д, включается в код на Си тоже), переход к HardFault_Handler происходит именно в строке BX R0 после LDR R0, =__main Я, честно говоря, не понимаю, что вы мне пишете. Как-то очень в общем написано.... Что подразумевается под "Вы понимаете что вам пишет компилятор?". -> Ошибки и предупреждения? Ну и другую информацию, наверное И понимаете где находится "попытка перейти к __main"? -> В моём представлении в строках 137, 138 Startup файла (нижний рисунок). Не глубокий знаток ассемблера, может и неправ? Зачем вы в начале main пытаетесь записывать 10 по адресу 0x08000288? Ведь это область флешь и писать туда нельзя. -> Это где? Я не вижу, а если это так, то это не я или я не специально. И что такое "B ." - > это аналог 1. Tmp 2. B Tmp, может, я ошибаюсь? (Т.е цикл бесконечный без действий) Очевидно в последней строчке происходит переход за пределы "программы" и соответственно - улёт в HF. -> В последней строчке программы в main.s?
  5. Доброго времени суток! Не могу добиться работы простой программы на ассемблере для контроллера STM32F103C8T6 (Китай, не оригинальный). 1. Выдаёт предупреждение .sct(8): warning: L6314W: No section matches pattern *(InRoot$$Sections). 2. При отладке программы, при попытке перейти к метке __main попадает в HardFault_Handler Замечу, что с проектами на Си, разумеется, все работает как надо, без предупреждений и HardFault_Handler. Может, кто-то сталкивался с подобным? Ниже привожу содержимое файлов (scatter + main + startup). Также изображения от режима отладки ( 1 - команда BX, режим команд THUMB, искомый адрес в R0, 2 - адрес первой команды моего кода - совпадает с тем, куда должен осуществится переход ) 1. scatter
  6. Добрый день! Не помогло отключение/удаление iso. Судя по всему проблема в тех репозиториях, у которых количество пакетов 0 (рисунок 1, 2), на них также идут ошибки в терминале. Все уже пробовал - отдельно качать программы по ссылкам в том числе - все время вылетает то, что на рисунке. Установка любого пакета/программы через yum заканчивается этим. Пробовал все, что смог найти - пользовался yum/yum-config-manager для отключения/удаления, вручную в yum.repos.d менял/удалял файлы с репозиториями, чистил кэш (то, что пишут на других форумах/на Red Hat). Yum создает/включает заново эти репозитории в любом случае. Кроме того не пойму, как так вышло, что после подключения Red Hat сетевых репозиториев в yum.repos.d теперь их огромный список (хотя и подавляющая часть отключена).
  7. Нет, не смонтирована. Но заранее отмечу, что ISO образ в качестве репозитория работает - там нет всех необходимых пакетов. Не работают именно сетевые репозитории
  8. Доброго времени суток! Не могу скачивать и устанавливать данные с помощью Yum в Red Hat Enterprise Linux 7. Выдаёт ошибку о том, что нет зеркал. Прошу подсказать, как справится с этой проблемой (не особо уверенный пользователь Linux - делаю всю по инструкциям, в данном вопросе пока успеха нет :). Изображение терминала прилагаю. В тех строчках, которые вышли за нижнюю границу прилагаемого рисунка, тоже ошибки. В итоге yum просто отпускает терминал с указанием того, что скачать он ничего не может. Также, при возможности, прошу объяснить, как установить репозиторий, например, archives.fedoraproject.org, чтобы можно было работать и с ним. Непонятно, что откуда брать (где найти файл repo с описанием репозитория и т.д.) Заранее благодарен!
  9. Keil. Библиотеки

    2. Трудность разрешилась - для того, чтобы main.cpp не вызывал ошибок, упомянутых в вопросе, нужно указать ключ -cpp в закладке C/C++
  10. Трудность разрешилась - Genus в отличие от Aldec/Xilinx не видит иерархию проекта. Поэтому модули NAME и Name в разных его частях вызывают ошибку. Все модули должны быть с уникальными именами.
  11. Доброго времени! Имеют место две проблемы при синтезе поведенческих моделей, что заключается в следующем: 1. В проекте с небольшой иерархией отказывается собираться (elaborate) модель нижнего уровня. Ошибка гласит - CDFG-214 ... Unknown parameter. Неизвестный параметр - находится в блоке generic, а строка, на которой происходит ошибка - реализация компонента с передачей этого параметра в блоке generic map. Сам параметр, разумеется, везде присутствует и описан, синтез в среде для ПЛИС и моделирование есть. То же с атрибутом keep в одном из исходников. Особенность при этом в том, что в проекте есть ещё модули точно такой же структуры - их синтезатор свободно пропускает. Который раз уже просматриваю, не могу понять в чём тут дело, может у кого были похожие ошибки? 2. Уже писал ранее, может кто-то имеет возможность поделится "понятными" материалами для синтеза через Genus/Innovus, Virtuoso, Liberate в IP-блок (как я понимаю - серый квадрат на картинках в сети, который как модуль включается в исходники). Если это будет материал на основе gsсlib от cadence, было бы совсем здорово! Заранее благодарен!
  12. Keil. Библиотеки

    То есть способа нет? Так не хотелось ручками все описывать... Касательно компиляции .cpp файлов следующая особенность - .c (все старые проекты у меня на нём) исходник собирается без проблем, может сможете подсказать что-то? Спасибо за ответ!
  13. Keil. Библиотеки

    Доброго времени суток! У меня появилось два вопроса, но по сути своей они относительно близки, опубликую их вместе. 1. Для целей обучения хотел написать программу на ассемблере, но только чтобы в процедуру __main программа заходила после инициализации (т.е. после startup/system). Попытался добавить в свой main.s эти файлы с помощью INCLUDE/GET - выдаёт ошибки (изображение 1). Подскажите, как решить вопрос? 2. В проекте main.cpp не видит исполняемые файлы при компиляции, судя по ошибке (рисунок 2). Делал следующее: - Пути проверял на наличие кириллицы, сейчас там только пробелы - не помогает, если убрать и их - не помогает - Добавлял директиву USE_STDPERIPH_DRIVER, указывал вручную пути к библиотекам - не помогает. - Пробовал добавлять в программу все библиотеки вручную в main.cpp - не помогает - Запускал из разных каталогов - не помогает Все библиотеки из SPL, которая лежит там, где должна лежать после установки, среда их прекрасно видит, отображает в интерфейсе, позволяет открыть и просмотреть. Объектные o. файлы после компиляции в папке проекта есть. В чем же дело? Заранее благодарен за ответы!
  14. Доброго времени суток! 1. Если у кого-нибудь есть в наличии, хотелось бы посмотреть на скрипты для Voltus/Tempus по анализу целостности питания/signoff временному анализу после завершения работы в Innovus. 2. Также были бы интересны скрипты от Genus/Innovus, посмотреть кто какие команды использует, в т.ч. для MVS проектов и для проектов с несколькими доменами тактовой частоты (если в скриптах есть какие-либо особенности относительно этого) 3. Ну и, может, от Liberate (может вместе с пособиями какими-то). Сам пока ещё не добирался до характеризации, но это начинает быть интересно. Если у кого есть Китайский лицензионный Liberate, я бы забрал ссылку на него. 4. Так и не понял, зачем надо vManager/Modus/Indago, подскажете?
×
×
  • Создать...