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

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

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

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

英創(chuàng)信息技術(shù)Linux應(yīng)用程序?qū)崿F(xiàn)精確延時(shí)介紹

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-01-17 09:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Linux應(yīng)用程序中,常用的延時(shí)函數(shù)包括sleep()、usleep()、select()等,這幾個(gè)延時(shí)函數(shù)函數(shù)的執(zhí)行機(jī)制,都是將當(dāng)前線程掛起,由操作系統(tǒng)做延時(shí),然后再恢復(fù)當(dāng)前線程。這意味著其延時(shí)的最小間隔是兩次線程切換時(shí)間。經(jīng)測(cè)試,在單一線程情況下,兩次線程的切換時(shí)間在150us左右。大多數(shù)情況下,應(yīng)用程序會(huì)有多個(gè)線程在運(yùn)行,這時(shí)線程恢復(fù)有可能在下一個(gè)時(shí)間片,而Linux系統(tǒng)缺省的線程輪片時(shí)間為10ms,這意味著只有當(dāng)延時(shí)在大于10ms情況時(shí),常規(guī)的延時(shí)函數(shù)才有意義。在工控領(lǐng)域,我們常常碰到需要微秒級(jí)的延時(shí)需求,例如實(shí)現(xiàn)某種讀寫時(shí)序等,這時(shí)Linux系統(tǒng)的常規(guī)延時(shí)函數(shù)難于滿足其需求。針對(duì)這樣的應(yīng)用需求,我們?cè)O(shè)計(jì)了采用內(nèi)存映射的方法操作主板的硬件定時(shí)器和GPIO,從而產(chǎn)生出具有微秒精度的脈沖波形來。下面就詳細(xì)介紹如何在用戶進(jìn)程實(shí)現(xiàn)這樣的精確延時(shí)的操作。

以EM335x工控主板為例,用其內(nèi)部的定時(shí)器來實(shí)現(xiàn)精確延時(shí)的功能,EM335x內(nèi)部定時(shí)器的輸入時(shí)鐘為24MHz,單位時(shí)間為41.6ns,通過將Linux系統(tǒng)的mem設(shè)備文件和mmap()函數(shù)結(jié)合起來使用,可直接對(duì)EM335x內(nèi)部定時(shí)器的寄存器進(jìn)行操作,再通過同樣的方式控制GPIO,實(shí)現(xiàn):(1)設(shè)置GPIO,(2)啟動(dòng)定時(shí)器,當(dāng)檢測(cè)到定時(shí)器計(jì)數(shù)完畢,(3)再設(shè)置GPIO,共三個(gè)步驟,就可產(chǎn)生精確時(shí)間間隔的脈沖。

Linux系統(tǒng)中的/dev/mem設(shè)備文件,是專門用來讀寫物理地址用的,里面的內(nèi)容是所有物理內(nèi)存的地址以及內(nèi)容信息。只要我們使用mmap()函數(shù)將/dev/mem設(shè)備文件映射到進(jìn)程地址空間,實(shí)現(xiàn)對(duì)內(nèi)存物理地址的讀寫,就能夠通過這種方式快速的對(duì)GPIO和定時(shí)器進(jìn)行操作,而mmap操作提供了一種機(jī)制,讓用戶程序直接訪問設(shè)備內(nèi)存,這樣就相當(dāng)于直接對(duì)硬件進(jìn)行操作,從而避開了驅(qū)動(dòng)程序,如果調(diào)用驅(qū)動(dòng)就需要在用戶空間和內(nèi)核空間互相拷貝數(shù)據(jù),還會(huì)涉及到系統(tǒng)調(diào)度等機(jī)制,效率將會(huì)變低。

