中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

旅游網(wǎng)站的制作友情鏈接獲取的途徑有哪些

旅游網(wǎng)站的制作,友情鏈接獲取的途徑有哪些,糗事百科 wordpress,谷歌seo是什么職業(yè)背景 問題 前段時(shí)間開發(fā)一個(gè)tty驅(qū)動(dòng),用途是實(shí)現(xiàn)儀器對(duì)GPIB消息的接收、處理和上報(bào)。對(duì)于上報(bào)場(chǎng)景,下位機(jī)應(yīng)用將上報(bào)內(nèi)容寫入一個(gè)驅(qū)動(dòng)創(chuàng)建的tty設(shè)備,tty子系統(tǒng)將應(yīng)用的輸入轉(zhuǎn)發(fā)給tty驅(qū)動(dòng),tty驅(qū)動(dòng)將其轉(zhuǎn)換成對(duì)SPI從設(shè)備&#xff0…

背景

問題

前段時(shí)間開發(fā)一個(gè)tty驅(qū)動(dòng),用途是實(shí)現(xiàn)儀器對(duì)GPIB消息的接收、處理和上報(bào)。對(duì)于上報(bào)場(chǎng)景,下位機(jī)應(yīng)用將上報(bào)內(nèi)容寫入一個(gè)驅(qū)動(dòng)創(chuàng)建的tty設(shè)備,tty子系統(tǒng)將應(yīng)用的輸入轉(zhuǎn)發(fā)給tty驅(qū)動(dòng),tty驅(qū)動(dòng)將其轉(zhuǎn)換成對(duì)SPI從設(shè)備(即GPIB擴(kuò)展板)的寫入,SPI從設(shè)備再將收到的SPI消息轉(zhuǎn)換成GPIB消息發(fā)送給上位機(jī)。
GPIB拓?fù)? /></p> 
<p>實(shí)現(xiàn)<code>tty_operations</code>的<code>write</code>接口時(shí),我是這么獲取<code>驅(qū)動(dòng)上下文</code>的:</p> 
<pre><code class=struct gpib_tty_ctx {struct tty_port port;struct tty_struct mgr; // 其實(shí)是無效的成員struct tty_driver *tty_drv;struct spi_device *spi_dev;struct gpib_spi_ctx *spi_ctx;struct mutex tty_lock;u32 activated:1;const u8 *pend_tx_buf;u32 pend_tx_len; };static int gpib_tty_write(struct tty_struct * tty, const unsigned char *buf, int count) {struct gpib_tty_ctx *ctx = container_of(tty, struct gpib_tty_ctx, mgr);// 通過ctx指針訪問上下文結(jié)構(gòu)體gpib_tty_ctx的驅(qū)動(dòng)私有字段,完成write功能return count; }

但是實(shí)際執(zhí)行的時(shí)候,觸發(fā)了空指針異常,且空指針的值并不是0x0這種典型值,而是帶一點(diǎn)偏移。

問題定位

經(jīng)定位,是我對(duì)tty子系統(tǒng)的理解有問題,write方法的第一個(gè)入?yún)?code>tty,并不是gpib_tty_ctxstruct tty_struct mgr成員的地址,而是tty子系統(tǒng)在運(yùn)行時(shí)自動(dòng)創(chuàng)建的一個(gè)匿名tty_struct對(duì)象的地址!因此我用container_of宏獲取到的gpib_tty_ctx對(duì)象地址也是一個(gè)無效地址!

解決

注意到tty_struct結(jié)構(gòu)體包含一個(gè)類型為struct tty_port的指針port

struct tty_struct {struct kref kref;int index;struct device *dev;struct tty_driver *driver;struct tty_port *port;   // 指向用戶驅(qū)動(dòng)創(chuàng)建并初始化的tty_port對(duì)象const struct tty_operations *ops;struct tty_ldisc *ldisc;struct ld_semaphore ldisc_sem;// ...
};

它應(yīng)該就是指向驅(qū)動(dòng)之前創(chuàng)建并初始化的gpib_tty_ctx.port對(duì)象,這個(gè)對(duì)象本身是沒有被復(fù)制的,因此我可以將這個(gè)指針傳遞給container_of宏:

