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

嵌入式系統(tǒng)Bootloader分析及DSP56F800串口加載功能實現(xiàn)

2010-03-24 02:41:12張小平豐新龍
海軍航空大學(xué)學(xué)報 2010年5期
關(guān)鍵詞:嵌入式程序系統(tǒng)

張小平,谷 勇,豐新龍

(1.海軍駐太原地區(qū)航空軍事代表室;2.太原航空儀表有限公司,太原 030006)

引導(dǎo)加載程序是上電運(yùn)行的第一段代碼,一般完成硬件初始化和系統(tǒng)加載的功能。了解引導(dǎo)加載程序有助于更深入的理解計算機(jī)系統(tǒng),實現(xiàn)更底層的應(yīng)用,下面以Motorola 公司的DSP 處理器為例介紹引導(dǎo)加載程序的部分應(yīng)用。

1 Bootloader 概述

通常計算機(jī)系統(tǒng)從軟件角度劃分層次如下:①引導(dǎo)加載程序。包括固化在固件(firmware)中的boot代碼(可選)和BootLoader 兩大部分。② 操作系統(tǒng)內(nèi)核。特定于嵌入式板子的定制內(nèi)核以及內(nèi)核的啟動參數(shù)。③ 文件系統(tǒng)。包括根文件系統(tǒng)和建立于flash、Ram 等存儲設(shè)備上的文件系統(tǒng)。④ 用戶應(yīng)用程序。滿足用戶需求的各種程序和功能代碼。

引導(dǎo)加載程序是系統(tǒng)加電后運(yùn)行的第一段軟件代碼。PC機(jī)中的引導(dǎo)加載程序由BIOS(其本質(zhì)就是一段固件程序)和位于硬盤 MBR 中的OS BootLoader(比如,LILO 和GRUB 等)一起組成。BIOS 在完成硬件檢測和資源分配后,將硬盤MBR中的BootLoader 讀到系統(tǒng)的RAM中,然后將控制權(quán)交給OS BootLoader。BootLoader的主要運(yùn)行任務(wù)就是將內(nèi)核映象從硬盤上讀到RAM中,然后跳轉(zhuǎn)到內(nèi)核的入口點去運(yùn)行,也即開始啟動操作系統(tǒng)。

對于無操作系統(tǒng)平臺的嵌入式系統(tǒng),Bootloader完成初始化硬件、建立內(nèi)存映射等工作后,直接跳轉(zhuǎn)到用戶程序執(zhí)行。

通過Bootloader 設(shè)計能實現(xiàn)很多功能,如初始化硬件、系統(tǒng)啟動自檢測、加載操作系統(tǒng)和用戶程序,實現(xiàn)系統(tǒng)更新等。嵌入式系統(tǒng)產(chǎn)品一般有3種工作狀態(tài):正常工作狀態(tài)、程序加載狀態(tài)、維護(hù)調(diào)試狀態(tài)。根據(jù)軟件或硬件輸入,Bootloader 判斷系統(tǒng)的狀態(tài),選擇跳轉(zhuǎn)到用戶程序或執(zhí)行加載程序代碼或執(zhí)行維護(hù)檢測程序。

程序加載的方式有多種,一般通過串行接口、JTag 接口、以太網(wǎng)接口等,可加載的程序文件格式包括ELF32、S-record 等。[1-5]

下面以Motorola 公司的DSP56F800系列處理器為例,說明Bootloaer 在串口加載中的應(yīng)用。

2 DSP56F800串口加載功能實現(xiàn)

飛思卡爾公司的DSP56F800系列處理器有較廣泛的應(yīng)用基礎(chǔ),采用傳統(tǒng)的JTAG 接口仿真和加載方式,更新軟件時需要拆裝產(chǎn)品,對產(chǎn)品外場維護(hù)、檢測造成不便。采用串口加載方式,接口簡單、方便,通過產(chǎn)品上預(yù)留的RS-232 接口,即可更新程序,又能打印維護(hù)信息。