將/dev/mem/設(shè)備文件中定時(shí)器的地址映射到用戶進(jìn)程空間的代碼:
void *timer_em335x_pin_config(unsigned int BASE)
{
int mem_fd;
void *base;
mem_fd = open('/dev/mem', O_RDWR|O_SYNC);
printf('mem_fd is %d\n', mem_fd);
/* mmap Timer */
base = mmap(
NULL, //起始地址
DMTIMER_DEV_SIZE, //映射的文件內(nèi)容的大小
PROT_READ|PROT_WRITE,//映射區(qū)域可讀可寫
MAP_SHARED, //映射區(qū)域的寫入數(shù)據(jù)會(huì)寫回到原來的文件
mem_fd,
BASE//被映射的硬件地址
);
close(mem_fd);
return base;
}

將/dev/mem/設(shè)備文件中GPIO的地址映射到用戶進(jìn)程空間的代碼:
void *GPIO_MMAP::gpio_em335x_pin_config(unsigned int BASE)
{
int mem_fd;
void *base;
mem_fd = open('/dev/mem', O_RDWR|O_SYNC);
printf('mem_fd is %d\n', mem_fd);
/* mmap GPIO */
base = mmap(
NULL,//起始地址
GPIO_DEV_SIZE, //映射的文件內(nèi)容的大小
PROT_READ|PROT_WRITE,//映射區(qū)域可讀可寫
MAP_SHARED,//映射區(qū)域的寫入數(shù)據(jù)會(huì)寫回到原來的文件
mem_fd,
BASE //被映射的硬件地址
);
close(mem_fd);
return base;
}

成功執(zhí)行時(shí),mmap()函數(shù)返回被映射區(qū)的指針。普通文件被映射到進(jìn)程地址空間后,進(jìn)程可以像訪問普通內(nèi)存一樣對(duì)文件進(jìn)行訪問,不必再調(diào)用read(),write()等操作。只需要使用返回的地址指針在對(duì)應(yīng)的寄存器的偏移地址賦值,就可以完成操作。在例程中已經(jīng)將函數(shù)接口引出(詳細(xì)的代碼請(qǐng)參考例程):
ptr=Timer_Init();//初始化,將定時(shí)器地址映射到用戶進(jìn)程
Timer_Start(ptr, GPIO0, 0xfffffffa); //啟動(dòng)定時(shí)器,并設(shè)置時(shí)間和哪一位GPIO

定時(shí)器是從0計(jì)數(shù)到0xffffffff,需要實(shí)現(xiàn)定時(shí)功能,我們就要改變定時(shí)器的初值,上面的程序中0xfffffffa為定時(shí)器的初值,前面提到過由于EM335x定時(shí)器時(shí)鐘為24MHZ,所以定時(shí)器單位時(shí)間為1/24000000=41.6ns,假設(shè)程序訪問寄存器還需要花費(fèi)時(shí)間T0,在計(jì)算初值的時(shí)候,就需要加上這一部分時(shí)間才能保證準(zhǔn)確性,因此定時(shí)器取值的計(jì)算公式為:
T=0xffffffff-(目標(biāo)延時(shí)/41.6ns)+T0

經(jīng)過測(cè)試,執(zhí)行一次程序訪問寄存器所需花費(fèi)的時(shí)間大約為T0=800ns。舉個(gè)例子,比如目標(biāo)延時(shí)為2μs,那么定時(shí)器初值為:0xffffffff-(2000/41.6)+800,也就是0xffffffe2,測(cè)試的時(shí)候帶入這個(gè)值,再進(jìn)行微調(diào),即可得到想要的結(jié)果。

使用英創(chuàng)工控主板運(yùn)行例程測(cè)試,分別測(cè)試延時(shí)1μs,1.5μs,2μs,5μs,10μs時(shí)的精度,結(jié)果如下:

目標(biāo)延時(shí) 定時(shí)器取值 實(shí)際延時(shí)
Min Max
1us 0xfffffffa 1.14us 1.20us


1us的測(cè)試波形

目標(biāo)延時(shí) 定時(shí)器取值 實(shí)際延時(shí)
Min Max
1.5us 0xffffffee 1.46us 1.52us


