999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

高可靠的計算機模塊引導軟件①

2018-02-07 02:41:22周鵬舉施華君楊三嶺
計算機系統應用 2018年1期
關鍵詞:指令程序計算機

周鵬舉,倪 明,施華君,楊三嶺

(中國電子科技集團公司第三十二研究所,上海 201800)

自第一顆人造衛星進入太空以來,航天技術取得了迅猛的發展,現已廣泛應用于國民生活的方方面面.我國經過40多年的艱苦努力,在航天方面取得了一系列重大成就.隨著計算機模塊運算能力的提升和任務的增多,計算機模塊應用程序呈現出多樣化和復雜化的發展趨勢.快速迭代的軟件需求,要求設計一種計算機模塊引導軟件(以下簡稱引導軟件),使其能夠對應用程序進行重構和引導等,并且為適應復雜的空間環境,需要采用一定措施保證其高可靠性.

本文針對上述問題,設計與實現了一種基于SPARC架構的高可靠引導軟件.該引導軟件的主要功能如下:

1)自檢功能,確保引導軟件本身正確.

2)硬件檢測功能,確保硬件狀態正確.

3)三冗余架構、反彈墻、EDAC保護等多種高可靠性措施,確保軟件的正確運行.

4)重構功能,便于不同應用程序的在線固化,縮短研發周期.

5)多種引導方式,便于對應用程序的調試.

1 硬件環境概述

1.1 計算機模塊與調試環境

本實驗所用的計算機模塊原理框圖如圖1所示,CPU使用基于SPARC架構的AT697F,主要包含RAM、PROM、EEPROM三種存儲芯片,RAM是計算機模塊的內存區域,引導軟件燒寫于PROM1(實驗過程中由EEPROM代替)中,自動引導的應用程序(以下簡稱應用程序)燒寫于PROM2(實驗過程中由EEPROM代替)中,可重構的應用程序(以下簡稱重構程序)固化于EEPROM中.

圖1 計算機模塊原理框圖

計算機模塊通過RS232與外界通信.計算機模塊與計算機的通信示意圖如圖2所示,計算機使用調試環境VDS通過仿真器LEON將引導軟件下載到計算機模塊中,計算機中的地面服務程序(界面見圖10)通過RS232串口與計算機模塊進行通信.

圖2 計算機與計算機模塊通信圖

1.2 CPU簡介

該實驗采用的CPU是Atmel公司的AT697F.AT697F基于SPARC V8架構設計,采用RISC精簡指令集,具有8個寄存器堆窗口、5級流水線,使用容錯設計技術,具有軟件可控的省電工作模式,是一種高性能低功耗的32位嵌入式處理器.

AT697F主頻最高可達100MHz,定點運算性能86MIPS,浮點運算性能23MFLOPS.正常工作溫度范圍廣,抗輻射能力強.該CPU的各項指標能夠滿足衛星在軌運行期間的各項性能要求.

1.3 計算機模塊存儲空間

AT697F具有32根地址總線,可尋址4 GB的地址空間.該計算機模塊采用統一編址方式,地址空間分配如表1所示.

表1 計算機模塊地址空間

2 引導軟件設計方案

2.1 引導軟件的模塊劃分

本引導軟件的設計方案如圖3所示,主要分為6個模塊.

圖3 引導軟件設計方案

系統初始化模塊用于系統初始化和引導程序的搬移和跳轉.系統初始化主要包括CPU、外圍器件,陷阱/中斷、堆棧等的初始化.引導程序的搬移和跳轉用于引導程序自身的轉移.

系統初始化完成后,引導軟件等待4 s,若4 s內未收到地面接管指令則進入飛行模式模塊,否則進入測試模式模塊.飛行模式模塊是系統的自動管理模塊,它根據引導標志自動完成應用程序或重構程序的引導;測試模式模塊根據地面指令執行相應操作,如重構程序上注、固化等,并最終引導一個應用程序的啟動.

