基于Linux-2.6.16的高速模數(shù)轉換器AD7859L的應用
3.1 平臺資源
在2.6內核中將每個設備的資源用結構platform_device描述,該結構體在/include/linux/platform_device.h中定義。AD7859L驅動的平臺資源如下。在文件/arch/arm/roach―s3c2410/devs.c中添加下述結構體。
該宏定義在map.h文件中。第二組描述了AD7859L設備的中斷向量號。flags描述資源類型,設備驅動會根據(jù)flags來獲取相應的資源信息。在結構體static struct platform_device*smdk2410_devices[]__initdata添加上述s3c_device_ad7859adc平臺資源。該結構體在/arch/arm/mach―s3c2410/mach―smdk2410.C文件中定義。
3.2 MISC類設備
在AD7859L的結構體內創(chuàng)建一個miscdevice類型設備驅動的結構體指針,增添一個misc類型設備。該結構體在/include/miscdevice.h中定義。
在AD7859L驅動的probe函數(shù)中調用misc_register(stmctmiscdevice*misc)函數(shù),對misc類設備注冊,這個函數(shù)會為內核注冊一個misc類型設備,如果minor被設置為MISCDYNAMIC_MINOR,系統(tǒng)會動態(tài)的為該設備分配一個次設備號,用以區(qū)分其他的設備。不同類型的設備調用的設備注冊和注銷函數(shù)有所不同。misc類設備的注銷函數(shù)為misc_deregister(struct miscdevice}misc)。成功均返回零,否則返回一個錯誤代碼。
3.3 應用
測試的應用程序相對簡單,利用open函數(shù)打開設備文件,通過ioctl函數(shù)設置AD7859L的各個采樣參數(shù),包括選擇哪幾路通道進行采樣,采樣的時間間隔,采樣的方式等等。利用read函數(shù)讀取緩沖區(qū)數(shù)據(jù),在程序退出時調用close函數(shù)關閉設備文件。
4 結語
AD7859L是一款高速、低功耗的模數(shù)轉換器,在測量行業(yè)有著很廣闊的應用前景。隨著大家對Linux的認可,嵌入式Linux會被越來越多的人所接受。通過介紹在Linux下以MISC類設備方式開發(fā)AD7859L的設備驅動程序,讓大家更清楚的理解MISC類型設備的操作方法。
評論