1.5μs的測(cè)試波形

目標(biāo)延時(shí) 定時(shí)器取值 實(shí)際延時(shí)
Min Max
2us 0xffffffe2 1.90us 2.08us

2μs的測(cè)試波形

目標(biāo)延時(shí) 定時(shí)器取值 實(shí)際延時(shí)
Min Max
5us 0xffffff9a 4.92us 5.04us

5μs的測(cè)試波形

目標(biāo)延時(shí) 定時(shí)器取值 實(shí)際延時(shí)
Min Max
10us 0xffffff22 9.90us 10.10us


10μs的測(cè)試波形

可以看到,在1μs時(shí),誤差范圍在±200ns左右,超過1μs,其余的取值,誤差都在±100ns以內(nèi),隨著延時(shí)的增加,精確度將越來越高,在10μs的時(shí)候,誤差已經(jīng)非常小了。

通過以上方案實(shí)現(xiàn)了在用戶進(jìn)程對(duì)精確延時(shí)的操作,詳細(xì)的操作代碼請(qǐng)參考例程。

關(guān)于這一方法在EM9x60系列工控主板上的實(shí)現(xiàn)可閱讀下文:英創(chuàng)嵌入式主板支持精確延時(shí)操作之二

注意事項(xiàng):我們推薦客戶直接使用例程中引出的接口進(jìn)行操作,不推薦客戶對(duì)硬件訪問這一部分代碼進(jìn)行修改,以免在操作的時(shí)候出現(xiàn)無法預(yù)估的錯(cuò)誤。

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

    關(guān)注

    88

    文章

    11760

    瀏覽量

    219046
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6107

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    龍芯中科成功舉辦2025信息技術(shù)應(yīng)用創(chuàng)新產(chǎn)教融合交流會(huì)

    11月30日,在教育部教育管理信息中心、山東省電化教育館的支持和指導(dǎo)下,龍芯中科聯(lián)合浪潮集團(tuán)、濟(jì)南幼兒師范高等??茖W(xué)校(以下簡稱“濟(jì)南幼高?!保?,成功舉辦信息技術(shù)應(yīng)用創(chuàng)新產(chǎn)教融合交流會(huì),并同步舉行信息技術(shù)應(yīng)用創(chuàng)新實(shí)踐基地啟用儀式
    的頭像 發(fā)表于 12-08 14:53 ?786次閱讀

    龍芯中科助力2025教育信息技術(shù)應(yīng)用創(chuàng)新大賽成功舉辦

    2025年11月13日-15日,由中國教育技術(shù)協(xié)會(huì)主辦、浙江大學(xué)與中國教育技術(shù)協(xié)會(huì)網(wǎng)絡(luò)安全專業(yè)委員會(huì)聯(lián)合承辦,中國電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信息技術(shù)應(yīng)用創(chuàng)新工作委員會(huì)、浙江高校信
    的頭像 發(fā)表于 11-21 16:23 ?792次閱讀

    使用系統(tǒng)定時(shí)器SysTick來實(shí)現(xiàn)精確延時(shí)微秒和毫秒函數(shù)

    精確延時(shí)函數(shù)的實(shí)現(xiàn) 在core_cm3.h文件中,有這樣一個(gè)SysTickConfig函數(shù): __STATIC_INLINE uint32_t SysTick_Config(uint32_t
    發(fā)表于 11-20 07:12

    誠邁科技信創(chuàng)電腦助力2025第二屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽圓滿收官

    11月15日,由中國教育技術(shù)協(xié)會(huì)主辦、浙江大學(xué)與中國教育技術(shù)協(xié)會(huì)網(wǎng)絡(luò)安全專業(yè)委員會(huì)聯(lián)合承辦,中國電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信息技術(shù)應(yīng)用創(chuàng)新工作委員會(huì)、浙江高校信
    的頭像 發(fā)表于 11-17 17:58 ?679次閱讀
    誠邁科技信<b class='flag-5'>創(chuàng)</b>電腦助力2025第二屆教育<b class='flag-5'>信息技術(shù)</b>應(yīng)用創(chuàng)新大賽圓滿收官

    OBOO鷗柏|信創(chuàng)觸摸一體機(jī)兆芯115寸Linux國產(chǎn)系統(tǒng)技術(shù)智造

    BOO鷗柏信創(chuàng)觸摸一體機(jī):兆芯115寸Linux智造新標(biāo)桿在信息技術(shù)應(yīng)用創(chuàng)新浪潮中,【OBOO鷗柏】推出的信創(chuàng)觸摸一體機(jī)以其卓越性能和智能化設(shè)計(jì),成為行業(yè)數(shù)字化轉(zhuǎn)型的重要工具。這款搭載
    的頭像 發(fā)表于 11-16 15:44 ?1297次閱讀
    OBOO鷗柏|信<b class='flag-5'>創(chuàng)</b>觸摸一體機(jī)兆芯115寸<b class='flag-5'>Linux</b>國產(chǎn)系統(tǒng)<b class='flag-5'>技術(shù)</b>智造

    寶馬南京信息技術(shù)有限公司開業(yè)

    今日,寶馬(南京)信息技術(shù)有限公司在南京正式“掛牌運(yùn)行”。這家華晨寶馬全資子公司由領(lǐng)悅數(shù)字信息技術(shù)有限公司南京分公司“迭代”而來,代表著一次里程碑式的“進(jìn)化”。這次升級(jí)不僅加速了寶馬在華數(shù)字化轉(zhuǎn)型進(jìn)程,更通過深化本土創(chuàng)新,為“未來智慧出行”的發(fā)展譜寫了核心“代碼”。
    的頭像 發(fā)表于 10-29 15:17 ?629次閱讀

    易華錄入選國家級(jí)信息技術(shù)應(yīng)用創(chuàng)新典型解決方案

    近日,工業(yè)和信息化部網(wǎng)絡(luò)安全產(chǎn)業(yè)發(fā)展中心(工業(yè)和信息化部信息中心)公布了“2024年信息技術(shù)應(yīng)用創(chuàng)新解決方案”評(píng)選結(jié)果。易華錄申報(bào)的“基于節(jié)能高效藍(lán)光的超級(jí)智能存儲(chǔ)解決方案”憑借顯著的
    的頭像 發(fā)表于 08-07 15:35 ?1622次閱讀

    信息技術(shù)應(yīng)用產(chǎn)學(xué)協(xié)同人才培養(yǎng)行動(dòng)計(jì)劃”正式發(fā)布,誠邁科技入選首批參與單位

    設(shè)在中國軟件評(píng)測(cè)中心。誠邁科技作為信創(chuàng)技術(shù)先鋒企業(yè),受邀成為首批參與單位,與國內(nèi)頂尖高校、領(lǐng)軍企業(yè)和權(quán)威機(jī)構(gòu)攜手,共同打造具有中國特色的信息技術(shù)人才培養(yǎng)新范式,為
    的頭像 發(fā)表于 08-06 17:29 ?1559次閱讀
    “<b class='flag-5'>信息技術(shù)</b>應(yīng)用產(chǎn)學(xué)協(xié)同人才培養(yǎng)行動(dòng)計(jì)劃”正式發(fā)布,誠邁科技入選首批參與單位

    佛瑞亞如何通過信息技術(shù)推動(dòng)業(yè)務(wù)增長

    在數(shù)字化、信息化的浪潮下,信息技術(shù)已經(jīng)不僅是后臺(tái)工具,更成為驅(qū)動(dòng)企業(yè)發(fā)展的關(guān)鍵力量。本期Women Inspiring Mobility,我們采訪了佛瑞亞中國區(qū)信息技術(shù)總監(jiān)馬瑛,了解她和團(tuán)隊(duì)如何將
    的頭像 發(fā)表于 07-29 14:00 ?909次閱讀

    飛騰主板為信創(chuàng)產(chǎn)業(yè)發(fā)展提高硬實(shí)力

    信息技術(shù)飛速發(fā)展的當(dāng)下,信創(chuàng)產(chǎn)業(yè)已成為我國實(shí)現(xiàn)科技自立自強(qiáng)、保障國家信息安全的關(guān)鍵領(lǐng)域。信創(chuàng),即信息技
    的頭像 發(fā)表于 07-22 18:20 ?713次閱讀

    DEKRA德凱成為沙特通信和信息技術(shù)設(shè)備技術(shù)法規(guī)認(rèn)證機(jī)構(gòu)

    近日,DEKRA德凱成功獲得沙特標(biāo)準(zhǔn)、計(jì)量和質(zhì)量組織(SASO)認(rèn)可,正式成為沙特通信和信息技術(shù)設(shè)備技術(shù)法規(guī)(Technical Regulation for Communications
    的頭像 發(fā)表于 07-15 14:27 ?922次閱讀

    科普|信創(chuàng)是什么?一文讀懂“信息技術(shù)應(yīng)用創(chuàng)新”戰(zhàn)略

    什么是信創(chuàng)?信創(chuàng),即“信息技術(shù)應(yīng)用創(chuàng)新”,是國家推動(dòng)IT系統(tǒng)自主可控、安全可控的重要戰(zhàn)略工程。它不僅是技術(shù)層面的創(chuàng)新,更承載著保障國家網(wǎng)絡(luò)安全、推動(dòng)產(chǎn)業(yè)升級(jí)和
    的頭像 發(fā)表于 06-13 10:06 ?8335次閱讀
    科普|信<b class='flag-5'>創(chuàng)</b>是什么?一文讀懂“<b class='flag-5'>信息技術(shù)</b>應(yīng)用創(chuàng)新”戰(zhàn)略

    2025第二屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽正式開賽

    為進(jìn)一步落實(shí)建設(shè)網(wǎng)絡(luò)強(qiáng)國和教育強(qiáng)國的戰(zhàn)略部署,推動(dòng)各級(jí)教育行政部門及高校信息技術(shù)應(yīng)用創(chuàng)新能力提升,培養(yǎng)實(shí)戰(zhàn)型創(chuàng)新人才。龍芯中科聯(lián)合太初元碁、誠邁科技在2025第二屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽共同發(fā)布信息技術(shù)應(yīng)用創(chuàng)新人工智能方向(賽
    的頭像 發(fā)表于 05-13 16:21 ?1443次閱讀

    創(chuàng)浪潮下,國產(chǎn)主板有什么新的發(fā)展機(jī)遇?

    信息技術(shù)應(yīng)用創(chuàng)新浪潮的推動(dòng)下,國產(chǎn)主板迎來了諸多新的發(fā)展機(jī)遇。信創(chuàng)產(chǎn)業(yè)旨在實(shí)現(xiàn)信息技術(shù)領(lǐng)域的自主可控,這一戰(zhàn)略目標(biāo)為國產(chǎn)主板的發(fā)展提供了廣闊的空間。信
    的頭像 發(fā)表于 05-09 09:24 ?728次閱讀
    信<b class='flag-5'>創(chuàng)</b>浪潮下,國產(chǎn)主板有什么新的發(fā)展機(jī)遇?

    Linux的作用

    學(xué)校和教育機(jī)構(gòu)使用Linux來教授計(jì)算機(jī)科學(xué)和信息技術(shù)相關(guān)的課程。 總之,Linux是一個(gè)功能強(qiáng)大、靈活且廣泛應(yīng)用的操作系統(tǒng),適用于各種不同的用途和場(chǎng)景。
    發(fā)表于 04-04 01:57