數據回送模塊用于引導程序運行過程中狀態的回送,如重構程序校驗和的回送等.

錯誤檢測與恢復主要包括RAM正確性檢測、程序比特位正確性檢測、系統運行正確性檢測和重構程序三冗余架構設計等,若檢測到錯誤,則嘗試進行恢復.

本文主要對系統初始化、飛行模式、測試模式和錯誤檢測與恢復4個模塊進行論述.

2.2 引導軟件的目錄結構

該引導軟件主要由trap.s、setup.s、xxmain.c等3個文件組成,trap.s主要用于設置陷阱表和中斷臨界區,setup.s主要包含初始化和錯誤檢測與恢復兩個模塊,xxmain.c完成引導軟件的引導測試功能,即完成飛行模式、測試模式和程序啟動三個模塊.

3 引導軟件的實現

3.1 系統初始化

系統初始化主要包括硬件初始化和引導程序的搬移和跳轉.

3.1.1 硬件初始化

AT697F共有8個全局通用寄存器和8個寄存器窗口,每個寄存器窗口對應一組通用寄存器.初始化時對上述通用寄存器全部清0,對控制寄存器進行配置,主要配置當前寄存器窗口、無效窗口、cache、內存等.

中斷是現代處理器的重要組成部分,本引導軟件在系統初始化時完成對中斷的配置.中斷服務函數在xxmain.c中完成,臨界區的進入/退出和中斷向量表在trap.s中,中斷配置在setup.s中完成.

AT697F的中斷控制在多個寄存器中完成.主要是設置中斷屏蔽級別PSR.pil為0,設置異常基址標志寄存器TBR為中斷向量表的入口地址,其它與中斷相關的寄存器如中斷級別/屏蔽寄存器等都設為0.當程序跳轉至主函數前置PSR.ET為1,打開中斷.

因AT697F共有8個寄存器窗口,故需為每個窗口設置一個堆棧,該引導軟件的堆棧棧底位于SRAM的 0x400f0000 處,代碼為:

PROVIDE (__stack = 0x400f0000);

每個窗口對應一段棧空間,棧指針%sp向下增長.

3.1.2 引導程序的搬移和跳轉

引導程序固化于PROM中,運行時將自身搬移到RAM中,自檢正確后跳轉至引導軟件的main主函數.

3.2 錯誤檢測與恢復

因太空復雜的環境對程序的正確運行構成極大威脅,本引導軟件為保證程序的正確運行采取如下高可靠性措施,在文件setup.s中主要完成RAM正確性檢測,EDAC保護,反彈墻保護,看門狗保護等;在文件xxmain.c中主要完成三冗余架構設計.其中RAM正確性檢測屬于硬件正確性檢測,EDAC保護屬于比特位正確性檢測與恢復,反彈墻保護、看門狗保護屬于系統運行正確性檢測,三冗余架構屬于錯誤檢測與錯誤恢復,將在3.4.2節論述.

1)RAM錯誤檢測

RAM的起始地址是0x40000000,錯誤檢測的方法是在RAM的地址空間中,依次向每個字中寫入0x0并讀出,檢測讀出的數據是否出現錯誤,若出現錯誤則將錯誤計數加1.當上述檢測完成后,分別將0x0替換為0x55555555、0xaaaaaaaa和0xffffffff重復上述檢測.最后將錯誤計數值存入地址0x40000000處.當引導軟件進入main函數后將錯誤計數值返回給地面服務程序.檢測SRAM的代碼如圖4所示,進入_checkram 前%g1~%g4為0,%g2進行錯誤計數,%5為RAM的大小,%g6為RAM的起始地址.

2)引導軟件自檢

引導軟件無錯誤是其正確執行其它功能的前提,當RAM自檢正確后,引導軟件將被轉移到起始地址為SADDR的RAM中,計算其校驗和,若校驗和正確則認為引導軟件沒有錯誤.

