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
主站蜘蛛池模板: 91年精品国产福利线观看久久| 一本色道久久88| 日韩高清一区 | 国内精品一区二区在线观看| 久久精品这里只有精99品| 亚洲成av人无码综合在线观看| 人妻无码中文字幕一区二区三区| 欧美自慰一级看片免费| 亚洲成AV人手机在线观看网站| 亚洲最大综合网| 青青草原国产精品啪啪视频| 亚洲天堂免费| 在线精品亚洲国产| 亚洲人成人伊人成综合网无码| 久草视频福利在线观看| 国产精品一区二区不卡的视频| 国产办公室秘书无码精品| 久久国产精品影院| 播五月综合| 日韩在线播放中文字幕| 日韩国产精品无码一区二区三区 | 免费人成网站在线观看欧美| 免费高清a毛片| 国产精品专区第1页| 日本免费a视频| 亚洲欧洲日产国产无码AV| 欧美三级不卡在线观看视频| 国产成人高清精品免费5388| 国产毛片久久国产| 欧美日韩国产精品va| 8090午夜无码专区| 亚洲欧美日韩另类在线一| 国产亚洲视频中文字幕视频 | 日韩在线2020专区| 免费无遮挡AV| 久久免费视频6| 美女免费精品高清毛片在线视| 欧美日韩福利| 欧美丝袜高跟鞋一区二区| 国产福利免费在线观看| 手机成人午夜在线视频| 亚洲成人动漫在线观看 | 在线观看网站国产| 日韩精品无码免费专网站| 国产成人精品优优av| 91区国产福利在线观看午夜| 好紧好深好大乳无码中文字幕| 国产成人禁片在线观看| 亚洲国产精品无码久久一线| 欧美中文字幕一区| 免费a级毛片18以上观看精品| 免费高清毛片| 亚洲人妖在线| 久热re国产手机在线观看| 最新亚洲人成无码网站欣赏网| 国产95在线 | 高潮毛片免费观看| 国产精品亚洲αv天堂无码| 欧美h在线观看| 色婷婷电影网| 中字无码精油按摩中出视频| 免费毛片a| 亚洲中文久久精品无玛| 国产一区亚洲一区| 免费xxxxx在线观看网站| 精品国产成人a在线观看| 欧美午夜视频在线| 亚洲二区视频| 狂欢视频在线观看不卡| 国产呦精品一区二区三区下载| 91色国产在线| 日本不卡在线视频| 亚洲成人在线网| 国产成人综合日韩精品无码不卡| 亚洲婷婷六月| 综合色区亚洲熟妇在线| www.日韩三级| 成人一区在线| 国产永久免费视频m3u8| 国产91全国探花系列在线播放| 国产永久免费视频m3u8| 久夜色精品国产噜噜|