2.1 硬件平臺設(shè)計

DSP56F800系列處理器的片上設(shè)備有SCI 及GPIO端口,通過SCI 和RS-232 通訊驅(qū)動芯片(ADM3311,MAX232 等)實現(xiàn)和上位機(jī)的通訊,GPIO 用來判斷進(jìn)入正常工作還是程序加載模式,復(fù)位信號和硬件喂狗信號連接到外部調(diào)試、加載端口便于控制,其硬件基本原理框圖如圖1所示:

圖1 串口加載硬件設(shè)計原理

ISboot 通過電阻上拉至3.3 V,輸入懸空時進(jìn)入正常工作狀態(tài),接地時進(jìn)入程序加載狀態(tài)。進(jìn)入程序加載狀態(tài)后PC機(jī)通過RTS 設(shè)置產(chǎn)生喂狗信號防止DSP 復(fù)位。[6-7]

2.2 Bootloader 設(shè)計

1)Bootloader 基本原理。在Bootloader的工程中resetvector.asm(見附錄A a)文件中定義復(fù)位中斷向量的入口地址為bootArchStart(見附錄A b)。系統(tǒng)上電首先進(jìn)行必要的寄存器初始化,執(zhí)行調(diào)用main 完成串口加載功能,然后,跳轉(zhuǎn)至archStart執(zhí)行應(yīng)用程序。復(fù)位中斷向量的地址為0x8000~0x8004,archStart 入口地址為0x0080,引導(dǎo)加載的代碼存儲在 bootflash 空間,地址為x8004~0x8800(見附錄A c,link.cmd)。

2)Bootloader 程序設(shè)計。Bootloader 程序設(shè)計主要包括如下幾個部分:

① Bootloader 主程序。主要完成硬件初始化、工作模式選擇功能。ISboot 懸空,跳轉(zhuǎn)至應(yīng)用程序入口,進(jìn)入正常工作狀態(tài);ISboot 接地,進(jìn)入程序加載狀態(tài),等待串口發(fā)送數(shù)據(jù),程序加載完畢跳轉(zhuǎn)至應(yīng)用程序入口。②串口通訊程序。接收PC機(jī)發(fā)送的S-record 格式文件,并反饋狀態(tài)信息。③S-record 文件解碼程序。對S-record 文件進(jìn)行解碼分析,提取地址、代碼、數(shù)據(jù)等。④ flash 讀寫程序。將接收的代碼和數(shù)據(jù)寫入Program Flash 或Data Flash 并校驗。

其中main(void)為主體函數(shù),其流程如圖2所示,源碼見附錄A,main 執(zhí)行結(jié)束后延時跳轉(zhuǎn)至用戶程序。

串口通訊使用軟件流控制,X-ON為Ctrl+Q,鍵值17,X-OFF為Ctrl+S,鍵值19;DSP 接收并處理上位機(jī)發(fā)送的S-record 文件,忙時向上位機(jī)發(fā)送X-OFF,閑時發(fā)送X-ON;上位機(jī)收到X-OFF 字符停止發(fā)送數(shù)據(jù),收到X-ON 啟動發(fā)送數(shù)據(jù)。

圖2 Bootloader串口加載流程

DSP 接收每個S-record 記錄進(jìn)行校驗/解析,將數(shù)據(jù)寫入對應(yīng)的地址,如果接收過程出現(xiàn)校驗或指令錯誤,發(fā)送警告信息。[5,8]

2.3 S-record 文件格式

Motorola S-records 16 進(jìn)制文件和ELF 文件是編譯生成可執(zhí)行代碼的常見格式,CodeWarrior 編譯出來的可執(zhí)行代碼就包括這兩種類型的文件(CodeWarrior的工程DEBUG 文件夾下面一般都有這兩種文件,flash.elf,flash.elf.s)。串口加載程序使用S-records 文件。