3)反彈墻保護

反彈墻的目的在于保證程序非法運行時,能夠跳轉到指定的異常處理函數.本軟件添加反彈墻的方法是在未使用的區域填入“nop”和跳轉到0地址的指令,這些區域包括ROM、EEPROM、RAM中未使用的所有區域.若程序運行中跳入非法地址,則軟件復位.

4)EDAC保護

EDAC(error detection and correction)采用海明碼,能夠糾正一位錯,檢測兩位及多位錯誤,對于受保護的RAM區域,任何一條指令的讀取或數據的讀寫都將經過EDAC檢測,對于一位可糾正錯,錯誤將在CPU內部糾正,對于兩位不可糾正錯,將產生instruction_access_exception或data_access_exception陷阱.

本引導軟件主要對RAM進行EDAC保護.軟件初始化時,開啟全RAM區域EDAC保護,軟件運行過程中,為了防止比特位的錯誤累積,定期對RAM中的所有數據進行讀寫,若出現多位錯誤則進入中斷服務函數,中斷服務函數將錯誤發回給地面,引導軟件自動復位.

5)看門狗

看門狗是防止程序跑飛的有效手段,在該引導軟件中,引導軟件必須定期喂狗,否則引導軟件將復位.

圖4 SRAM檢測

3.3 飛行模式

系統自動進入飛行模式后,對引導標志進行檢測,若導標志不是引導EEPROM中的重構程序,則引導程序將PROM中的應用程序復制到起始地址為SADDR的RAM中,然后啟動應用程序的運行;若引導標識是引導EEPROM中的重構程序,則引導程序則按照3.4.2節中重構程序引導的方式啟動重構程序的運行.飛行模式的流程圖如圖5所示.

圖5 飛行模式流程圖

3.4 測試模式

3.4.1 地面指令

地面指令通過地面服務程序以幀的形式下發到計算機模塊,該計算機模塊中的幀分為指令幀、數據幀和應答幀.指令幀用于計算機模塊的控制與測試,數據幀用于重構程序的上注,應答幀用于計算機模塊狀態的回送.數據的發送往往伴隨著封裝成幀和幀的重組.在計算機模塊上對幀的處理主要是幀重組和幀解析.

1)幀重組

幀重組在串口UART的中斷服務函數中進行.當收到一個字節的數據時產生UART中斷,經中斷切換進入中斷服務函數.因數據的發送具有連續性,進入串口中斷服務函數后連續判斷UART狀態寄存器的dr位是否為1,若此位為1,則表示在UART的接收保持寄存器中已經有可讀的新數據,串口服務程序讀取UART數據寄存器中的一字節數據,并根據幀協議將接收到的數據組裝成幀.

2)幀解析

幀的解析在函數cmdAnalysis中進行.該函數對于一個幀的解析流程如圖6所示.若收到的幀是數據幀,則使用io_copy函數將數據(不包含幀頭、幀尾,幀長度等與幀有關的數據)轉移到首地址為FRM_BUF_ADDR的RAM中,數據復制完成后,計算校驗和,并將其回送至地面服務程序;若收到的幀是指令幀,則根據指令碼選擇相應的操作,如地面接管、軟件上注、重構程序固化、RAM引導等.

圖6 幀解析流程

3.4.2 重構程序的三冗余架構與引導

該引導軟件的一個重要功能是重構程序的在線固化功能.本引導軟件將重構程序分三份固化于EEPROM中,并分別計算校驗和,將校驗和發送回地面服務程序.

根據3.4.1節對數據幀的論述,當重構程序存放于RAM中,且地面收到正確的校驗和后,地面服務程序可以發送重構程序固化指令,開始重構程序的固化.重構程序的固化使用FPGA托管方式進行.重構程序共固化三份,首地址分別是RADDR1、RADDR2、RADDR3,固化完成后分別計算校驗和,并將校驗和返回給地面服務程序,若應答幀返回的三個校驗和與重構程序的校驗和相同,則重構程序固化成功,此時地面服務程序可以向計算機模塊發送重構程序引導指令.

