嵌入式機器視覺(jué)系統中ARM與DSP的數據通信設計方案
3.3 驅動(dòng)程序的內核加載方式
將編寫(xiě)好的驅動(dòng)程序加載到系統內核,完成驅動(dòng)硬件的工作。
1)驅動(dòng)程序直接編譯入內核采用這種方式編譯的驅動(dòng)程序在內核啟動(dòng)時(shí)就已經(jīng)在內存中,運行時(shí)不需要再自行加載驅動(dòng),可以保留專(zhuān)用的存儲器空間。
2)驅動(dòng)程序的模塊加載采用模塊加載方式的驅動(dòng)程序將會(huì )以模塊形式存儲在文件系統里。這里就采用此種方式。
因采用的是模塊加載方式,所以還需要借助兩個(gè)重要的函數init_module()和cleanup_module(),完成模塊的注冊和卸載。具體源碼可以參見(jiàn)/usr/src/linux/kemel/module.c。在2.3版本以后采用了新的方法命名這兩個(gè)函數,定義exampie_init()代替init_module(),example_cleanup()代替cleanup_module()。在程序的最后用下面兩行代碼進(jìn)行聲明:
module_init(S3C2440_HPI_init);
module_exit(S3C2440_HPI_exit);
3.4 接口具體應用的設計方法
利用編寫(xiě)好的驅動(dòng)程序,用戶(hù)可以編寫(xiě)出不同的應用接口程序。下面給出自增寫(xiě)的方法:
根據圖2的接口電路,A2,A3,A4,A5對應的接口分別是HCNTI0,HCNTL1,HHWIL,當自增模式寫(xiě)低半字時(shí),它們的值分別是:HCNTL0=0,HCNTL1=1,HHWIL=O。所以自增寫(xiě)第一半字時(shí),加00000100即:0x04,當自增模式寫(xiě)高字節時(shí),它們的值應該是HCNTL0=0,HCNTL1=1,HHWIL=1,即A[5:2]=1010。所以自增寫(xiě)第二半字時(shí),加00101000即:0x28。對HPI控制寄存器寫(xiě)地址用如下宏定義:
對于作為接收端的DSP處理器,需要明確:
1)是否準備就緒,可以進(jìn)行寫(xiě)入數據,HPI-16中可以通過(guò)HPIC寄存器查詢(xún)HRDY的狀態(tài),當HRDY為1時(shí),表明HPI已經(jīng)準備就緒;
2)指明要寫(xiě)數據的區域址,即dsp_add_w=(hpi.hpi_dsp_add),這是從應用程序傳過(guò)來(lái)的參數,以確定寫(xiě)數據區域的起始地址。自增寫(xiě)的代碼和注釋如下:
4 結束語(yǔ)
ARM+DSP的雙核系統是新型的嵌入式機器視覺(jué)系統構建方法,這里設計的通過(guò)HPI接口交換數據的雙機通信方法,在機器視覺(jué)系統項目中被成功地應用證明,傳輸數據速度達到10 Mb/s,能夠滿(mǎn)足嵌入式系統對實(shí)時(shí)性的要求,具有廣闊的應用前景。
通信相關(guān)文章:通信原理
評論