struct gpib_tty_ctx *ctx = container_of(tty->port, struct gpib_tty_ctx, port);

經(jīng)測(cè)試,新的container_of宏返回了正確的驅(qū)動(dòng)上下文地址。

總結(jié)

  1. tty_struct指針類似于file_operations接口的open方法的輸出參數(shù)file指針,都對(duì)應(yīng)內(nèi)核自動(dòng)分配的一個(gè)對(duì)象,其地址是不可以用于container_of宏的,但是它的成員private_data可以用于container_of宏,因?yàn)楹笳叩闹凳球?qū)動(dòng)填寫的。
  2. container_of宏的第一個(gè)參數(shù)是結(jié)構(gòu)體成員地址,這個(gè)結(jié)構(gòu)體成員一般是個(gè)對(duì)象,不建議選地址類成員,因?yàn)槿绻堑刂?#xff0c;則該成員很可能是復(fù)制過的,那么你通過給container_of宏提供二級(jí)指針(指針成員的地址就是二級(jí)指針)獲取的ctx對(duì)象,很可能是錯(cuò)的。
http://www.risenshineclean.com/news/27253.html

相關(guān)文章:

  • 獨(dú)立電子商務(wù)網(wǎng)站百度關(guān)鍵詞快速優(yōu)化
  • 做網(wǎng)站需要注意的點(diǎn)圖片識(shí)別搜索引擎
  • 網(wǎng)站前端用的到ps江蘇企業(yè)seo推廣
  • 銀川網(wǎng)站設(shè)計(jì)聯(lián)系電話河南推廣網(wǎng)站的公司
  • 網(wǎng)站客服模版seoul是什么意思
  • 深圳做app網(wǎng)站設(shè)計(jì)西安今日頭條新聞消息
  • 廣州3d網(wǎng)站開發(fā)seo域名如何優(yōu)化
  • 榆中建設(shè)局網(wǎng)站營銷培訓(xùn)課程
  • 網(wǎng)站發(fā)布信息技巧上海百網(wǎng)優(yōu)seo優(yōu)化公司
  • 酒店分銷平臺(tái)有哪些湖南網(wǎng)站seo營銷
  • 賣產(chǎn)品怎么做網(wǎng)站專業(yè)seo站長工具全面查詢網(wǎng)站
  • dede做網(wǎng)站地圖揚(yáng)州百度推廣公司
  • 網(wǎng)站建設(shè)專業(yè)團(tuán)隊(duì)軟文廣告例子
  • 圓通我做網(wǎng)站拉今日小說百度搜索風(fēng)云榜
  • 企業(yè)網(wǎng)站策劃書下載自媒體平臺(tái)注冊(cè)
  • 時(shí)時(shí)彩 網(wǎng)站開發(fā)seo咨詢河北
  • 無錫高端網(wǎng)站建設(shè)營銷文案
  • 順德做pc端網(wǎng)站鄭州seo外包顧問熱狗
  • 宜興做網(wǎng)站公司營銷軟文怎么寫
  • 海曙網(wǎng)站制作職業(yè)培訓(xùn)學(xué)校加盟
  • 中小企業(yè)的網(wǎng)站建設(shè)seo怎么學(xué)
  • 企業(yè)對(duì)電子商務(wù)網(wǎng)站的建設(shè)百度官方網(wǎng)站網(wǎng)址是多少
  • 東莞大嶺山鎮(zhèn)網(wǎng)站建設(shè)新聞式軟文
  • 自己開網(wǎng)站工作室阿里云域名查詢和注冊(cè)
  • 企業(yè)網(wǎng)站的缺點(diǎn)有域名了怎么建立網(wǎng)站
  • 大連網(wǎng)站推廣招聘手機(jī)優(yōu)化大師為什么扣錢
  • 昆山做網(wǎng)站的jofuns市場(chǎng)營銷一般在哪上班
  • 純靜態(tài)網(wǎng)站部署服務(wù)器跨界營銷案例
  • 優(yōu)秀網(wǎng)站設(shè)計(jì)效果圖企業(yè)營銷推廣怎么做
  • 格力網(wǎng)站建設(shè)首頁友情鏈接交換的作用在于