Миландр

Ключевым подразделением нашей компании является Центр Проектирования интегральных микросхем
Текущее время: 2019-мар-26 07:55

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: J-Flash для 1986xxx
СообщениеДобавлено: 2018-дек-21 08:53 
Не в сети

Зарегистрирован: 2009-сен-21 12:39
Сообщения: 500
Делаю bat-ник в каталоге проекта в котором запускаю:
\Keil\ARM\ARMCC\bin\fromelf.exe --bincombined --output=my.bin ..\obj\my.axf
Каталог \obj упомянут в свойствах проекта


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: J-Flash для 1986xxx
СообщениеДобавлено: 2018-дек-22 00:15 
Не в сети

Зарегистрирован: 2018-янв-05 23:41
Сообщения: 44
Что-то не получилось.
До этого стоял набор софта от Сеггер версии 4.94 - с ним проблем не было. Когда установил последнюю версию с сайта 6.40 - стала постоянно теряться связь (регулярно выскакивает предупреждение "The connection J-Link is defective. Proper operation cannot be guaranted...").
Открыть Предупреждение
Вложение:
Defective connect.png
Defective connect.png [ 12.25 КБ | Просмотров: 436 ]
Закрыть

Да J-Link не оригинальный, а китайский клон (J-Link ARM V8), типа такого на AT91SAM7S64. Но до обновления всё работало стабильно при скорости 1-5 МГц. Пришлось снижать скорость по SWD до 50 кГц - тогда хоть как-то заработало. Но застопорилось на загрузке .FLM-файла. То ли не может его найти на диске по указанному пути, то ли не может залить в контроллер - из сообщения не ясно. Путь к .FLM-файлу в файле JLinkDevices.xml прописан правильный.
Открыть Запись в файле JLinkDevices.xml
Код:
  <!--                 -->
  <!-- Milandr (1986BE1T) -->
  <!--                 -->
   <Device>
      <ChipInfo Vendor="Milandr"
          Name="1986BE1T"
          WorkRAMAddr="0x20100000"
          WorkRAMSize="0x4000"
          Core="JLINK_CORE_CORTEX_M1" />
      <FlashBankInfo Name="1986BE1T Flash"
          BaseAddr="0x0"
          MaxSize="0x20000"
          Loader="Devices/Milandr/1986VE1_FlashInt_DR.FLM"
          LoaderType="FLASH_ALGO_TYPE_OPEN"
          AlwaysPresent="1"/>
    </Device>
Закрыть

Имя файла именно такое, путь от файла JFlash.exe тоже такой.
Открыть Путь к FLM
Вложение:
Путь к FLM.png
Путь к FLM.png [ 71.26 КБ | Просмотров: 428 ]
Закрыть

Что там может быть неправильно - непонятно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: J-Flash для 1986xxx
СообщениеДобавлено: 2018-дек-23 20:06 
Не в сети
Аватара пользователя

Зарегистрирован: 2011-авг-21 18:55
Сообщения: 258
Professor Chaos писал(а):
По какой-то причине строка
Цитата:
$K\ARM\ARMCC\bin\fromelf.exe --bin --output=@L.bin !L
не работает.

Открыть скриншот
Изображение
Закрыть


Вместо бинарника создаётся папка с несколькими файлами внутри.
Всё вроде как совпадает с первоисточником, но работает не так, как надо. Что-то по этой команде создаётся, только не то, что нужно.

Если флеш порезана в проекте на части, то и целого .bin файла не будет - кто линкеру скажет с какого адреса эти сырые куски кода записывать в контроллер. Если флеш не порезана, то бинарник будет один. Hex-файл (ключ -i32) будет всегда один + отдельные .hex - в самом hex-е всегда прописаны адреса, по которым заливается код в микроконтроллер.

_________________
Hack the Planet!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: J-Flash для 1986xxx
СообщениеДобавлено: 2018-дек-23 20:10 
Не в сети
Аватара пользователя

Зарегистрирован: 2011-авг-21 18:55
Сообщения: 258
Professor Chaos писал(а):
Что-то не получилось.
До этого стоял набор софта от Сеггер версии 4.94 - с ним проблем не было. Когда установил последнюю версию с сайта 6.40 - стала постоянно теряться связь (регулярно выскакивает предупреждение "The connection J-Link is defective. Proper operation cannot be guaranted...").
Открыть Предупреждение
Вложение:
Defective connect.png
Закрыть

Да J-Link не оригинальный, а китайский клон (J-Link ARM V8), типа такого на AT91SAM7S64. Но до обновления всё работало стабильно при скорости 1-5 МГц. Пришлось снижать скорость по SWD до 50 кГц - тогда хоть как-то заработало. Но застопорилось на загрузке .FLM-файла. То ли не может его найти на диске по указанному пути, то ли не может залить в контроллер - из сообщения не ясно. Путь к .FLM-файлу в файле JLinkDevices.xml прописан правильный.
Открыть Запись в файле JLinkDevices.xml
Код:
  <!--                 -->
  <!-- Milandr (1986BE1T) -->
  <!--                 -->
   <Device>
      <ChipInfo Vendor="Milandr"
          Name="1986BE1T"
          WorkRAMAddr="0x20100000"
          WorkRAMSize="0x4000"
          Core="JLINK_CORE_CORTEX_M1" />
      <FlashBankInfo Name="1986BE1T Flash"
          BaseAddr="0x0"
          MaxSize="0x20000"
          Loader="Devices/Milandr/1986VE1_FlashInt_DR.FLM"
          LoaderType="FLASH_ALGO_TYPE_OPEN"
          AlwaysPresent="1"/>
    </Device>