計算機模塊收到重構程序引導指令后,分別將這三份程序按字節取出,進行三取二操作,將所得的結果移動到RAM中起始地址SADDR處.當程序搬運完畢,計算RAM中該程序的校驗和,若校驗和正確,則啟動重構程序的運行,否則啟動原應用程序.重構程序啟動的核心代碼如圖7所示.

4 實驗結果

本實驗中計算機模塊固定在板卡基座上,實物如圖8所示,圖8左邊是計算機模塊的正視圖,右邊是計算機模塊的俯視圖.在試驗中使用EEPROM代替PROM,地面服務程序的界面如圖10所示.

4.1 引導軟件的自動引導

在tornado中建立VxWorks應用程序,并添加printf打印函數,設置引導標識,重啟計算機模塊,則可以在串口調試助手中看到如圖9的結果.

圖7 重構程序引導

圖8 計算機模塊實物圖

圖9 引導程序自動啟動應用程序

圖9上圖為自動引導PROM中的應用程序,下圖為自動引導EEPROM中的重構程序.從圖中可以看出VxWorks已經成功運行,并成功打印出相應信息,證明應用程序已經成功運行.

4.2 重構程序的固化與引導

計算機模塊重啟后發送地面接管指令,接管成功后,引導軟件進入測試模式,圖10顯示了地面服務程序發送的一系列地面指令.從中可以看到程序啟動后自檢正確,SRAM無錯誤.當發送地面接管指令后成功接管引導軟件,引導程序成功進入測試模式,這時選取重構程序,發送軟件上注指令,執行重構程序固化和引導,從圖中可以看出重構程序在計算機、RAM和EEPROM中的校驗和完全一樣,都為0x37b0,表明引導程序已經成功將重構程序固化完成.

圖10 引導程序進入測試模式

當地面發送重構程序引導指令后,引導程序引導重構程序的執行.所得的結果如圖11所示.

圖11 重構程序引導

4.3 錯誤檢測與恢復

4.3.1 反彈墻測試

在引導軟件的main函數中添加:

asm(“b 0x40001000”)

運行引導軟件,得到的結果如圖12所示.

從圖12中可以看出程序在不停的重啟,說明反彈墻能夠正確的運行.

4.3.2 三冗余造錯

通過VDS將RADDR1,RADDR2+0xf,RADDR3+0xff處的值改為0xFF,設置引導標識為重構程序引導,啟動引導軟件,可以得到如圖11所示的結果,證明三冗余架構具有一定的容錯能力,能夠保證應用軟件的正常運行.

圖12 反彈墻測試

4.3.3 SADDR處校驗和錯誤

在重構程序放置在SADDR后、校驗和檢測前,使用VDS更改SADDR處的值,運行軟件,此時會檢測到校驗和錯誤,轉而引導位于PROM中的應用程序,串口調試助手此時返回的結果如圖9上圖所示.

5 結束語

本文介紹了基于SPARC架構的的計算機模塊引導軟件,詳細論述了該引導軟件的架構設計和主要功能,并論述了為保證其高可靠性采取的技術,最后將該引導軟件在計算機模塊上測試,實驗證明,該引導軟件的各項功能正確,能夠將其應用到實際的項目中.該軟件也有不完善之處,需要改進,比如為保證高可靠性,數據的傳送速度較慢,可以通過測試,在保證高可靠的前提下提高數據傳輸速度.

1 徐福祥,林寶華.衛星工程概論.2版.北京:中國宇航出版社,2004.

2 AT697F_doc7703.pdf. http://www.atmel.com/Images/doc 7703.pdf.

3 陳國林.星上帶容錯功能的計算機引導系統的研究和實現[碩士學位論文].北京:中國科學院研究生院(計算技術研究所),2005.

