|
|
  |
свежак KGP win32/arm/avr/mips/m68k, GNU tools chain |
|
|
|
Apr 6 2016, 06:35
|
Группа: Участник
Сообщений: 10
Регистрация: 12-02-15
Пользователь №: 85 112

|
Уже больше года назад я в этой теме поднимал вопрос по поводу проца 5890ВЕ1Т. Тогда klen мне в числе прочего ответил, что Цитата(klen @ Feb 13 2015, 12:09)  ...какието особенности были с этим чипом(косяки при прходе некоторых команд по конвееру к которым вакцину в виде нопов нужно бвло догенерять...), возможно чтото изменилось. Так вот, железка наконец-то изготовлена, пришло время разобраться с этим поконкретнее. Кто-нибудь может ответить, что именно за косяки и как это лечится?
--------------------
Жить однозначно вредно: все, кто жили - померли
|
|
|
|
|
Apr 6 2016, 10:28
|

бессмертным стать можно тремя способами
    
Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912

|
Цитата(Lomaker @ Apr 6 2016, 09:35)  Уже больше года назад я в этой теме поднимал вопрос по поводу проца 5890ВЕ1Т. Тогда klen мне в числе прочего ответил, что
Так вот, железка наконец-то изготовлена, пришло время разобраться с этим поконкретнее. Кто-нибудь может ответить, что именно за косяки и как это лечится? я думаю никто кроме нас. как обычно. с тех пор как я разговаривал по телефону с разработчиками комдива ( тогда они сказали что есть косяки в конвейере, и при некоторых комбинациях инструкций криво выполнялись, эти комбинации были известны и их надо было дробить нопами. это было точно больше 3 лет назад. нверно исправили) 2_Lomaker предлагаю сделать сботку тулсов. проверить как оно работает. это ведь не сложно? я соберу а Вы прогоните. у Вас документация на него есть? мне доподлинно нужно знать с какого ядра МИПС драли ядро комдива - знать доступные иструкции проца есть желание законное.
|
|
|
|
|
Apr 6 2016, 13:02
|
Группа: Участник
Сообщений: 10
Регистрация: 12-02-15
Пользователь №: 85 112

|
В документации, которая у меня есть, никаких упоминаний о подобных вещах я не встречал. А прогнать - не так уж и просто: нужно сначала поиметь работающий начальный загрузчик, который зашивается у нас в однократно программируемое ПЗУ. Каждый новый вариант - перепайка микросхем. Так что хотелось бы знать, что и как лечить. Код начального загрузчика полностью на ассемблере, я мог бы и руками в него nop-ов наставить, знать бы куда (не после каждой же инструкции, хотя и это тоже вариант на крайний случай). P.S. Система команд достаточно подробно в описании расписана, ясен пень, без упоминания того, с чего она передиралась. Вроде бы -march=r3000 должно соответствовать действительности. Если интересует, могу файлик прислать, пишите адрес.
Сообщение отредактировал IgorKossak - Apr 6 2016, 18:25
Причина редактирования: бездумное цитирование
--------------------
Жить однозначно вредно: все, кто жили - померли
|
|
|
|
|
Apr 10 2016, 18:02
|
Местный
  
Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503

|
Цитата(klen @ Apr 10 2016, 21:40)  нужен код, просто так в хардфаул улетать может все что угодно Кода очень много. HF что то типа impecise error, то есть просто так место где оно происходит не выявить. При сборке gcc-arm-none-eabi 4.9 HF не происходит. Может для Вашего компилера требуется специфичечкий набор опций?
Сообщение отредактировал nanorobot - Apr 10 2016, 18:04
|
|
|
|
|
Apr 11 2016, 05:47
|
Группа: Участник
Сообщений: 10
Регистрация: 12-02-15
Пользователь №: 85 112

|
Цитата(klen @ Apr 9 2016, 14:22)  2_Lomaker Если не ДСП, дайте документацию. Интересно. Загрузчик у Вас в любом случае быть должен неважно какого приготовления. Как будет попробуем покомпилять прилагуху. Боюсь спросить а jtag присутствует? В файле по крайней мере не видел упоминаний про ДСП. Только куда слать, на адрес, что у Вас на klen.org указан? JTAG мы не вывели, планируем одним портом RS-232 отделаться для связи. Кое-что у меня задышало уже, кстати. Что-то там какие-то весёлые глюки присутствуют с порядком байт, по крайней мере, при little-endian включении. Попробуем в ближайшем времени его в big-endian включить, после этого отпишусь поподробнее, что там и как на самом деле.
--------------------
Жить однозначно вредно: все, кто жили - померли
|
|
|
|
|
Apr 11 2016, 05:55
|
Местный
  
Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503

