Embedded 嵌入式系统的printf实现

Embedded 嵌入式系统的printf实现,embedded,printf,Embedded,Printf,我在哪里可以找到适合嵌入式系统的几乎完整的实现(浮点、宽度等)(嵌套函数调用很少,堆栈和ram使用率低,没有堆,mo系统调用)您检查过ChibiOS的实现了吗?它是Apache许可的,浮点支持(昂贵)是通过define实现的编译时选项 它是用微控制器设计的。这些宏几乎都是对所提供的BaseSequentialStream结构中的函数指针的唯一调用,您可以根据需要替换它们。var args列表是您常规的stdarg.h实现。对于在串行端口上传输,最快的事情是: int32_t printfDebu

我在哪里可以找到适合嵌入式系统的几乎完整的实现(浮点、宽度等)(嵌套函数调用很少,堆栈和ram使用率低,没有堆,mo系统调用)

您检查过ChibiOS的实现了吗?它是Apache许可的,浮点支持(昂贵)是通过
define
实现的编译时选项


它是用微控制器设计的。这些宏几乎都是对所提供的BaseSequentialStream结构中的函数指针的唯一调用,您可以根据需要替换它们。var args列表是您常规的
stdarg.h
实现。

对于在串行端口上传输,最快的事情是:

int32_t printfDebugSerial(const char *format, ...)
{
  if (strlen(format) >200) return -1;
  char tempBuff[256]; memset(tempBuff, 0, sizeof tempBuff);

  va_list arg;
  int32_t done;
  va_start (arg, format);
  done = (int32_t)vsprintf(tempBuff,format, arg);
  va_end (arg);

  pushMsgOnSerial((uint8_t*)tempBuff, done);
  return done;
}

其中,
pushMsgOnSerial()
将是用于在串行端口上发送字节的特定于电路板的功能。

您正在查看newlib吗?