新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM開(kāi)發(fā)板+uCLinux的網(wǎng)絡(luò)控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

基于ARM開(kāi)發(fā)板+uCLinux的網(wǎng)絡(luò)控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

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

  make dep

  make clean

  make lib_only

  make user_only

  make romfs

  make image

  make

  編譯結(jié)束后會(huì)在安裝目錄下生成romfs.img文件,利用它可以制作RAM Disk,然后在linux-2.4.X目錄下生成elf格式的Linux內(nèi)核文件,并以下列方式將其轉(zhuǎn)換成bin格式:

  #arm-elf-objcopy-O binary linux linux.bin

  從而生成下載用的內(nèi)核鏡像文件linux.bin。

  (3)制作Ram Disk掛栽根文件系統(tǒng)

  首先創(chuàng)建一個(gè)512 kB的虛擬磁盤(pán),并將虛擬磁盤(pán)文件格式轉(zhuǎn)化成ext2格式:

  dd if/dev/zero of=initrd.img bs=1024 count=512

  mkfs.ext2-c init.img

  然后將init.img和romfs.img加載到主機(jī)文件系統(tǒng)上,并在RAM中建立需要的目錄:/bin,/dev,/etc,/var,進(jìn)而拷貝ROM中的文件到ram目錄中。

  下來(lái)在RAM盤(pán)dev目錄下創(chuàng)建設(shè)備節(jié)點(diǎn):

  #mknod ram/dev/ttyS0 c 4 64

  #mknod ram/dev/console c 5 1

  最后卸載init.img和romfs.img,并應(yīng)確保init.img修改已保存,至此,RAM DISK便創(chuàng)建完成。

  (4)下載內(nèi)核和文件系統(tǒng)

  正確設(shè)置主板啟動(dòng)選擇跳線。主板加電后,在超級(jí)終端上便可以看到BootLoader引導(dǎo)信息,可選擇默認(rèn)的FTP連接,并使用BootLoader默認(rèn)的IP進(jìn)行下載,然后啟動(dòng)gftp,輸入主板默認(rèn)的IP和端口號(hào)。這樣,linux主機(jī)就可以和主機(jī)連接,最后選擇需要下載的Linux內(nèi)核文件和RAM盤(pán)及相關(guān)的配置文件即可。

  2 監(jiān)控系統(tǒng)功能的實(shí)現(xiàn)

  監(jiān)控系統(tǒng)主要由3個(gè)部分組成:數(shù)據(jù)采集部分,設(shè)備控制部分,數(shù)據(jù)傳輸部分。數(shù)據(jù)采集部分可對(duì)傳感器信號(hào)進(jìn)行A/D轉(zhuǎn)換,并對(duì)采集到的數(shù)據(jù)進(jìn)行簡(jiǎn)單的處理,同時(shí)提供調(diào)整運(yùn)行參數(shù)的接口。數(shù)據(jù)傳輸部分可將采集的數(shù)據(jù)傳送到遠(yuǎn)端的主機(jī),并接收遠(yuǎn)端主機(jī)的控制信息。遠(yuǎn)端主機(jī)則對(duì)傳輸過(guò)來(lái)的遠(yuǎn)程數(shù)據(jù)進(jìn)行處理、存儲(chǔ)和顯示,并可以修改數(shù)據(jù)采集部分的參數(shù)以控制數(shù)據(jù)采集,同時(shí)依據(jù)采集到的數(shù)據(jù)對(duì)設(shè)備發(fā)出操作指令,或?qū)h(yuǎn)端的設(shè)備進(jìn)行控制,從而實(shí)現(xiàn)遠(yuǎn)程監(jiān)控功能。

  2.1 數(shù)據(jù)采集

  使用A/D轉(zhuǎn)換設(shè)備前,首先要?jiǎng)?chuàng)建設(shè)備節(jié)點(diǎn),并加載ADC驅(qū)動(dòng),然后通過(guò)open()和close()將其打開(kāi)和關(guān)閉.主要的數(shù)據(jù)采集程序如下:

  ……

  ioctl(fd,ADC_SET_CLKDIV,(Fpclk+fadc1)/fadc-1);//設(shè)置A/D轉(zhuǎn)換速度;

  ioctl(fd,ADC_SET_BITS,10);//設(shè)置A/D轉(zhuǎn)換精度;

  while(1) {

  ad_data=0;

  read(fd,ad_data,sizeof(ad_data));//讀取A/D轉(zhuǎn)換的值;

  ……

  2.2 GPIO設(shè)備控制

  同A/D轉(zhuǎn)換設(shè)備類(lèi)似,使用GPIO也需先創(chuàng)建設(shè)備節(jié)點(diǎn)并加載驅(qū)動(dòng)。對(duì)GPIO操作前,應(yīng)通過(guò)open()打開(kāi),使用后應(yīng)通過(guò)close()關(guān)閉。



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