Использование многократной точности в голом металле c - PullRequest
3 голосов
/ 09 февраля 2020

Итак, у меня есть малиновый пи-ноль, и я последовал этому действительно классному уроку, чтобы начать его программирование на голом металле c. Все работает хорошо.

Теперь для того, что я хочу сделать, мне нужны (без знака) целые числа размером 256 или 512 бит, поэтому я пошел искать библиотеки. Я нашел BigDigits и заставил его легко работать на моей машине.

Когда я пытался скомпилировать его с остальным моим настоящим голым железным кодом, хотя (даже не включая его и не используя его где-либо в моем коде), он компилировался и связывался без предупреждений или ошибок, но мой код не работает больше, то есть мой Raspberry Pi не делает то, что делал раньше.

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

Так почему же он компилируется и связывается, но не работает? И как я могу заставить его работать или есть какие-то другие варианты, которые было бы проще использовать в чистой среде c для произвольной точности? Я на самом деле всегда знаю во время компиляции, какая точность мне нужна, поэтому я был бы рад просто иметь типы uint256_t или что-то в этом роде, но ничего подобного найти не смог.

Заранее спасибо!

1 Ответ

0 голосов
/ 09 февраля 2020

Такие вещи, как библиотеки bignum, могут быть записаны в сборке или включены в C в виде внешнего / связанного (или, возможно, внутреннего) кода сборки, как в Калькулятор больших чисел сборки или http://x86asm.net/articles/working-with-big-numbers-using-x86-instructions/ однако это должно быть перенесено на сборку ARM (https://azeria-labs.com/arm-data-types-and-registers-part-2/). Включение в C происходит в https://www.devdungeon.com/content/how-mix-c-and-assembly и https://en.wikibooks.org/wiki/Embedded_Systems/Mixed_C_and_Assembly_Programming

https://web.sonoma.edu/users/f/farahman/sonoma/courses/es310/310_arm/lectures/Chapter_3_Instructions_ARM.pdf стр. 5

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...