千家信息网

Component中kprintf怎么用

发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,这篇文章主要介绍Component中kprintf怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!调试程序时,最常用的一个手段是打印一些调试语句,而最常用的打印函数应该就是
千家信息网最后更新 2025年12月04日Component中kprintf怎么用

这篇文章主要介绍Component中kprintf怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

调试程序时,最常用的一个手段是打印一些调试语句,而最常用的打印函数应该就是printf()了。printf()的作用是向标准输出设备输出格式化的调试语句。这个标准输出设备默认是PC Console或串口

也可以修改,例如改为文件或管道


logMsg()在ISR中执行时,通过底层的msgQSend(logMsgQId, msg, sizeof(msg), NO_WAIT,MSG_PRI_NORMAL)将调试语句发送给优先级为0的任务tLogTask

不过要想使用logMsg(),需要在usrRoot()调用logInit()之后;使用printf(),需要在usrRoot()调用usrSerialInit()或usrPcConsoleInit()之后。


这个组件只是给开发人员提供了两个函数kputs()和kprintf()。这两个函数的声明分别类似于ANSI定义的puts和printf(),其作用也差不多,它俩就是打印语句,用来调试的。


可以看到,在usrInit()阶段的sysHwInit()之后、usrCacheEnable()之前,就可以使用kprintf()了,这可比printf()/logMsg()的可用时机提前了很多。

另外,logMsg()在调用msgQSend()时用的NO_WAIT方式,因此有可能会丢弃部分消息


来看一个输出到RAM保留区的例子


最后,对比一下它们仨

printf()

  • 最常用

  • 阻塞模式,不丢消息

  • 不能用于中断

  • 在usrRoot()初始化IO系统后才能调用

logMsg()

  • 可用于中断

  • 可能丢消息

  • 在初始化IO系统和logging机制后才能调用

kprintf()

  • 在usrInit()调用sysHwInit()之后即可调用

  • 可用于中断

  • 可输出到串口或Memory设备

  • 不丢消息


这正是:

系统在启动,IO未使能。

如何来调试?kprintf可使用。

以上是"Component中kprintf怎么用"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

输出 消息 语句 函数 常用 系统 设备 两个 串口 作用 内容 就是 标准 篇文章 差不多 人员 价值 任务 优先级 例子 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 jsp连接数据库账户登录 软件开发与软件测试对比 自学计算机网络技术很难学吗 支持网络安全句子 鬼泣巅峰之战选什么服务器 单向数据网络安全网闸 上虞手机软件开发公司价格 上海物流软件开发机构 金山区手机软件开发创新服务 全国网络安全积极发展 软件开发人员组织模式有几种 网络安全法三个特征 湖北常见软件开发价格表 戴尔t320服务器上市时间 怀旧服服务器等级怎么看 主流it网络技术是什么 服务器开启360防护404 软件开发 读写权限 网络安全意识课程总结 手机软件开发零基础入门 网络安全浙江工业大学 聊城智慧养老软件开发系统 白岩松谈网络安全隐私 网络安全宣传的手抄报图片简单 中国台湾程序软件开发设计 云南微信app软件开发 淄博服务器托管公司有哪些 陶风互联网科技有限 龙岗网络安全建设找哪家 瓜州区网络安全培训
0