Закрыть

Имя файла именно такое, путь от файла JFlash.exe тоже такой.
Открыть Путь к FLM
Вложение:
Путь к FLM.png
Закрыть

Что там может быть неправильно - непонятно.

Лучше Segger ставить в корень диска - бывает бяка с путём с пробелами ...\Program Files (x86)\... Ещё замечал, что бывает Segger запоминает пути старой установки (то ли в переменной среды, то ли в реестре)...

_________________
Hack the Planet!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: J-Flash для 1986xxx
СообщениеДобавлено: 2018-дек-23 22:36 
Не в сети

Зарегистрирован: 2018-янв-05 23:41
Сообщения: 44
R Max писал(а):
Если флеш порезана в проекте на части, то и целого .bin файла не будет - кто линкеру скажет с какого адреса эти сырые куски кода записывать в контроллер.

Странно. Линкер же всё-таки знает все регионы памяти в программе, их начальные адреса и размеры. Если нет, то как же он тогда сформирует .hex-файл, не зная этого?
Да, у меня используется несколько областей памяти. Первая - под код программы и неизменные данные, а вот вторая и третья - массивы данных по заданным атрибутом __attribute__((at(address))) адресам. Компилятор должен передать эти адреса в линкер. Линкер ведь правильно генерирует .hex-файл. Значит правильно опознаёт эти области. Почему имея всю эту информацию нельзя собрать единый бинарник - непонятно. Размер флеша контроллера известен (прописан в настройках проекта). Начальное значение (стёртое состояние) флеша тоже.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: J-Flash для 1986xxx
СообщениеДобавлено: 2018-дек-24 20:29 
Не в сети
Аватара пользователя

Зарегистрирован: 2011-авг-21 18:55
Сообщения: 258
Уточнение, как сказал ЧумА, для одного бинарника нужен ключ -bincombined.

http://www.keil.com/support/docs/3213.htm
The fromelf option --bin generates one binary file for each load region of your application. If one complete binary file is needed, consider using the option --bincombined.

http://www.keil.com/support/man/docs/ar ... 886407.htm

_________________
Hack the Planet!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: J-Flash для 1986xxx
СообщениеДобавлено: 2018-дек-24 22:15 
Не в сети

Зарегистрирован: 2018-янв-05 23:41
Сообщения: 44
R Max писал(а):
Уточнение, как сказал ЧумА, для одного бинарника нужен ключ -bincombined.

Спасибо, попробую.
Попробовал разные .FLM - те, что из пака работают. А те, что с гитхаба - стабильно выдают ошибку загрузки. С ними ни разу не удалось хоть что-то сделать. Оригинальные из пака работают со второго раза: любая операция первый раз выдает ошибку, на второй проходит.
Причём эти файлы дают разную картину во вкладке Flash настроек проекта
Открыть При использовании FLM-файла с гитхаба
Вложение:
Комментарий к файлу: FLM с гитхаба
J-Link - Flash.png
J-Link - Flash.png [ 62.02 КБ | Просмотров: 384 ]
Закрыть

Открыть При использовании FLM-файла из пака 1.5 для Кейл
Вложение:
Комментарий к файлу: FLM из пака 1.5 для Кейла
J-Link - Flash 2.png
J-Link - Flash 2.png [ 51.83 КБ | Просмотров: 384 ]
Закрыть

В том, что из пака прописан общий размер флеша 128 кбайт, а также разбиение флеша на 128 секторов по 1 Кбайту.

UPD
Попробовал сделать единый бинарник для проекта. Получилось. Команда
Код:
$K\ARM\ARMCC\bin\fromelf.exe --bincombined --output=@L.bin !L

создаёт бинарник в каталоге проекта с именем проекта и расширением .bin.
Что мне и требовалось.


Последний раз редактировалось Professor Chaos 2018-дек-25 22:45, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: J-Flash для 1986xxx
СообщениеДобавлено: 2018-дек-25 12:47 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1236
Откуда: Тула
Professor Chaos писал(а):
В том, что из пака прописан общий размер флеша 128 кбайт, а также разбиение флеша на 128 секторов по 1 Кбайту.

Что, в целом, тоже не верно. По крайней мере первый сектор занимает адреса не 0х0..0x3FF, а 0x0..0x1000 с прореживанием в одно слово через четыре (32 бита на каждые 128). Так что стирайте либо всю флешь, либо по 4 сектора кратно 4-м.

Миландровцам, видимо, стоит поправить FLM

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB