ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
26 ноября
565285 Топик полностью
Vit (11.12.2014 10:44, просмотров: 202) ответил Dingo на printf для STM32F407 и GCC. Пытаюсь безуспешно второй день. Хоть сам пиши. Есть хидер stdio.h, есть библиотека. В библиотеке реализован верхний уровень. Но нижний.. Это северный лис, товарищи! Предлагается написать кучку системных вызовов. Нашёл в
делал вывод в SWO (EmBlocks)  //-------------------------------------- //bsp\dbg_printf.h #include <stdio.h> int __swbuf_r(struct _reent *_ptr, int _c, FILE *_p);//for prinf by use Newlib Nano-branch int fputc(int ch, FILE *stream); //-------------------------------------- //bsp\dbg_printf.с #include <bsp\dbg_printf.h> #include <stm32f2xx.h> #include <core_cm3.h> __STATIC_INLINE uint32_t _ITM_SendChar (uint32_t ch) { if ((ITM->TCR & ITM_TCR_ITMENA_Msk) && /* ITM enabled */ (ITM->TER & (1UL << 0) ) ) /* ITM Port #0 enabled */ { while (ITM->PORT[0].u32 == 0){ ; } __ISB(); ITM->PORT[0].u8 = (uint8_t) ch; } return (ch); } //========================= __attribute__ ((noinline)) int __swbuf_r(struct _reent *_ptr, int _c, FILE *_p){//Newlib Nano-branch (void)_ptr; (void)_p; volatile int rc; rc = _ITM_SendChar(_c); rc = _c; return rc; } __attribute__ ((noinline)) int fputc(int ch, FILE *stream){//Newlib Nano-branch (void)stream; volatile int rc; rc = _ITM_SendChar(ch); rc = ch; return rc; } //-------------------------- //main setbuf(stdout, NULL);