91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

內(nèi)核調(diào)試?yán)鱬rintk的使用心得

Q4MP_gh_c472c21 ? 來(lái)源:嵌入式客棧 ? 作者:逸珺 ? 2021-11-08 17:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

[導(dǎo)讀] 剛剛開(kāi)始做Linux相關(guān)開(kāi)發(fā)工作時(shí),深感Linux內(nèi)核代碼龐大,要加些自己的驅(qū)動(dòng)進(jìn)內(nèi)核代碼樹(shù),常常深陷bug的泥沼難以自拔,今天來(lái)分享一下內(nèi)核調(diào)試?yán)鱬rintk的使用心得。

前面一段時(shí)間很忙,后期更文頻率會(huì)漸漸回歸正常頻率,盡量會(huì)保證每周一到兩更。感謝各位朋友的關(guān)注而沒(méi)有棄我而去,我定不負(fù)厚愛(ài),會(huì)持續(xù)輸出些日常技術(shù)工作中的心得體會(huì),如對(duì)朋友們有些許幫助,也煩請(qǐng)幫忙點(diǎn)個(gè)贊或者在看(這并不會(huì)對(duì)各位有何不利的影響哈~~~),這也是對(duì)我堅(jiān)持持續(xù)輸出的大大激勵(lì)!

printk初接觸

Linux內(nèi)核啟動(dòng)之后常會(huì)看見(jiàn)很多信息打印出來(lái),這在底層是printk子系統(tǒng)實(shí)現(xiàn)的,其實(shí)現(xiàn)代碼在./kernel/printk/中實(shí)現(xiàn)的。

一個(gè)小小的打印,對(duì)于內(nèi)核而言也需要考慮很多方面,需要考慮到多核、中斷、緩沖以及用戶(hù)空間接口。對(duì)于用戶(hù)空間接口很多朋友或許會(huì)很疑惑。

其中/dev/kmsg字符設(shè)備就是printk子系統(tǒng)實(shí)現(xiàn)的內(nèi)核打印字符設(shè)備。如果利用文件操作寫(xiě)這個(gè)設(shè)備就最終會(huì)以printk形式輸出,如果讀這個(gè)設(shè)備最終就會(huì)返回printk歷史,你如不信不妨用這個(gè)命令試試:

cat/dev/kmsg

看到這里或許有朋友會(huì)問(wèn),為啥有的文章提到用/proc/kmsg去讀取內(nèi)核打印緩沖區(qū)的日志用以調(diào)試。來(lái)分析一下:

/proc/kmsg

/proc/kmsg僅為root用戶(hù)提供內(nèi)核日志緩沖區(qū)的只讀操作。等效于通過(guò)SYSLOG_ACTION_READ操作調(diào)用[syslog(2)]。

一個(gè)進(jìn)程必須具有超級(jí)用戶(hù)特權(quán)才能讀取此文件,并且只有一個(gè)進(jìn)程應(yīng)讀取該文件。如果正在運(yùn)行使用syslog(2)系統(tǒng)調(diào)用記錄內(nèi)核消息的syslog進(jìn)程,則不應(yīng)讀取該文件。

這里補(bǔ)充說(shuō)一點(diǎn)是,/proc文件系統(tǒng)本質(zhì)上是偽文件系統(tǒng),它提供了內(nèi)核數(shù)據(jù)結(jié)構(gòu)的接口。它一般掛載在/proc上。通常情況下,它是由系統(tǒng)自動(dòng)掛載的的,但是也可以使用以下命令手動(dòng)安裝:

mount-tprocproc/proc

大部分位于/proc下的文件屬于只讀特性,但也有少部分是可寫(xiě)的。但是對(duì)于/proc/kmsg而言則是只讀的。

/dev/kmsg

/dev/kmsg提供對(duì)同一內(nèi)核日志緩沖區(qū)的訪(fǎng)問(wèn),但以一種更易于使用的方式。每次打開(kāi)都會(huì)對(duì)讀取進(jìn)行跟蹤,因此可以并行讀取多個(gè)進(jìn)程,并且在讀取條目時(shí)不會(huì)將其從緩沖區(qū)中刪除。/dev/kmsg還提供對(duì)日志緩沖區(qū)的寫(xiě)訪(fǎng)問(wèn)權(quán),因此可用于將條目添加到日志緩沖區(qū)。

