|
варнинг Keil c99 |
|
|
|
Feb 3 2015, 20:45
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(Метценгерштейн @ Feb 3 2015, 22:08)  А если хочу на С99 писать? Никак что ли? Это же не решение. Если писать, то писать. А если использовать пример, то это другое. Я ничего криминального не увидел. Ассемблерная функция вот так у меня работает. С99, естественно. Код __asm void HardFault_Handler(void) { TST LR, #4 ITE EQ MRSEQ R0, MSP ; Main Stack was used, put MSP in R0 MRSNE R0, PSP ; Process Stack was used, put PSP in R0 LDR R0, [R0, #24] ; Get stacked PC from stack
LDR R1, =0x40020418 ; GPIOB->BSRR MOVS R2, #0x0002 ; Bit 2 STRH R2, [R1, #2] ; Reset bit (LED_ON) B . } Только ссылка на нее идет из стартап-файла, тоже ассемблерного.
|
|
|
|
|
Feb 4 2015, 06:57
|
Профессионал
    
Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079

|
 вот что пишет на варнинг логика такая- вызывается ф-я nrf_delay_us(999); Код #include <stdio.h> #include "compiler_abstraction.h" #include "nrf.h" #include "nrf_delay.h"
/*lint --e{438} "Variable not used" */ void nrf_delay_ms(uint32_t volatile number_of_ms) { while(number_of_ms != 0) { number_of_ms--; nrf_delay_us(999); } } ее прототип есть в хидере, что #include "nrf_delay.h" так что- прототип как бы есть. а вот в самом хидере уже на нее выскакивет варнинг Код static __ASM void __INLINE nrf_delay_us(uint32_t volatile number_of_us) { loop SUBS R0, R0, #1 NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP BNE loop BX LR } фото варнинга  так что что-то объявление в ф-ии ему не нравится.
|
|
|
|
|
Feb 4 2015, 07:06
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(Метценгерштейн @ Feb 4 2015, 09:57)  так что что-то объявление в ф-ии ему не нравится. Либо __ASM, либо __INLINE не определены (либо оба). Ищите, где они определяются, и добавьте соотв. хидер перед этим хидером. Либо замените их __asm и __inline (маленькими буквами). Либо сами напишите в начале файла #define __ASM __asm #define __INLINE __inline
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|