void App_Printf(CPU_CHAR *format, ...)
{
CPU_CHAR buf_str[80 + 1];
va_list v_args;
OS_ERR os_err;
va_start(v_args, format);
(void)vsnprintf((char *)&buf_str[0],
(size_t ) sizeof(buf_str),
(char const *) format,
v_args);
va_end(v_args);
OSSemPend((OS_SEM *)&SEM_MUTEX,
(OS_TICK )0u,
(OS_OPT )OS_OPT_PEND_BLOCKING,
(CPU_TS *)0,
(OS_ERR *)&os_err);
printf("%s", buf_str);
(void)OSSemPost((OS_SEM *)&SEM_MUTEX,
(OS_OPT )OS_OPT_POST_1,
(OS_ERR *)&os_err);
}
{
CPU_CHAR buf_str[80 + 1];
va_list v_args;
OS_ERR os_err;
va_start(v_args, format);
(void)vsnprintf((char *)&buf_str[0],
(size_t ) sizeof(buf_str),
(char const *) format,
v_args);
va_end(v_args);
OSSemPend((OS_SEM *)&SEM_MUTEX,
(OS_TICK )0u,
(OS_OPT )OS_OPT_PEND_BLOCKING,
(CPU_TS *)0,
(OS_ERR *)&os_err);
printf("%s", buf_str);
(void)OSSemPost((OS_SEM *)&SEM_MUTEX,
(OS_OPT )OS_OPT_POST_1,
(OS_ERR *)&os_err);
}
声明
static void App_Printf (CPU_CHAR *format, ...);
va在这里是variable-argument(可变参数)的意思.
这些宏定义在stdarg.h中,所以用到可变参数的程序应该包含这个头文件。