新聞中心

        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)閉
        主站蜘蛛池模板: SHOW| 比如县| 铜山县| 保山市| 那坡县| 克什克腾旗| 抚宁县| 方正县| 庆城县| 扎兰屯市| 遵义县| 哈密市| 新巴尔虎左旗| 肥西县| 无棣县| 太湖县| 宜兰市| 久治县| 丹棱县| 铅山县| 桃园市| 黑水县| 周宁县| 读书| 东兰县| 固阳县| 特克斯县| 云梦县| 正定县| 上高县| 同仁县| 丰县| 资阳市| 谢通门县| 天门市| 个旧市| 广河县| 温宿县| 若羌县| 岳普湖县| 怀安县|