<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于嵌入式Linux和Arm的遠程監(jiān)控模塊的設計

          基于嵌入式Linux和Arm的遠程監(jiān)控模塊的設計

          作者: 時間:2011-06-22 來源:網(wǎng)絡 收藏
          I0S2上拉,其它懸空,當RTL8019AS的引腳懸空時,引腳的輸入狀態(tài)為低電平,里面有一個100 kΩ的下拉電阻,因此IOSO,IOSI,I0S3均為低電平,芯片的I/0基址是200H。片選AEN接處理器的nGCS5也就是Bank5,因此RTL8019在系統(tǒng)中分配的地址范圍為:0xoa000000—0xoc000000。由于數(shù)據(jù)總線寬度為16位,處理器的A1連接8019的SA0,因此對于處理器來說RTL8019AS的I/0基址是0XOA000400H。20F001是網(wǎng)卡濾波器,內(nèi)部包含一對低通濾波器和一對隔離變壓器.直接與RJ45的水晶插座連接。


          2 系統(tǒng)軟件平臺的構建
          uclinux經(jīng)過對標準Linux內(nèi)核的改動,形成了一個高度優(yōu)化的、代碼緊湊的,雖然它的體積很小,但uclinux仍然保留了Linux的大多數(shù)的優(yōu)點:穩(wěn)定、良好的移植性、優(yōu)秀的網(wǎng)絡功能、對各種文件系統(tǒng)完備的支持,以及標準豐富的API,適合遠程配置模塊的建立。因此,遠程配置模塊以uclinux為基礎,建立系統(tǒng)的軟件平臺。
          系統(tǒng)采用GNU的套件arm-elf工具鏈:arm—elf-tools-20030314.sh建立對uclinux進行編譯的交叉環(huán)境。將arm-elf-tools-20030314.sh拷貝到根目錄,運行安裝:
          sh arm-elf-tools-20030314.sh即可對uclinux進行編譯和移植了
          交叉編譯成功后,在uClinux-dist/目錄下產(chǎn)生images目錄,其中包含的3個二進制文件文件image.ram,image.rom和romfs.img。


          3 系統(tǒng)軟件設計
          系統(tǒng)的軟件是實現(xiàn)遠程配置模塊的核心,首先編寫bootloader的過程,以優(yōu)化系統(tǒng)在開發(fā)板上的執(zhí)行,然后實現(xiàn)了應用程序以及設備驅(qū)動程序的開發(fā)。應用程序的開發(fā)主要是基于Socket應用程序的編寫。在socket的實現(xiàn)過程中.本系統(tǒng)采用了xml文件配置設備驅(qū)動參數(shù)。
          3.1 Bootloader的設計
          Bootloader的設計主要是為了在系統(tǒng)上電復位之后,將系統(tǒng)程序執(zhí)行跳轉(zhuǎn)到系統(tǒng)內(nèi)核的執(zhí)行地點。針對這個主要的功能,必須對微處理器的內(nèi)核以及其他部分進行初始化以及其它的功能擴展,Bootloader它主要完成了以下幾個過程:
          (1)建立中斷向量表
          (2)初始化各種處理器模式
          (3)引入特殊變量
          (4)初始化memory
          (5)代碼復制
          完成了系統(tǒng)的硬件初始化過程后,將CPU使用權交給
          了操作系統(tǒng),從而完成了.Bootloader的最終目的。
          3.2設備驅(qū)動程序開發(fā)
          Linux對設備的操作Linux系統(tǒng)訪問設備就像訪問文件
          —樣。例如打開設備使用系統(tǒng)調(diào)用open()


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();