亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于μC/OS-II系統(tǒng)的高可靠性啟動引導程序設計

        2017-11-01 06:35:45卡斯柯信號有限公司宋志堅耿進龍宋興儒
        電子世界 2017年19期
        關鍵詞:拷貝板卡校驗

        卡斯柯信號有限公司 宋志堅 耿進龍 宋興儒 劉 暢 潘 雷

        基于μC/OS-II系統(tǒng)的高可靠性啟動引導程序設計

        卡斯柯信號有限公司 宋志堅 耿進龍 宋興儒 劉 暢 潘 雷

        基于μC/OS-II系統(tǒng)的高可靠性啟動引導程序,除完成板卡初始化、引導和啟動μC/OS-II系統(tǒng)外,特別加入了NorFlash CRC校驗、內存和SRAM測試、故障記錄等功能,極大地增加了板卡啟動引導過程的可靠性。該方法已在實際產品中驗證可行,并在鐵路信號系統(tǒng)中得到了廣泛應用。

        μC/OS-II;ColdFire;啟動引導;高可靠性

        The high reliability boot program based on μC/OS-II system complete the board initialization, boot and start μC/OS-II system, in particular,joined the NorFlash CRC check, SDRAM and SRAM test, fault records and other functions. Greatly increasing the reliability of the board boot process.The method has been proved feasible in practical products and has been widely used in railway signal system.

        Keyworkds:μC/OS-II; ColdFire; boot; high reliability.

        引言

        在嵌入式領域,因良好的實時性、可剪裁、可搶占、多任務、方便移植等特性,μC/OS-II系統(tǒng)得到了廣泛的使用。本文中介紹的啟動引導程序,是在ColdFire架構微處理器MCF54415基礎上實現的一種高可靠性專用bootloader,除一般移植μC/OS-II系統(tǒng)時要考慮的功能外,還增加了NorFlash CRC校驗、內存和SRAM測試、故障記錄等功能,增強了板卡啟動引導過程的可靠性。

        1.系統(tǒng)結構和啟動引導過程介紹

        1.1 系統(tǒng)結構

        本文中實現的啟動引導程序,其載體是一塊基于MCF54415的板卡,它包括DDR2 SDRAM、NorFlash、Uart、CAN、SPI等多個模塊,如圖1所示。

        圖1 系統(tǒng)結構框圖

        在該板卡中,MPU選用MCF54415,主頻250MHz,DDR2 SDRAM的容量128M字節(jié),NorFlash容量16M字節(jié),用于存放μC/OS-II系統(tǒng)鏡像等,UART用于對外串口通信和板卡調試,LED用于程序運行狀態(tài)顯示,SPI接口的串行FLASH用于保存系統(tǒng)的配置信息。

        1.2 啟動引導過程

        板卡上電以后,啟動引導過程開始,經過板卡預配置、板卡檢查、板卡配置、拷貝、BSS段清零、使能CACHE和MMU幾個階段,最終完成μC/OS-II系統(tǒng)的加載,如圖2所示。

        圖2 啟動引動過程

        啟動引導過程中,各個階段的主要工作如下:

        1)板卡預配置

        此階段全部由匯編語言編寫,主要功能包括:禁止CPU中斷,禁止CACHE和MMU,配置CPU片上SRAM基地址并使能,設置堆棧指針用供C語言函數使用。

        2)板卡檢查

        自此階段開始,后面都用C語言實現。檢查的內容包括CPU類型和板卡啟動類型。

        CPU類型:獲取MCF54415的器件號,與預期值比較。若不等,進入死循環(huán),禁止啟動。

        板卡啟動類型:讀取CPU的復位狀態(tài)寄存器(RSR),獲得板卡的啟動類型,供后續(xù)啟動過程,進行差異化處理。

        3)板卡配置

        此階段主要功能包括:關閉硬件看門狗,配置CPU主頻,外設供電,外設管腳配置,局部總線片選配置,初始化內存等。

        關閉硬件看門狗:硬件看門狗默認上電開啟,啟動引導過程須先關閉它;

        配置CPU主頻:根據CPU的啟動配置字,選擇是否使用PLL以及fvco和fsys的頻率,設置系統(tǒng)主頻為250MHz;

        外設供電:使用外設電源管理寄存器(PPM)打開UART,CAN,SPI等設備的供電開關。

        外設管腳配置:使用CPU的管腳復用與控制相關寄存器,對外設模塊的可復用管腳進行配置,如分別配置UART0的TX/RX/RTS/CTS管腳等。

        局部總線片選配置:根據CPU的片選地址寄存器(CSAR)、片選掩碼寄存器(CSMR)和片選控制寄存器(CSCR),對Nor-Flash的基地址、容量、位寬、是否有效等信息進行配置。

        初始化內存:MCF54415的內存配置過程比較復雜,配置過程中,需要特別注意的是內存基地址、容量、行列數、bank數等關鍵信息。

        4)存儲器校驗

        此階段主要是完成對保存在NorFlash中的各類代碼段和數據段進行CRC校驗,確保下一步拷貝時使用的信息源頭的正確性。

        5)拷貝

        此階段主要分四個步驟:一是將LCF文件(Linker command files,鏈接命令文件)中定義的SDRAM代碼段拷貝內存中,二是對除SDRAM代碼段外的內存和除堆棧區(qū)外的SRAM,進行測試,三是將SDRAM數據段、SRAM數據段、SRAM代碼段及中斷向量表拷貝到對應區(qū)域,四是將SDRAM BSS段和SRAM BSS段強制清零。

        6)使能CACHE和MMU

        此階段主要是使能數據和指令CACHE,并根據實際需求,使能MMU,配置不同存儲空間的訪問屬性,如可讀、可寫、可執(zhí)行、是否有效等。

        7)μC/OS-II系統(tǒng)加載

        上述工作完成后,則進入μC/OS-II系統(tǒng)的加載過程,如圖3所示。

        圖3 μC/OS-II系統(tǒng)加載過程

        μC/OS-II系統(tǒng)的加載和工作原理,不是本文重點,略過不表。

        2.啟動引導過程中的關鍵設計與實現

        2.1 μC/OS-II系統(tǒng)移植

        μC/OS-II系統(tǒng)的移植具體過程,在參考資料[1]中的章節(jié)2.9中有詳細描述,本文不再贅述。針對本文中使用的板卡,在移植過程中需要特別注意的是:

        1)編譯模式的選擇

        開發(fā)IDE環(huán)境(Code Warrior)支持標準傳參模式和寄存器傳參模式,前者是默認模式。在調用位置無關代碼的時候(最開始的純匯編階段),需要設置它的傳參類型為寄存器傳參。

        2)任務切換上下文

        μC/OS-II系統(tǒng)切換上下文時,采用軟中斷TRAP#14。這與IDE創(chuàng)建Console RAM工程時默認使用的虛擬串口控制臺軟中斷號相同。為了防止沖突,將它修改為TRAP#15。

        3)μC/OS-II系統(tǒng)時鐘的配置

        為了保證μC/OS-II系統(tǒng)時鐘的精度是1ms,必須根據CPU主頻,對系統(tǒng)時鐘使用定時器重新配置。

        4)中斷向量表重定向

        中斷向量表拷貝完成后,必須重新設置VBR,保證μC/OS-II系統(tǒng)啟動后,使用到正確的中斷向量表。

        2.2 編譯鏈接

        使用IDE生成鏡像過程中,編譯器根據LCF文件定義的不同段來鏈接各目標文件(*.o)。根據不同的存儲器件特性,設計了不同的段,如圖4所示。

        圖4 鏈接分段示意圖

        在系統(tǒng)中,NorFlash中分三個段,分別是:

        vector_rom:對半為兩部分,共2KB,前半段用于保存啟動引導階段的中斷向量表(第一張表),后半段用于保存μC/OS-II系統(tǒng)運行階段的中斷向量表(第二張表);

        ext_flash:保存位置無關代碼段、CRC校驗碼、代碼段和數據段等;

        ext_flash_debug:保存μC/OS-II系統(tǒng)運行時的故障信息,在啟動引導過程中,保留不用;

        在DDR2 SDRAM中分為兩個段,分別是:ext_code_sdram:保存從NorFlash拷貝過來的SDRAM代碼段;ext_data_sdram:保存從NorFlash拷貝過來的SDRAM數據段和SDRAM BSS段等;

        在SRAM中,分為三個段,分別是:

        vector_sram:保存從vector_rom后半段拷貝過來的第二張中斷向量表;

        user_sram:保存從NorFlash中拷貝過來的SRAM代碼段、SRAM數據段和SRAM BSS段,同時也可以保存故障日志;

        stack_sram:在啟動引導階段使用的堆??臻g,倒序使用。

        根據上述分段配置,以ext_flash舉例,在LCF文件中可做如下定義:

        MEMORY

        {

        ext_flash (RX) : ORIGIN = 0x00000000, LENGTH = 0x00FF0000 #16MB-64KB

        }

        SECTIONS

        {

        .ext_flash : {} > ext_flash

        .crc : AT(___CRC_FLASH_START)

        {

        *(.CRC)

        } >> ext_flash

        }

        .CRC表示CRC校驗碼的全局變量存放區(qū),編譯器在鏈接時將把工程中定義為.CRC的變量都將鏈接到ext_flash段。

        2.3 存儲器校驗

        在本文中,存儲器件分為NorFlash、DDR2 SDRAM和SRAM三種。1)NorFlash校驗:

        采用CRC校驗方式,在線計算NorFlash中SDRAM代碼段、SDRAM數據段、SRAM代碼段和SRAM數據段的CRC校驗碼,與保存在NorFlash的.CRC區(qū)域中的各個CRC全局變量值(.CRC區(qū)域中的校驗碼都是離線生成并重新集成進來的)比較。若相等,繼續(xù)執(zhí)行,否則記錄故障,進入死循環(huán)停止啟動。

        其目的是檢查保存在NorFlash中的內容,確保其在執(zhí)行或者拷貝時,信息源頭不出錯。當啟動引導過程中各個分段的CRC校驗都通過后,可以進行SDRAM代碼段拷貝。

        2)DDR2 SDRAM測試和SRAM測試

        采用Abraham算法進行SDRAM數據段和SRAM數據段的全覆蓋測試。測試成功,所有地址清零,否則記錄故障,進入死循環(huán)停止啟動。

        當DDR2 SDRAM和SRAM測試通過后,可以進行SDRAM數據段、SRAM代碼段、SRAM數據段和中斷向量表的拷貝。

        2.4 異常處理

        在系統(tǒng)運行過程中,不可避免的會進入到異?;蛘咧袛酄顟B(tài)。MCF54415共用3個中斷控制器,支持256種中斷源(包括異常、軟中斷和可編程外設中斷)。在設計時使用雙中斷向量表機制,將啟動引導過程與μC/OS-II系統(tǒng)運行過程的中斷(異常)處理區(qū)分開,即啟動引導階段使用第一張中斷向量表,完成引導過程成功加載μC/OS-II系統(tǒng)后,則使用第二張中斷向量表。這兩張表依次保存在NorFlash的開始位置,各占1KB空間。

        當啟動引導階段發(fā)生異常后,直接定位到第一張表中的中斷向量,調用其處理函數。一般處理過程是點亮LED紅燈,記錄故障日志,并進入死循環(huán)。當μC/OS-II系統(tǒng)運行階段發(fā)生異常后,則定位到已拷貝到SRAM中的第二張中斷向量表中,這時可以根據μC/OS-II系統(tǒng)的不同需求,對各個異常進行處理。

        2.5 故障記錄

        在系統(tǒng)的啟動引導階段,出現異?;蛘叱绦蜻\行返回值錯誤時,一般的處理過程都是進入死循環(huán),這對于系統(tǒng)調試非常不便,因此在設計時,在SRAM中的sram_user段中單獨開辟了一片區(qū)域,專門保存上次運行時,出錯的具體位置、相關變量值等關鍵信息。當系統(tǒng)熱啟動時,先判斷上次啟動是否有異常,如果有異常,就通過調試串口,將錯誤日志打印出來。

        3.總結

        本文中介紹的基于MCF54415的μC/OS-II系統(tǒng)啟動引導程序,在實現一般的啟動引導功能基礎上,特別設計了提高可靠性的幾種方法,如通過CRC對NorFlash信息進行校驗、通過Abraham算法對SDRAM和SRAM進行測試,采用雙中斷向量表機制分離啟動引導過程和μC/OS-II系統(tǒng)運行過程的異常處理,在啟動引導階段發(fā)生異常和故障時,記錄故障日志等,極大的提高了系統(tǒng)啟動引導階段的可靠性,同時也降低了故障分析的難度。這些方法已在鐵路信號系統(tǒng)中已得到了廣泛引用,并起到了良好的效果。

        [1]諶利等編著.深入淺出COLDFire系列32位嵌入式微處理器[M].北京航空航天大學出版社,2009,10.

        [2]NXP(恩智浦半導體).MCF5441X Reference Manual,Rev.3.2010,9.

        [3]NXP(恩智浦半導體).MCF5441x ColdFire Microprocessor Data Sheet,Rev.8.2012,6.

        [4]NXP(恩智浦半導體).ColdFire Family Programmer’s Reference Manual,Rev.3.2005,3.

        宋志堅(1982-),男,碩士研究生,工程師,現供職于卡斯柯信號有限公司,從事嵌入式系統(tǒng)驅動開發(fā)方向。

        耿進龍(1982-),男,碩士研究生,工程師,現供職于卡斯柯信號有限公司,從事系統(tǒng)安全設計方向。

        宋興儒(1988-),男,碩士研究生,工程師,現供職于卡斯柯信號有限公司,從事嵌入式系統(tǒng)軟件開發(fā)方向。

        劉暢(1979-),男,碩士研究生,工程師,現供職于卡斯柯信號有限公司,從事硬件電路開發(fā)方向。

        潘雷(1976-),男,碩士研究生,高級工程師,現供職于卡斯柯信號有限公司,從事硬件電路開發(fā)和管理方向。

        猜你喜歡
        拷貝板卡校驗
        基于PCI9054的多總線通信板卡的研制
        測控技術(2018年3期)2018-11-25 09:45:46
        基于FPGA的多通道模擬量采集/輸出PCI板卡的研制
        測控技術(2018年12期)2018-11-25 09:37:42
        唐氏綜合征是因為“拷貝”走樣了
        爐溫均勻性校驗在鑄鍛企業(yè)的應用
        一種基于光纖數據傳輸的多板卡軟件程序燒寫技術
        大型電動機高阻抗差動保護穩(wěn)定校驗研究
        電測與儀表(2015年1期)2015-04-09 12:03:02
        基于加窗插值FFT的PMU校驗方法
        鍋爐安全閥在線校驗不確定度評定
        一種通用模擬量及開關量信號采集板卡的設計
        文件拷貝誰最“給力”
        天堂草原电视剧在线观看图片高清| 深夜一区二区三区视频在线观看| 国产亚洲aⅴ在线电影| 国产熟妇按摩3p高潮大叫| 日韩精品无码一区二区| 欧美最猛黑人xxxx黑人表情 | 一色桃子中文字幕人妻熟女作品| 99偷拍视频精品一区二区| 久久免费精品国产72精品剧情| 狠狠久久av一区二区三区| 精品亚洲一区二区三区四| 人人妻人人妻人人片av| 久久99精品久久久久久齐齐百度| 在线播放偷拍一区二区| 亚洲一区二区二区视频| 无码人妻精一区二区三区| 久久免费精品国产72精品剧情 | 亚洲免费av第一区第二区| 国产毛片黄片一区二区三区| 国产一区二区内射最近更新| 亚洲国产精品国自产电影| 最新国产一区二区三区| 一区二区午夜视频在线观看| 国产a在亚洲线播放| 亚洲不卡中文字幕无码| 巨爆乳中文字幕爆乳区| 午夜宅男成人影院香蕉狠狠爱| 国产一区二区三区日韩精品| 精品无码人妻一区二区三区品| 欧美性爱一区二区三区无a| 国产专区亚洲专区久久| 亚洲精品人成中文毛片| 免费a级毛片无码a∨男男| 野外三级国产在线观看| 亚洲综合一区二区三区久久| 亚洲av乱码一区二区三区按摩| 国语对白做受xxxxx在线中国 | 81久久免费精品国产色夜| 日本在线 | 中文| 国产精品一区二区久久精品| 人妻精品一区二区三区视频|