新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式機(jī)器視覺系統(tǒng)中ARM與DSP的數(shù)據(jù)通信設(shè)計(jì)方案

        嵌入式機(jī)器視覺系統(tǒng)中ARM與DSP的數(shù)據(jù)通信設(shè)計(jì)方案

        作者: 時(shí)間:2012-12-29 來(lái)源:網(wǎng)絡(luò) 收藏

          3.3 驅(qū)動(dòng)程序的內(nèi)核加載方式

          將編寫好的驅(qū)動(dòng)程序加載到系統(tǒng)內(nèi)核,完成驅(qū)動(dòng)硬件的工作。

          1)驅(qū)動(dòng)程序直接編譯入內(nèi)核采用這種方式編譯的驅(qū)動(dòng)程序在內(nèi)核啟動(dòng)時(shí)就已經(jīng)在內(nèi)存中,運(yùn)行時(shí)不需要再自行加載驅(qū)動(dòng),可以保留專用的存儲(chǔ)器空間。

          2)驅(qū)動(dòng)程序的模塊加載采用模塊加載方式的驅(qū)動(dòng)程序?qū)?huì)以模塊形式存儲(chǔ)在文件系統(tǒng)里。這里就采用此種方式。

          因采用的是模塊加載方式,所以還需要借助兩個(gè)重要的函數(shù)init_module()和cleanup_module(),完成模塊的注冊(cè)和卸載。具體源碼可以參見/usr/src/linux/kemel/module.c。在2.3版本以后采用了新的方法命名這兩個(gè)函數(shù),定義exampie_init()代替init_module(),example_cleanup()代替cleanup_module()。在程序的最后用下面兩行代碼進(jìn)行聲明:

          module_init(S3C2440_HPI_init);

          module_exit(S3C2440_HPI_exit);

          3.4 接口具體應(yīng)用的設(shè)計(jì)方法

          利用編寫好的驅(qū)動(dòng)程序,用戶可以編寫出不同的應(yīng)用接口程序。下面給出自增寫的方法:

          根據(jù)圖2的接口電路,A2,A3,A4,A5對(duì)應(yīng)的接口分別是HCNTI0,HCNTL1,HHWIL,當(dāng)自增模式寫低半字時(shí),它們的值分別是:HCNTL0=0,HCNTL1=1,HHWIL=O。所以自增寫第一半字時(shí),加00000100即:0x04,當(dāng)自增模式寫高字節(jié)時(shí),它們的值應(yīng)該是HCNTL0=0,HCNTL1=1,HHWIL=1,即A[5:2]=1010。所以自增寫第二半字時(shí),加00101000即:0x28。對(duì)HPI控制寄存器寫地址用如下宏定義:

          對(duì)于作為接收端的DSP處理器,需要明確:

          1)是否準(zhǔn)備就緒,可以進(jìn)行寫入數(shù)據(jù),HPI-16中可以通過HPIC寄存器查詢HRDY的狀態(tài),當(dāng)HRDY為1時(shí),表明HPI已經(jīng)準(zhǔn)備就緒;

          2)指明要寫數(shù)據(jù)的區(qū)域址,即dsp_add_w=(hpi.hpi_dsp_add),這是從應(yīng)用程序傳過來(lái)的參數(shù),以確定寫數(shù)據(jù)區(qū)域的起始地址。自增寫的代碼和注釋如下:

          4 結(jié)束語(yǔ)

          +DSP的雙核系統(tǒng)是新型的嵌入式構(gòu)建方法,這里設(shè)計(jì)的通過HPI接口交換數(shù)據(jù)的雙機(jī)通信方法,在項(xiàng)目中被成功地應(yīng)用證明,傳輸數(shù)據(jù)速度達(dá)到10 Mb/s,能夠滿足嵌入式系統(tǒng)對(duì)實(shí)時(shí)性的要求,具有廣闊的應(yīng)用前景。

        通信相關(guān)文章:通信原理



        上一頁(yè) 1 2 3 下一頁(yè)

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 滦南县| 正镶白旗| 吉首市| 阿瓦提县| 会理县| 古田县| 维西| 闽侯县| 仲巴县| 黎城县| 昆山市| 东兴市| 陵川县| 万全县| 互助| 中宁县| 行唐县| 高阳县| 堆龙德庆县| 旅游| 自治县| 改则县| 濮阳县| 乌拉特前旗| 徐水县| 南丹县| 福清市| 延庆县| 汉寿县| 徐汇区| 陇川县| 淳安县| 合阳县| 宜都市| 运城市| 利辛县| 阿勒泰市| 东宁县| 富平县| 高邮市| 遂平县|