S-records 文件每個記錄由ASCII 字符組成,通常不超過514個字節(jié),其格式為:類型+字?jǐn)?shù)+地址+數(shù)據(jù)+校驗和,見表1。

表1 S-record 文件記錄格式

每個記錄之間通過換行符隔離,和目標(biāo)板通訊時以記錄為單位操作。

各種記錄的描述如下:

S0 記錄內(nèi)容為文件頭信息,其地址域為0x0000,數(shù)據(jù)域分為3 部分:模塊名稱(20char),版本號(2char),修訂號(2char),描述部分(0~36 char)。

S1、S2、S3 記錄均為可加載記錄,數(shù)據(jù)域為可加載數(shù)據(jù),地址域分別為4 字節(jié)、6 字節(jié)、8 字節(jié)地址。

S5 記錄,地址域表示此前的可加載記錄總數(shù),數(shù)據(jù)域為空。

S7、S8、S9 記錄,數(shù)據(jù)域為空,地址域表示可執(zhí)行程序入口地址,地址域分別為4 字節(jié)、3 字節(jié)、2 字節(jié)地址。

3 串口控制功能實現(xiàn)

PC機(jī)的9 針COM端口可實現(xiàn)串行數(shù)據(jù)輸入輸出,及離散信號的輸入輸出。COM端口應(yīng)用見表2。

表2 9 針COM端口說明

COM 口的DTR、RTS、CTS、DSR 引腳通常為硬件流量控制模式時作為握手信號使用,在Bootloader 中數(shù)據(jù)流量控制使用X-ON/OFF 軟件流量控制,因此這4個引腳可作為離散量輸入/輸出使用。

一般基于DSP56F800 平臺的產(chǎn)品都有硬件看門狗的功能,當(dāng)系統(tǒng)軟件不能周期性的喂狗時,系統(tǒng)會復(fù)位,為減小Bootloader的開銷,使用RTS 引腳作為WDI(Watch dog Input),通過不停翻轉(zhuǎn)RTS電平避免在加載程序過程中DSP 硬件看門狗復(fù)位。

DTR 引腳連接到DSP系統(tǒng)復(fù)位信號,加載完畢后可以自動復(fù)位DSP,驗證程序加載是否成功。

CTS、DSR 也可作為DSP模式輸入引腳,在串口調(diào)試功能設(shè)計中用來判斷DSP 當(dāng)前所處的工作模式。[6-7]

上位機(jī)軟件包括如下功能:串行端口設(shè)置及初始化;DSP 信息接收并顯示;S-record 文件讀取及傳送;DSP 復(fù)位信號,喂狗信號控制。軟件流程圖見圖3。

圖3 上位機(jī)軟件流程圖

4 串口調(diào)試功能設(shè)計

通過Bootloader 也可以實現(xiàn)串口調(diào)試功能,其程序結(jié)構(gòu)和硬件設(shè)計原理與上述串口加載設(shè)計類似,Bootloader 設(shè)計中加入調(diào)試指令集和命令解釋執(zhí)行代碼,例如接收到“S”指令返回版本信息,接收到“B”指令進(jìn)行BIT 并返回自檢信息等。

5 結(jié)束語

Bootloader 設(shè)計在嵌入式系統(tǒng)中非常重要,可根據(jù)系統(tǒng)的需要設(shè)計不同功能的Bootloader 能提高產(chǎn)品的可靠性、維修性。

[1]章堅武,李杰,姚英彪.嵌入式系統(tǒng)設(shè)計與開發(fā)[M].西安:西安電子科技大學(xué)出版社,2009:122-213.

[2]符意德.嵌入式系統(tǒng)設(shè)計原理及應(yīng)用[M].北京:清華大學(xué)出版社,2004:81-237.

[3]張思民.嵌入式系統(tǒng)設(shè)計及應(yīng)用[M].北京:清華大學(xué)出版社,2008:156-197.

