基本参考的Android的代码
cmd : loglevel debug
#define LOG_IMPL(...) \
log_print(1, "AOS", COL_DEF, "V", __VA_ARGS__)
/*
* Log at debug level.
*
* @param[in] mod string description of module.
* @param[in] fmt same as printf() usage.
*/
#define LOGD(mod, ...) LOGD_IMPL(mod, __VA_ARGS__)
/*
* Log at the level set by aos_set_log_level().
*
* @param[in] fmt same as printf() usage.
*/
#define LOG(...) LOG_IMPL(__VA_ARGS__)
__attribute__((weak)) int csp_printf(const char *fmt, ...)
{
va_list args;
int ret;
ret = aos_mutex_lock(&log_mutex, AOS_WAIT_FOREVER);
if (ret == 0) {
va_start(args, fmt);
ret = vprintf(fmt, args);
va_end(args);
fflush(stdout);
}
aos_mutex_unlock(&log_mutex);
return ret;
}
对于aos_mutex_lock 调用krhino_mutex_lock,
不能在中断中调用
kstat_t krh