|
"asm" function is nonstandard |
|
|
|
Aug 16 2015, 11:39
|
Участник

Группа: Участник
Сообщений: 52
Регистрация: 25-12-12
Пользователь №: 74 984

|
Вообщем переписываю бутлоадер исходя из этих исходников: Посетить мою домашнюю страницуВообщем получил такую ошибку: CMSIS\CM3\CoreSupport\core_cm3.c(58): error: #667: "asm" function is nonstandardВот скриншот проблемы:  Народ, подскажите что где-то макрос какой не установил ?
Сообщение отредактировал Dениs - Aug 16 2015, 11:39
|
|
|
|
|
 |
Ответов
|
Aug 25 2015, 20:26
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 25-11-11
Пользователь №: 68 515

|
Цитата(zltigo @ Aug 25 2015, 23:07)  Вы правы...но есть нюанс,как говориться дьявол заключается в деталях...Я не знаю,почему,но для архитектур Cortex разработчики кейл включили т.н embedded assembler...а http://www.keil.com/support/man/docs/armcc...96945591462.htm в таблице 6.1 указано-inlining-never...
|
|
|
|
|
Jun 14 2018, 09:40
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
У меня та же проблема. Кейл 5 Если включаю опцию "Strict ANCI C", то вижу ту же ошибку: .\Libraries\CMSIS\Include\cmsis_armcc.h(468): error: #667: "asm" function is nonstandard __attribute__((section(".rev16_text"))) __STATIC_INLINE __ASM uint32_t __REV16(uint32_t value) .\Libraries\CMSIS\Include\cmsis_armcc.h(483): error: #667: "asm" function is nonstandard __attribute__((section(".revsh_text"))) __STATIC_INLINE __ASM int16_t __REVSH(int16_t value) .\Libraries\CMSIS\Include\cmsis_armcc.h(670): error: #667: "asm" function is nonstandard __attribute__((section(".rrx_text"))) __STATIC_INLINE __ASM uint32_t __RRX(uint32_t value)
Подключил самую новую CMSIS, думал в хедерах это пофиксили, но все по-старому. Что делать, править исходники CMSIS? вот собственно на это ругается: Код #ifndef __NO_EMBEDDED_ASM __attribute__((section(".rev16_text"))) __STATIC_INLINE __ASM uint32_t __REV16(uint32_t value) { rev16 r0, r0 bx lr } #endif
#ifndef __NO_EMBEDDED_ASM __attribute__((section(".revsh_text"))) __STATIC_INLINE __ASM int16_t __REVSH(int16_t value) { revsh r0, r0 bx lr } #endif
#ifndef __NO_EMBEDDED_ASM __attribute__((section(".rrx_text"))) __STATIC_INLINE __ASM uint32_t __RRX(uint32_t value) { rrx r0, r0 bx lr } #endif
|
|
|
|
|
Jun 14 2018, 11:31
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
Цитата(scifi @ Jun 14 2018, 13:21)  Я бы не стал утверждать, что отклонение от "строгого 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 }
|
|
|
|
Сообщений в этой теме
Dениs "asm" function is nonstandard Aug 16 2015, 11:39 zltigo QUOTE (Dениs @ Aug 16 2015, 14:39) CMSIS... Aug 16 2015, 11:54 Dениs Хорошо, как же тогда использовать __set_MSP(...) н... Aug 16 2015, 14:43  zltigo QUOTE (Dениs @ Aug 16 2015, 17:43) Если ж... Aug 16 2015, 14:56   Dениs Это укор в том случае если я знаю АСМ АРМ-ов ... а... Aug 16 2015, 15:34    zltigo QUOTE (Dениs @ Aug 16 2015, 18:34) Так чт... Aug 16 2015, 15:49   romas2010 Цитата(zltigo @ Aug 16 2015, 17:56) У Вас... Aug 25 2015, 20:03      jcxz Цитата(Ruslan1 @ Jun 14 2018, 13:43) чтоб... Jun 14 2018, 11:03       Ruslan1 Цитата(jcxz @ Jun 14 2018, 13:03) А зачем... Jun 14 2018, 11:16        jcxz Цитата(Ruslan1 @ Jun 14 2018, 14:16) Како... Jun 14 2018, 11:34
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|