[4]賴曉晨,原旭,孫寧.嵌入式系統(tǒng)程序設(shè)計[M].北京:清華大學(xué)出版社,2009:216-317.

[5]馬學(xué)文,朱名日,程曉輝.嵌入式系統(tǒng)中Bootloader的設(shè)計與實現(xiàn)[J].計算機(jī)工程,2005,31(7):96-97;196.

[6]冬雷.DSP 原理及開發(fā)技術(shù)[M].北京:清華大學(xué)出版社,2007:67-179.

[7]范壽康.Freescale 16 位DSP 原理與開發(fā)技術(shù)[M].北京:機(jī)械工業(yè)出版社,2006:157-317.

[8]郎巖梅,唐文彥,趙軍.基于 DSP 嵌入式系統(tǒng)中Bootloader的設(shè)計方法[J].電測與儀表,2003,40(4):35-37.

附錄A a resetvector.asm 源碼

附錄A b bootArchStart.c 源碼

附錄A c bottloader 編譯鏈接文件link.cmd

猜你喜歡
嵌入式程序系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
試論我國未決羈押程序的立法完善
搭建基于Qt的嵌入式開發(fā)平臺
“程序猿”的生活什么樣
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
英國與歐盟正式啟動“離婚”程序程序
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
主站蜘蛛池模板: 国产精品无码制服丝袜| 国产高清国内精品福利| 国产极品粉嫩小泬免费看| 一区二区三区国产| 久久9966精品国产免费| AV老司机AV天堂| 毛片国产精品完整版| 欧美日本激情| 欧美成人区| 久久精品一卡日本电影| 国产人前露出系列视频| 久久香蕉国产线看精品| 99精品国产高清一区二区| 亚洲天天更新| 久久精品只有这里有| 亚洲福利视频一区二区| 狠狠亚洲婷婷综合色香| 色悠久久久久久久综合网伊人| 国产真实乱人视频| 91精品国产91欠久久久久| 欧美成在线视频| 五月天婷婷网亚洲综合在线| 亚洲综合中文字幕国产精品欧美 | 久久99精品久久久久纯品| 国产成+人+综合+亚洲欧美| a欧美在线| 国产色爱av资源综合区| 伊人久久精品无码麻豆精品| 欧美日韩一区二区在线播放| 国产精品毛片一区视频播 | 精品无码人妻一区二区| 色男人的天堂久久综合| 成人精品视频一区二区在线| 成AV人片一区二区三区久久| 国产美女免费网站| 久青草免费在线视频| 国产呦精品一区二区三区下载 | 毛片一级在线| 亚洲码在线中文在线观看| 亚洲国产天堂久久九九九| 国产精品原创不卡在线| 国产精品三区四区| 青青操视频在线| 久久精品这里只有精99品| 日韩欧美中文字幕在线韩免费| 中文字幕日韩欧美| 午夜视频www| 无码AV动漫| 夜夜操狠狠操| 婷婷综合亚洲| 国产成人喷潮在线观看| 亚洲熟女偷拍| 97国产精品视频自在拍| 97国产在线视频| 国产无码网站在线观看| 国产精品香蕉在线| 日韩欧美中文在线| 亚洲 成人国产| 国产欧美视频一区二区三区| 国产精品林美惠子在线播放| 国产色爱av资源综合区| 久久男人资源站| 99在线视频免费| 国产资源免费观看| 亚洲精品成人7777在线观看| 国产自无码视频在线观看| 欧美精品二区| 欧美激情视频二区| 亚洲欧美日韩视频一区| 热99re99首页精品亚洲五月天| 午夜精品久久久久久久无码软件| 天天色综合4| 萌白酱国产一区二区| 国产在线无码av完整版在线观看| 91精品专区国产盗摄| 亚洲天堂视频网| 自拍偷拍一区| 国产成人高精品免费视频| 亚洲国产成人久久77| 男女男精品视频| 怡春院欧美一区二区三区免费| 美女一级毛片无遮挡内谢|