4 孫樂益.嵌入式系統的冗余設計研究.數字技術與應用,2011,(10):123–124.

5 賴鑫.高可靠8051設計與實現及可靠性評估[碩士學位論文].長沙:國防科學技術大學,2008.

6 柳振華.三模冗余容錯計算機的設計與實現[碩士學位論文].西安:西安電子科技大學,2010.

7 時晨,于倫政.基于SPARC結構的RISC系統設計技術.微電子學與計算機,2002,19(11):52–54.[doi:10.3969/j.issn.1000-7180.2002.11.017]

8 周雪贊,張宏.基于Vxworks操作系統的BSP開發.工業控制計算機,2004,17(2):33–34.

9 徐惠民.基于VxWorks的嵌入式系統及實驗.北京:北京郵電大學出版社,2006.

猜你喜歡
指令程序計算機
聽我指令:大催眠術
計算機操作系統
基于計算機自然語言處理的機器翻譯技術應用與簡介
科技傳播(2019年22期)2020-01-14 03:06:34
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
信息系統審計中計算機審計的應用
消費導刊(2017年20期)2018-01-03 06:26:40
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
主站蜘蛛池模板: 亚洲bt欧美bt精品| av在线无码浏览| 色老头综合网| 欧美在线国产| 男人天堂亚洲天堂| 国产午夜福利在线小视频| 成年女人a毛片免费视频| 国产成人精品一区二区三区| 亚洲一区二区日韩欧美gif| 亚洲色图欧美激情| 国产网站免费| 99视频只有精品| 国产成人综合久久精品下载| 老司机aⅴ在线精品导航| 在线观看亚洲精品福利片| 黄色网页在线播放| 啪啪国产视频| 国产最爽的乱婬视频国语对白| 日韩欧美中文在线| 亚洲无码A视频在线| 无码福利视频| 一级不卡毛片| 麻豆国产精品一二三在线观看| 乱色熟女综合一区二区| 精品日韩亚洲欧美高清a| 91探花在线观看国产最新| 午夜三级在线| 国产精品亚洲日韩AⅤ在线观看| 欧洲成人免费视频| 欲色天天综合网| 亚洲国产看片基地久久1024| 亚洲码在线中文在线观看| 日韩专区第一页| 伊人久久大香线蕉成人综合网| 婷婷五月在线视频| 亚洲日韩在线满18点击进入| 国产chinese男男gay视频网| 亚洲国产av无码综合原创国产| 国产一区二区精品福利| 97青青青国产在线播放| 免费看美女自慰的网站| 国产大片喷水在线在线视频| 黄色网页在线播放| 亚洲精品你懂的| 日韩精品久久无码中文字幕色欲| 色综合综合网| 91色在线视频| 欧美成人看片一区二区三区| 一级毛片高清| 久久永久免费人妻精品| 免费jizz在线播放| 午夜视频免费试看| 福利片91| 亚洲天堂色色人体| 青青青草国产| 制服丝袜亚洲| 国产免费黄| 亚洲香蕉久久| 精品国产免费第一区二区三区日韩| 婷婷综合色| 美女无遮挡拍拍拍免费视频| 欧美日韩国产精品综合| 日韩毛片免费观看| 亚洲三级网站| 亚洲人成网站日本片| 国产91全国探花系列在线播放| 色妞永久免费视频| 亚洲欧洲日韩综合色天使| 久视频免费精品6| 久久人人爽人人爽人人片aV东京热 | 亚洲首页在线观看| 国产日韩欧美一区二区三区在线 | 久久99蜜桃精品久久久久小说| 国产成人精品一区二区免费看京| 精品视频在线观看你懂的一区| 欧美日韩在线国产| 国产丝袜第一页| 性色一区| 精品视频在线观看你懂的一区| 久久久久免费精品国产| 中文字幕伦视频| 综合成人国产|