Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ищу исходники функции printf/sprintf
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
alm_
Потому что оригинал требует много памяти в data_group. Пробуешь вызывать printf/sprintf из особо глубокого вложения - сразу segment overflow. Еще бы этот - сегмент забит под завязку, осталься один свободный байт. Процессор DS80C400 - для тех кто понимает smile.gif.
vet
есть, например, в составе библиотек avrlib/armlib.
http://hubbard.engr.scu.edu/embedded/
KRS
Есть исходники IAR библиотеки
Код
/*                      - PRINTF.C -

   The ANSI "printf" function.

   $Name: Tyrone3b Tyrone3 Tyrone2 Tyrone1b Tyrone1 V3_34O V3_34N Spiff7 V3_34M V3_34L V3_34K V3_34J V3_34I V3_34H V3_34G $    

   Copyright 1986 - 1999 IAR Systems. All rights reserved.
*/

#include "stdarg.h"
#include "stdio.h"
#include "icclbutl.h"

static void put_one_char(char c, void *dummy)
{
  putchar (c);
  (void)dummy;  /* Warning on this line OK (Optimized Away) */
}

int printf(const char *format, ...)                    /* Our main entry */
{
  va_list ap;
  int nr_of_chars;

  va_start(ap, format);      /* Variable argument begin */
  nr_of_chars = _formatted_write(format, put_one_char, (void *) 0, ap);
  va_end(ap);                /* Variable argument end */
  return nr_of_chars;        /* According to ANSI */
}


исходник _formatted_write в приложенном файле
afe
Вот еще вариант упрощенный без библиотек
Regbist
что делаешь на этом процессоре ? если не секрет конечно
afe
Esli eto ko me, to eto absolutno rabochiy isxodnik perepaxaniy s IAR'vskoy libi (?) (kotoriy ya ispol'zoval na chipax AVR 8515, i mega103), project ~1998-1999 goda, uprosheniy po prichine ne xvatki mesta, a chto eto bilo:

Uchet po 24 liniyam potrebleniya electroinergii s podstancii (krupnogo zavoda),
logalos' kazhdie 3 minuti v flash (AT49DBxxx), s RS232 mozhno bilo v luboe vremya poluchit' informaciyu za poslediy god (tarifi v raznoe vremya dlya predpriyatiy raznie, eto nuzhno dlya togo chtobi mozhno bilo bi planirovat' kogda chego puskat'), i v tozhe vremya posmotret' na LCD chego da kak , on eshe reaktivnuyu energiyu mog regulirovat' chtobi obrratno otdavat' , chtobi lishnix kilovat ne nashitali i tak dalee, vsego ne upomnish' proexali ...
GSK
Исходник функций на ассемблере можно найти при установке компилятора С (Borland, Watcom и т.д.) для платформы PC. Только необходимо вырать пункт: установить исходники. А дальше выкидывай лишнее и модифицируй под свой процессор.
Shandy
Я в свое время перестал пользоваться sprintf-ом. Вместо этого написал свои функции IntToStr, UintToStr, LongToStr, UlongToStr, FloatToStr, скомпилил их в библиотеку и цепляю ко всем своим проектам. Они просто преобразуют соотв. число в строку в xdata, вывод в UART делаю через прерывания. Выигрыш по скорости/памяти - в разы. Тем более, что программа со sprintf иногда необъяснимо подглючивала. Компиляторы- Keil51, Keil166
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.