首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux内核中dev_info、dev_dbg、dev_err及动态调试

目前在kernel驱动代码中,都不再建议直接使用printk直接添加打印信息,而是使用dev_info,dev_dbg,dev_err之类的函数代替,虽然这些dev_xxx函数的本质还是使用printk...dev_info():启动过程、或者模块加载过程等“通知类的”信息等,一般只会通知一次,例如probe函数; dev_dbg():一般使用在普通错误,如-EINVAL、-ENOMEM等errno发生处,用于调试; dev_err...的地方,或者程序员不容易猜测系统哪里出了问题的地方; 动态调试使用方法 打开内核动态调试开关,make menuconfig选中CONFIG_DYNAMIC_DEBUG以及CONFIG_DEBUG_FS Linux...代码分析 从代码角度,也很容易看出dev_dbg()的设计: include/linux/device.h include/linux/dynamic_debug.h lib/dynamic_debug.c

6K20
您找到你想要的搜索结果了吗?
是的
没有找到

全志D1-H芯片 如何在 Linux Device Tree 中配置预留内存?

前言 有时我们需要在 Linux 内核中预留一部分内存空间用作特殊用途(给安全模块使用,给其它处理器使用,或是给特定的驱动程序使用等),在 Device Tree 中有提供两种方法对预留内存进行配置:memreserve...会将从地址 0x40000000 开始共 1MB 的内存空间预留出来: /memreserve/ 0x40000000 0x00100000; 使用 memreserve 预留出来的内存一般无法再被 Linux...np) { dev_err(dev, "No %s specified\n", "memory-region"); goto error1; } rc = of_address_to_resource...(np, 0, &r); if (rc) { dev_err(dev, "No memory address assigned to the region\n"); goto error1; }.../* Initialize reserved memory resources */ rc = of_reserved_mem_device_init(dev); if(rc) { dev_err

10810

linux内核驱动模型详解_arduino驱动安装

转载请标明出处floater的csdn blog,http://blog.csdn.net/flaoter Linux SPI驱动分为核心层,控制器驱动层和设备驱动层。...核心层是Linux的SPI核心部分,提供了核心数据结构的定义,总线、设备和驱动的注册、注销管理等,提供与上层的统一接口。...linux将I2C、SPI、USB等总线驱动隔离成控制器驱动和设备驱动,使两者相对独立。 本文以qcom的spi控制器为例,对spi控制器驱动进行解析。kernel代码版本是3.18。...linux驱动与设备是一对多的关系,在spi_master设备注册时,控制器的结构体信息会提供给spi_master作为私有数据。...max_freq || max_freq > SPI_MAX_RATE) { dev_err(dev, "invalid clock frequency %d\n", max_freq); return

11.1K40
领券