Перейти к содержанию

    

"asm" function is nonstandard

чтобы проверить свои исходники на наличие потенциальных проблем.

Я бы не стал утверждать, что отклонение от "строгого ANSI Си" - это потенциальная проблема. Но вам виднее, наверное.

Между тем, мануал говорит, что эти ошибки можно превратить в предупреждения. Вот и компилируйте, а предупреждения в хедерах игнорируйте - это же не ваш код. Но смысла в этом не вижу никакого, так как ваш код прибит гвоздями к CMSIS, а там "strict ANSI C" невозможен по определению.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Я бы не стал утверждать, что отклонение от "строгого ANSI Си" - это потенциальная проблема. Но вам виднее, наверное.

Между тем, мануал говорит, что эти ошибки можно превратить в предупреждения. Вот и компилируйте, а предупреждения в хедерах игнорируйте - это же не ваш код. Но смысла в этом не вижу никакого, так как ваш код прибит гвоздями к CMSIS, а там "strict ANSI C" невозможен по определению.

 

Ну, если из листинга исчезает примерно 500 ошибок, это делает понимание оставшихся там десятков сообщений более легким.

 

Оределил эту __NO_EMBEDDED_ASM, данная проблема в этом файле пропала. Но вот чем это грозит?

 

Кстати, теперь оно находит эту asm- ошибку только в порте FreeRTOS ("port.c"), на файлы CMSIS вроде больше и не ругается.

 

как-то:

_asm uint32_t vPortGetIPSR( void )
{
    PRESERVE8

    mrs r0, ipsr
    bx r14
}

__asm void prvEnableVFP( void )
{
    PRESERVE8

    /* The FPU enable bits are in the CPACR. */
    ldr.w r0, =0xE000ED88
    ldr    r1, [r0]

    /* Enable CP10 and CP11 coprocessors, then save back. */
    orr    r1, r1, #( 0xf << 20 )
    str r1, [r0]
    bx    r14
    nop
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Какой asm файл я не использую? Вы про "__NO_EMBEDDED_ASM" ?

Для исходного кода си используют файлы с расширением .c или .cpp. А для ассемблерного - с расширением .asm.

Зачем использовать кастрированный inline-ассемблер вместо нормального?? Тем более у вас не вставки, а полноценные функции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти