Где объявление для get_pc () в GNU ARM? - PullRequest
1 голос
/ 03 ноября 2011

Я собираю устаревший код с использованием компилятора GNUARM C и пытаюсь разрешить все неявные объявления функций.

Я столкнулся с некоторыми специфическими функциями ARM и не могу найти заголовочный файл, содержащий объявления для этих функций:

get_pc 
get_cpsr 
get_sp

Я искал в Интернете и нашел только исходный код, содержащий эти функции, без каких-либо нестандартных включаемых файлов.

Я также соглашусь с объявлениями функций.

Поскольку я также буду переносить код на платформу Cygwin / Windows, каковы эквивалентные объявления для Cygwin GNU GCC?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 04 ноября 2011

Просто напишите свое, если вам действительно нужны эти функции, asm проще, чем встроенный asm:

.globl get_pc
get_pc:
    mov r0,pc
    bx lr

.globl get_sp
get_sp:
    mov r0,sp
    bx lr

.globl get_cpsr
get_cpsr:
    mrs r0,cpsr
    bx lr

По крайней мере, для руки. если вы портируете на x86 и вам нужны эквиваленты, мне все равно интересно, что нужно коду для этих вещей. В частности, для cpsr вам, вероятно, придется изменить любой код, который использует результат, так как регистры состояния между поставщиками / семействами процессоров практически никогда не совпадают. Эквиваленты x86 должны быть примерно такого же уровня усилий, для поиска в Google и считывания результатов требуется больше времени, чем для написания кода (если вы знаете процессор).

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

2 голосов
/ 03 ноября 2011

Вы уверены, что это функции?Я не очень знаком с ARM, но они звучат как присущие мне компиляторы.Если вы переходите на GCC, вам лучше заменить их встроенной сборкой.

...