-
- работает, чеб ему не работать? тож стандарт! klen(139 знак., 05.09.2020 01:23)
- Никак? Обычно такие функции, которые не может выполнить аппаратура,
реализуются в libgcc (см. по ссылке). Но в EABI (application binary
interface) для ARM предусмотрено, что есть функция
__aeabi_uldivmod, которая может быть реализована библиотекой... но
видимо никак не реализована, а gcc вместо __udivdi3 (худо-бедно
реализованной для обобщённого случая) подсовывает __aeabi_uldivmod
(которая якобы именно на ARM должна быть хорошо реализована). В
сущности проблема в не fk0(2970 знак., 05.09.2020 01:05, ссылка, ссылка)
- Во скрин мне скинул.... POV_(53 знак., 05.09.2020 12:43, , картинка, картинка)
- А откуда функция __aeabi_uldivmod берётся (её ж не компилятор генерирует -- это содержимое библиотеки) ? В .map файле от линкера это пишется (нужно добавить опцию -Wl,-Map,file.map) Код с таким количеством нулей действительно как-то не дизассемблируется... PS: хотя я могу допустить, что __aeabi_uldivmod это просто армовский код (но мне хексы в правильном порядке не разместить для осмысленного дизассемблирования). А у тебя контроллер типа Cortex в котором только thumb, со fk0(85 знак., 05.09.2020 14:45)
- Во скрин мне скинул.... POV_(53 знак., 05.09.2020 12:43, , картинка, картинка)
- Ну ты же понимаешь, что если выбирать между "компилятор сломан" и
"снова у тебя говнокод", второй вариант сильно вероятнее :-) - SciFi(04.09.2020 16:42)
- В этот раз таки сломан и вопрос кстати на 100 баллов из 100. Я вот не знал, какие там глубины всех глубин можно встретить. - fk0(05.09.2020 01:06)
- Это не моё... и да, уже вопрос неактуален. Нашлась официальная инфа
что не реализована поддержка деления 64 битных чисел. - POV_(04.09.2020 16:58, )
- Хз, у меня всё работает. Как там говорят, "Кто хочет – ищет
возможности. Кто не хочет – ищет причины." :-) - SciFi(04.09.2020 17:15)
- И вот еще ... - POV_(04.09.2020 17:26, , ссылка)
- Вот например пишут "Cortex-M ISA currently doesn't support 64bit
integer division.". И оно у тебя работает? - POV_(04.09.2020 17:25, , ссылка)
- Вот это работает: "uint64_t volatile a = 1234, b = 12, c; c = a /
b;". А ты так и не научился составлять баг репорт. Там обычно пишут
1) делаю так 2) ожидаю то 3) получаю сё. - SciFi(04.09.2020 17:32)
- Хз что чувак делал, но у него далеко не первый проект на армах. И
вот падает всё на делении. - POV_(04.09.2020 17:39, )
- Внутрисхемный отладчик есть? Там причину падения установить -- раз
плюнуть. - SciFi(04.09.2020 17:41)
- Он предпочел кастомную функцию деления применить. - POV_(04.09.2020 17:56, )
- Больше на падает? Корень проблемы не найден, зато найден костыль,
который вроде бы помогает обойти проблему сегодня? Мы уже
привыкли... - SciFi(04.09.2020 18:00)
- Это его проблемы. Благо не рабочий проект, а личная поделка. - POV_(04.09.2020 18:13, )
- Обажаю таких. Фигакнули костыль, все плохие, один хороший умный. - Oman(04.09.2020 21:43)
- Ты дибил? Кто кого тут мазнул дерьмом? - POV_(04.09.2020 22:43, )
- Обажаю таких. Фигакнули костыль, все плохие, один хороший умный. - Oman(04.09.2020 21:43)
- Это его проблемы. Благо не рабочий проект, а личная поделка. - POV_(04.09.2020 18:13, )
- Больше на падает? Корень проблемы не найден, зато найден костыль,
который вроде бы помогает обойти проблему сегодня? Мы уже
привыкли... - SciFi(04.09.2020 18:00)
- Он предпочел кастомную функцию деления применить. - POV_(04.09.2020 17:56, )
- Внутрисхемный отладчик есть? Там причину падения установить -- раз
плюнуть. - SciFi(04.09.2020 17:41)
- Хз что чувак делал, но у него далеко не первый проект на армах. И
вот падает всё на делении. - POV_(04.09.2020 17:39, )
- Вот это работает: "uint64_t volatile a = 1234, b = 12, c; c = a /
b;". А ты так и не научился составлять баг репорт. Там обычно пишут
1) делаю так 2) ожидаю то 3) получаю сё. - SciFi(04.09.2020 17:32)
- Хз, у меня всё работает. Как там говорят, "Кто хочет – ищет
возможности. Кто не хочет – ищет причины." :-) - SciFi(04.09.2020 17:15)