|
Цитата(adnega @ Apr 10 2016, 23:52)  Я тоже пользуюсь сборками от klen. На 32-битной windows при получении остатка от деления имею HF (для ядра cortex-m0). Временно перешел на gcc-arm-none-eabi, но она по размеру кода фатально проигрывает klen-овской. не знаю, не знаю ... ничего личного, только цифры: arm-none-eabi-gcc -03 USE_LTO = no, 82788 байт arm-none-eabi-gcc -03 USE_LTO = yes, 92512 байт arm-kgp-eabi-gcc -03 USE_LTO = no, 84616 байт + HardFault (INVSTATE, UFSR_BIT_1 = 1 ) arm-kgp-eabi-gcc -03 USE_LTO = yes, error: lto-wrapper failed
Сообщение отредактировал nanorobot - Apr 11 2016, 06:06
|
|
|
|
|
Apr 11 2016, 09:13
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Цитата(adnega @ Apr 10 2016, 21:52)  Я тоже пользуюсь сборками от klen. На 32-битной windows при получении остатка от деления имею HF (для ядра cortex-m0). Временно перешел на gcc-arm-none-eabi, но она по размеру кода фатально проигрывает klen-овской. Линкеру флаги не забыли указать про то какое у Вас ядро? Если забыли, то библиотеки могут линковаться от другого ядра - я на эти грабли с М0 как-то наступил  . У меня не самая последняя сборка (которая DICHROMENA под win64) работает нормально. P.S. А что там по моему вопросу с arm-kgp-eabi-size (пост http://electronix.ru/forum/index.php?showt...t&p=1416125 )?
Сообщение отредактировал Шаманъ - Apr 11 2016, 09:14
|
|
|
|
|
Apr 11 2016, 09:36
|
Местный
  
Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503

|
Цитата(Шаманъ @ Apr 11 2016, 14:13)  Линкеру флаги не забыли указать про то какое у Вас ядро? Если забыли, то библиотеки могут линковаться от другого ядра - я на эти грабли с М0 как-то наступил  . У меня не самая последняя сборка (которая DICHROMENA под win64) работает нормально. P.S. А что там по моему вопросу с arm-kgp-eabi-size (пост http://electronix.ru/forum/index.php?showt...t&p=1416125 )? Если вопрос(или ответ?) был мне - мейк файл и скрипт линкера из примера ChibiOs для STM32F407 от Jiovanni di Sirio. Мейк файл скорректирован для моего проекта. Скрипт линкера не менялся. Пробуя сборку от klen заменил в мейкфайле строку "TRGT = arm-none-eabi-" на строку "TRGT = arm-kgp-eabi-" а так же изменено значение "USE_LTO = yes" на "no"
Сообщение отредактировал nanorobot - Apr 11 2016, 09:40
|
|
|
|
|
Apr 11 2016, 10:29
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(AHTOXA @ Apr 11 2016, 08:21)  Фатально - это как-то ненаучно  Сколько это в процентах/байтах? Разница порядка 100 байт. На примере двух приложений BL и SW. Код +-----+-------------------------------+------------------------------+ | | gcc-arm-none-eabi | arm-kgp-eabi-x86_32 | +-----+-------------------------------+------------------------------+ | BL | TEXT=5024, DATA=4, BSS=2140 | TEXT=4936, DATA=4, BSS=2140 | | SW | TEXT=9656, DATA=28, BSS=4460 | TEXT=9552, DATA=28, BSS=4460 | +-----+-------------------------------+------------------------------+ | | gcc version 4.9.3 20150303 | gcc version 4.8.0 20121121 | | | (release) [ARM/embedded-4_9- |(experimental) (Klen's GNU | | | branch revision 221220] (GNU | package (KGP) for ARM/elf | | | Tools for ARM Embedded | platform) | | | Processors) | | +-----+-------------------------------+------------------------------+ При этом код arm-kgp-eabi-x86_32 не рабочий, т.к. операция взятия остатка уводит в HF - допускаю, что чего-то не хватает в либах.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|