那么為什么兩者都存在,以及為什么一個(gè)存在于/proc中和而另一個(gè)存在于/dev中,/proc/kmsg是歷史設(shè)計(jì),而/dev/kmsg是較新引入的,被設(shè)計(jì)為日志緩沖區(qū)的可用接口。該接口也實(shí)現(xiàn)了用戶(hù)空間添加記錄進(jìn)內(nèi)核日志系統(tǒng)的可能。

其代碼實(shí)現(xiàn)也可以簡(jiǎn)單

printk使用

printk怎么打印的呢?想必做嵌入式開(kāi)發(fā)的一定熟悉printf函數(shù),那么從范式上printk也比較類(lèi)似,但也有很多不同。且看:

內(nèi)核打印,界定了日志級(jí)別,其語(yǔ)法范式:

printk([KERN_LOG_LEVEL]"Message:%s
",arg);

比如:

printk(KERN_DEBUG“Hereis:%s:%i
”,__FILE__,__LINE__);

那么有哪些日志級(jí)別,又各有何區(qū)別呢?

日志級(jí)別

級(jí)別 宏名 描述
0 KERN_EMERG 最高級(jí)別,系統(tǒng)遇到緊急狀況,嚴(yán)重時(shí)可能掛機(jī)了
1 KERN_ALERT 告警級(jí)別,需要立即關(guān)注或處置
2 KERN_CRIT critical 情況,比較緊急
3 KERN_ERR 當(dāng)系統(tǒng)檢測(cè)到某個(gè)錯(cuò)誤
4 KERN_WARNING warning中文也會(huì)翻譯成警告,但是緊急程度級(jí)別比Alert低,
5 KERN_NOTICE 正常操作但或許需要注意的一些操作
6 KERN_INFO 信息提示級(jí)別,比如驅(qū)動(dòng)指示一下做了什么操作
7 KERN_DEBUG 調(diào)試信息

對(duì)于這個(gè)表,或許剛使用時(shí)會(huì)不知所措,這么多級(jí)別到底該傳入什么級(jí)別呢?我的理解如果是自己定義的驅(qū)動(dòng)按照字面意思理解,靈活使用即可。唯一需要注意的時(shí)候,不同的級(jí)別打印或許在控制臺(tái)會(huì)有不同的體現(xiàn),這取決于控制臺(tái)打印的配置。

格式化

下面內(nèi)容來(lái)源于./Documentation/printk-formats.txt,整理于此方便使用:

  • 基本變量
類(lèi)型 格式化
int %d 或 %x
unsigned int %u 或 %x
long %ld 或 %lx
unsigned long %lu 或 %lx
long long %lld 或 %llx
unsigned long long %llu 或 %llx
size_t %zu 或 %zx
ssize_t %zd 或 %zx
s32 %d 或 %x
u32 %u 或 %x
s64 %lld 或 %llx
u64 %llu 或 %llx

注意:內(nèi)核打印不支持浮點(diǎn),%n也不支持,%e, %f, %g, %a也不支持,如使用了會(huì)導(dǎo)致WARN。

  • 指針
類(lèi)型 格式化
%p 打印基本指針
%pF versatile_init+0x0/0x110
%pf versatile_init
%pS versatile_init+0x0/0x110
%pSR versatile_init+0x9/0x110
%ps versatile_init
%pB prev_fn_of_versatile_init+0x88/0x88

除上面描述的這些格式化,printk還支持格式化打印塊設(shè)備名、IPv4、IPv6地址、網(wǎng)絡(luò)設(shè)備屬性、MAC/FDDI地址、UUID/GUID地址等等。如需要用到可查閱該文檔獲取更為詳細(xì)的信息。

修改控制臺(tái)打印級(jí)別

運(yùn)行時(shí)修改

在調(diào)試過(guò)程中,或許會(huì)發(fā)現(xiàn)有的printk信息沒(méi)有打印出來(lái),那么肯定是默認(rèn)運(yùn)行中內(nèi)核控制臺(tái)printk打印級(jí)別低于代碼中使用的級(jí)別,那么如果不想重新編譯內(nèi)核,有沒(méi)有辦法動(dòng)態(tài)修改呢?來(lái)看看怎么修改:

a7ea0a54-3f78-11ec-9195-dac502259ad0.png

在/proc/sys/kernel/printk文件中,有4個(gè)屬性分別對(duì)應(yīng):

  • 當(dāng)前控制臺(tái)日志級(jí)別
  • 默認(rèn)日志級(jí)別
  • 最小日志級(jí)別
  • 啟動(dòng)階段默認(rèn)日志級(jí)別

使用下面命令可以當(dāng)前控制臺(tái)printk日志級(jí)別:

echo6>/proc/sys/kernel/printk

這里傳入6,表示小于6級(jí)別的打印都將會(huì)被打印出來(lái)。這里可以根據(jù)需要傳入不同的值。取值參見(jiàn)前表<日志級(jí)別>。如想將所有的信息都打印出來(lái),傳入8即可,如:

echo8>/proc/sys/kernel/printk

如果你想將這些打印記錄進(jìn)一個(gè)文件,則可以使用klogd進(jìn)行重定向,比如:

klogd-o-f./kernel.msg

編譯修改

如果你想將某一模塊的內(nèi)核打印在編譯時(shí)使能,這樣做的好處是在模塊加載過(guò)程中的所有的信息在控制臺(tái)都可以看到,你還可以增加你感興趣的代碼添加打印信息,用以輔助調(diào)試。這怎么實(shí)現(xiàn)呢?

這里需要去看看你的內(nèi)核模塊代碼是以何種方式去調(diào)用printk的,比如有的代碼這樣調(diào)用:

staticinttea5764_i2c_probe(structi2c_client*client,
conststructi2c_device_id*id)
{
structtea5764_device*radio;
structv4l2_device*v4l2_dev;
structv4l2_ctrl_handler*hdl;
structtea5764_regs*r;
intret;

PDEBUG("probe");
.....

這里的PDEBUG其實(shí)就是printk的一種宏重包裝:

#definePINFO(format,...)
printk(KERN_INFOKBUILD_MODNAME":"
DRIVER_VERSION":"format"
",##__VA_ARGS__)
#definePWARN(format,...)
printk(KERN_WARNINGKBUILD_MODNAME":"
DRIVER_VERSION":"format"
",##__VA_ARGS__)
#definePDEBUG(format,...)
printk(KERN_DEBUGKBUILD_MODNAME":"
DRIVER_VERSION":"format"
",##__VA_ARGS__)

還有的是這樣:

staticintad9467_spi_read(structspi_device*spi,unsignedreg)
{
unsignedcharbuf[3];
intret;

if(spi){
buf[0]=0x80|(reg>>8);
buf[1]=reg&0xFF;

ret=spi_write_then_read(spi,&buf[0],2,&buf[2],1);

dev_dbg(&spi->dev,"%s:REG:0x%XVAL:0x%X(%d)
",
__func__,reg,buf[2],ret);

if(retdev,"spi_write_then_readfailed%s:REG:0x%XVAL:0x%X(%d)
",
__func__,reg,buf[2],ret);
returnret;
}


returnbuf[2];
}
return-ENODEV;
}

dev_dbg其本質(zhì)上也是調(diào)用的printk,來(lái)看看,在./include/linux/device.h中

#ifdefined(CONFIG_DYNAMIC_DEBUG)
#definedev_dbg(dev,fmt,...)
dynamic_dev_dbg(dev,dev_fmt(fmt),##__VA_ARGS__)
#elifdefined(DEBUG)
#definedev_dbg(dev,fmt,...)
dev_printk(KERN_DEBUG,dev,dev_fmt(fmt),##__VA_ARGS__)
#else
#definedev_dbg(dev,fmt,...)
({
if(0)
dev_printk(KERN_DEBUG,dev,dev_fmt(fmt),##__VA_ARGS__);
})
#endif

要把這些調(diào)試信息從控制臺(tái)給打印出來(lái),可以這樣做:

  • 修改一下默認(rèn)打印機(jī)別,在./inlcude/linux/printk.h中,直接修改其默認(rèn)值,8表示全放出來(lái)。
#defineCONSOLE_LOGLEVEL_DEFAULT8//CONFIG_CONSOLE_LOGLEVEL_DEFAULT
#defineCONSOLE_LOGLEVEL_QUIETCONFIG_CONSOLE_LOGLEVEL_QUIET
  • 在模塊頂端添加宏定義
/*添加宏定義DEBUG開(kāi)關(guān)*/
#defineDEBUG
#include
#include
#include

當(dāng)然,你也可以通過(guò)makefile來(lái)定義這個(gè)宏,找到你模塊所在的模塊,添加如下語(yǔ)句:

DEBUG=y

推薦使用device.h中的定義的一系列宏,對(duì)應(yīng)了不同日志級(jí)別。

#definedev_emerg(dev,fmt,...)
_dev_emerg(dev,dev_fmt(fmt),##__VA_ARGS__)
#definedev_crit(dev,fmt,...)
_dev_crit(dev,dev_fmt(fmt),##__VA_ARGS__)
#definedev_alert(dev,fmt,...)
_dev_alert(dev,dev_fmt(fmt),##__VA_ARGS__)
#definedev_err(dev,fmt,...)
_dev_err(dev,dev_fmt(fmt),##__VA_ARGS__)
#definedev_warn(dev,fmt,...)
_dev_warn(dev,dev_fmt(fmt),##__VA_ARGS__)
#definedev_notice(dev,fmt,...)
_dev_notice(dev,dev_fmt(fmt),##__VA_ARGS__)
#definedev_info(dev,fmt,...)
_dev_info(dev,dev_fmt(fmt),##__VA_ARGS__)

這有什么好處呢,因?yàn)檫@樣可以將模塊的設(shè)備名給打印出來(lái)。比如我在調(diào)試一個(gè)IIO設(shè)備時(shí),其關(guān)聯(lián)的SPI控制接口到底發(fā)了些什么控制命令,通過(guò)這種方式就可以非常清楚的看到驅(qū)動(dòng)調(diào)用了什么設(shè)備,寫(xiě)了哪些寄存器,寫(xiě)的什么值。

ad9467spi1.0:ad9467_spi_write:REG:0x5VAL:0x1(0)
ad9467spi1.0:ad9467_spi_write:REG:0xDVAL:0x0(0)
ad9467spi1.0:ad9467_spi_write:REG:0x5VAL:0x3(0)
ad9467spi1.0:ad9467_spi_write:REG:0xFFVAL:0x1(0)
ad9467spi1.0:ad9467_spi_write:REG:0xFFVAL:0x0(0)
ad9467spi1.0:ad9467_spi_write:REG:0x5VAL:0x2(0)
ad9467spi1.0:ad9467_spi_write:REG:0xDVAL:0x0(0)
ad9467spi1.0:ad9467_spi_write:REG:0x5VAL:0x3(0)
ad9467spi1.0:ad9467_spi_write:REG:0xFFVAL:0x1(0)

仍然沒(méi)有看到?

如果你配了這些,甚至編譯了,可是你還是沒(méi)有看到打印信息,那么可能printk沒(méi)有使能,在哪里使能呢?

CONFIG_PRINTK宏是內(nèi)核打印的編譯開(kāi)關(guān),大概率是這個(gè)配置沒(méi)有使能。

總結(jié)一下

內(nèi)核模塊的調(diào)試還有很多其他的手段,printk則是一個(gè)非常高效的調(diào)試手段,所有如何比較好的利用printk進(jìn)行打印調(diào)試,是做內(nèi)核模塊調(diào)試一個(gè)必要掌握的手段,至于printk的內(nèi)部實(shí)現(xiàn)其實(shí)也較為復(fù)雜,這塊代碼則沒(méi)有必要深究,當(dāng)然如果從學(xué)習(xí)的角度去分析分析其代碼如何實(shí)現(xiàn)的,也是不錯(cuò)的。好了,本期就分享到這里,咱們下期見(jiàn)~

責(zé)任編輯:haq
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    4

    文章

    1468

    瀏覽量

    42888
  • 驅(qū)動(dòng)
    +關(guān)注

    關(guān)注

    12

    文章

    1956

    瀏覽量

    88556
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11763

    瀏覽量

    219084

原文標(biāo)題:驅(qū)動(dòng)調(diào)試神器printk你掌握了嗎?

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    (信息量有點(diǎn)大)基于RK3576深入解讀kernel-6.1/System.map:內(nèi)核開(kāi)發(fā)調(diào)試的“地址-功能”導(dǎo)航圖

    在 Linux 內(nèi)核開(kāi)發(fā)與調(diào)試場(chǎng)景中,你是否遇到過(guò)這些困惑?內(nèi)核 panic 時(shí)打印的 pc: ffffffc00801c400 究竟對(duì)應(yīng)哪個(gè)函數(shù)?編寫(xiě)模塊時(shí)引用的foo 符號(hào)為何提示“未定義”??jī)?yōu)化
    的頭像 發(fā)表于 02-04 16:18 ?1008次閱讀
    (信息量有點(diǎn)大)基于RK3576深入解讀kernel-6.1/System.map:<b class='flag-5'>內(nèi)核</b>開(kāi)發(fā)<b class='flag-5'>調(diào)試</b>的“地址-功能”導(dǎo)航圖

    深入RK3588內(nèi)核:rockchip_linux_defconfig的作用與調(diào)試價(jià)值

    編譯內(nèi)核、適配硬件,還是調(diào)試復(fù)雜的內(nèi)核故障,這個(gè)看似“平平無(wú)奇” 的配置文件,都扮演著 “基石” 般的角色。
    的頭像 發(fā)表于 02-03 15:56 ?1171次閱讀
    深入RK3588<b class='flag-5'>內(nèi)核</b>:rockchip_linux_defconfig的作用與<b class='flag-5'>調(diào)試</b>價(jià)值

    探索DSC Multilink:調(diào)試利器的技術(shù)剖析

    探索DSC Multilink:調(diào)試利器的技術(shù)剖析 在嵌入式系統(tǒng)開(kāi)發(fā)領(lǐng)域,高效的調(diào)試工具是節(jié)省開(kāi)發(fā)時(shí)間、提升開(kāi)發(fā)效率的關(guān)鍵。今天,我們就來(lái)深入了解一款功能強(qiáng)大的調(diào)試接口——DSC Mu
    的頭像 發(fā)表于 12-24 17:05 ?316次閱讀

    Linux內(nèi)核日志玩明白了嗎?printk調(diào)試神器全解析

    前言:做Linux驅(qū)動(dòng)開(kāi)發(fā)或內(nèi)核調(diào)試的朋友,一定對(duì)printk不陌生,但你真的會(huì)用它嗎?為什么同樣是調(diào)試RK3588內(nèi)核,別人能精準(zhǔn)捕捉關(guān)鍵
    的頭像 發(fā)表于 12-19 08:32 ?872次閱讀
    Linux<b class='flag-5'>內(nèi)核</b>日志玩明白了嗎?<b class='flag-5'>printk</b><b class='flag-5'>調(diào)試</b>神器全解析

    CW32調(diào)試接口

    CW32F030 的內(nèi)核為 ARM?Cortex?-M0+,內(nèi)核內(nèi)置 DAP 硬件調(diào)試模塊,支持 SWD 模式調(diào)試。硬件調(diào)試模塊可實(shí)現(xiàn)在取指
    發(fā)表于 12-15 06:18

    Linux驅(qū)動(dòng)開(kāi)發(fā)的必備知識(shí)

    的驅(qū)動(dòng)框架進(jìn)行開(kāi)發(fā)。 6、調(diào)試技能: 掌握內(nèi)核調(diào)試工具,如 KDB、KGDB、printk 等。 能夠分析內(nèi)核日志,定位驅(qū)動(dòng)程序中的問(wèn)
    發(fā)表于 12-04 07:58

    GCC -O0?編譯內(nèi)核調(diào)試黨的?“救命神器”,這些優(yōu)勢(shì)?90%?開(kāi)發(fā)者沒(méi)吃透!

    在?Linux?內(nèi)核開(kāi)發(fā)、驅(qū)動(dòng)調(diào)試內(nèi)核問(wèn)題定位的場(chǎng)景中,“編譯優(yōu)化等級(jí)”?是個(gè)容易被忽略卻影響巨大的選擇。GCC?的優(yōu)化等級(jí)從?O0?到?O3、Os、Ofast?各有側(cè)重,而 O0(默認(rèn)優(yōu)化等級(jí)
    的頭像 發(fā)表于 12-03 07:05 ?671次閱讀
    GCC -O0?編譯<b class='flag-5'>內(nèi)核</b>:<b class='flag-5'>調(diào)試</b>黨的?“救命神器”,這些優(yōu)勢(shì)?90%?開(kāi)發(fā)者沒(méi)吃透!

    Linux內(nèi)核printk日志級(jí)別全解析:從參數(shù)解讀到實(shí)操配置

    ”——?它直接決定了?printk內(nèi)核打印函數(shù))的日志輸出行為。如果你是嵌入式開(kāi)發(fā)者、內(nèi)核調(diào)試工程師,或經(jīng)常需要排查驅(qū)動(dòng)?/?系統(tǒng)問(wèn)題,理解這串?dāng)?shù)字和?
    的頭像 發(fā)表于 11-20 15:54 ?1709次閱讀
    Linux<b class='flag-5'>內(nèi)核</b><b class='flag-5'>printk</b>日志級(jí)別全解析:從參數(shù)解讀到實(shí)操配置

    泰克示波器 MSO58 混合信號(hào)示波器在嵌入式系統(tǒng)調(diào)試中的核心技巧

    在嵌入式系統(tǒng)的開(kāi)發(fā)與調(diào)試中,泰克示波器 MSO58 混合信號(hào)示波器憑借其強(qiáng)大的功能和靈活的特性,成為工程師不可或缺的調(diào)試利器。掌握其核心調(diào)試技巧,能夠顯著提升
    的頭像 發(fā)表于 07-01 16:28 ?612次閱讀
    泰克示波器 MSO58 混合信號(hào)示波器在嵌入式系統(tǒng)<b class='flag-5'>調(diào)試</b>中的核心技巧

    設(shè)備遠(yuǎn)程調(diào)試利器:御控網(wǎng)關(guān)開(kāi)啟PLC高效運(yùn)維新時(shí)代

    御控網(wǎng)關(guān),專(zhuān)為設(shè)備遠(yuǎn)程調(diào)試,尤其是PLC(可編程邏輯控制器)的遠(yuǎn)程調(diào)試服務(wù),憑借其卓越性能與廣泛兼容性,支持絕大部分PLC遠(yuǎn)程調(diào)試,成為工業(yè)領(lǐng)域運(yùn)維人員的得力助手。
    的頭像 發(fā)表于 06-24 17:22 ?600次閱讀

    安森美WebDesigner+設(shè)計(jì)工具使用心得

    安森美(onsemi)近期推出的開(kāi)發(fā)工具試用活動(dòng)已圓滿(mǎn)收官,本次活動(dòng)吸引了眾多工程師的積極參與,通過(guò)實(shí)際應(yīng)用體驗(yàn)安森美先進(jìn)的開(kāi)發(fā)工具,共同挖掘其在設(shè)計(jì)中的潛力。之前推文已分享過(guò)用WebDesigner+ 設(shè)計(jì)工具完成120W DC-DC隔離電源設(shè)計(jì)、通過(guò)Elite Power仿真工具,簡(jiǎn)化125KW 儲(chǔ)能系統(tǒng)設(shè)計(jì),今天分享的試用報(bào)告聚焦WebDesigner工具,一起來(lái)了解下。
    的頭像 發(fā)表于 05-16 15:19 ?940次閱讀
    安森美WebDesigner+設(shè)計(jì)工具使<b class='flag-5'>用心得</b>

    福祿克ST20MAX紅外測(cè)溫儀究竟有多好用

    “精準(zhǔn)測(cè)量、智能預(yù)約、堅(jiān)固耐用、貼心設(shè)計(jì)…” 小福帶著首批ST20MAX客戶(hù)試用心得來(lái)啦!ST20MAX 究竟有多好用?讓我們一探究竟!
    的頭像 發(fā)表于 04-10 13:55 ?839次閱讀

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-內(nèi)核空間與用戶(hù)空間的數(shù)據(jù)拷貝之獲取內(nèi)核空間數(shù)據(jù)

    例程代碼路徑:ELF 1開(kāi)發(fā)板資料包\\03-例程源碼\\03-2 驅(qū)動(dòng)例程源碼\\03_內(nèi)核空間與用戶(hù)空間的數(shù)據(jù)拷貝\\copy_to_user 在mydevice-auto.c源碼的基礎(chǔ)上
    發(fā)表于 03-21 14:00

    飛凌嵌入式ElfBoard ELF 1板卡-內(nèi)核空間與用戶(hù)空間的數(shù)據(jù)拷貝之獲取內(nèi)核空間數(shù)據(jù)

    本帖最后由 jf_13411809 于 2025-3-20 14:09 編輯 例程代碼路徑:ELF 1開(kāi)發(fā)板資料包\\03-例程源碼\\03-2 驅(qū)動(dòng)例程源碼\\03_內(nèi)核空間與用戶(hù)空間的數(shù)據(jù)
    發(fā)表于 03-20 11:48

    恩智浦分享Zephyr調(diào)試技巧

    調(diào)試技巧 printk調(diào)試法 :通過(guò)使用prink來(lái)打印一些輔助調(diào)試信息,操作簡(jiǎn)單,適合于基礎(chǔ)的profiling,但是可能會(huì)導(dǎo)致時(shí)序問(wèn)題,尤其是針對(duì)在中斷上下文的處理中。還有針對(duì)于l
    的頭像 發(fā)表于 03-13 09:05 ?2416次閱讀