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

基于調試器的通用Flash在線編程系統

2014-06-07 05:53:26羅小華
計算機工程 2014年11期
關鍵詞:嵌入式調試用戶

蔣 龍,劉 兵,羅小華

(1.浙江大學超大規模集成電路設計研究所,杭州310000;

2.杭州中天微系統有限公司軟件研發部,杭州310012)

基于調試器的通用Flash在線編程系統

蔣 龍1,劉 兵2,羅小華1

(1.浙江大學超大規模集成電路設計研究所,杭州310000;

2.杭州中天微系統有限公司軟件研發部,杭州310012)

在嵌入式系統中,Flash是經常使用的只讀存儲方式。針對目前Flash在線編程接口形式較多、軟件通用性不強的現狀,利用嵌入式調試技術實現一種通用Flash在線編程系統。通過定義特定Flash在線編程驅動程序封裝不同Flash在線編程細節,并在基于Eclipse的集成開發環境下封裝整個系統。系統內部復用現有的嵌入式調試軟件工具,與嵌入式目標端的Flash驅動程序配合,可實現Flash在線編程的功能。在使用方面,該系統呈現給用戶一個操作簡單、可視化強的軟件操作界面;在功能方面,通過定制Flash驅動程序,該系統對目前業內主流Flash進行在線編程,具有在線編程的通用性。

嵌入式系統;Flash在線編程;調試器;Eclipse插件;集成開發環境;軟件復用

1 概述

對于嵌入式系統來說,Flash幾乎成為必不可少的硬件單元,因此Flash的在線編程在嵌入式開發中是非常重要的一個環節[1]。目前業界對Flash的在線編程接口千差萬別,每個廠商的Flash編程方式各有不同,相同的嵌入式平臺,針對不同的Flash單元要做不同的定制[2]。這種情況顯然不利于嵌入式開發效率的提高。

目前,針對Flash在線編程的研究普遍集中在底層硬件的實現層面,對于嵌入式軟件開發的效率提升完全沒有考慮[3]。文獻[1]介紹了一種基于JTAG實現的Flash編程方法,利用芯片SRAM區域作為數據緩沖區,通過JTAG進行控制,最終實現Flash編程。整體方案較好,不足之處在于需要較多的硬件單元。文獻[2]同樣是基于JTAG的Flash編程實現,通過專用的硬件目標板去控制原有的CPU core中的JTAG邏輯模塊,通過PC端軟件實現對Flash的編程,整體的軟硬件代價都相對高。文獻[4]的問題在于整個論述都是對TMS320F2812芯片的理論研究,沒能提出一種更為通用的方式。

針對目前Flash編程接口形式多變對嵌入式軟件開發帶來的不便[4],本文設計并實現一套通用的Flash在線編程系統。該系統利用現有嵌入式調試通道,將頂層Eclipse集成開發環境與運行在嵌入式目標端RAM中的Flash驅動整合,最終實現各種Flash在線編程的功能。整體方案只需要嵌入式端極小RAM(小于1 KB)的硬件開銷(一般嵌入式系統都可以滿足該RAM要求),可解決嵌入式Flash在線編程的通用性問題[5],提高嵌入式軟件開發中Flash在線編程的效率。

2 系統設計原理

2.1 整體框架及原理描述

通用Flash在線編程系統的核心原理在于:通過用戶自定義Flash驅動,封裝不同Flash編程接口,利用嵌入式調試工具,將驅動加載到嵌入式目標板RAM中,然后運用斷點(break)、寫內存(restore)和運行(continue)等基本調試命令,通過對驅動程序的控制,完成對Flash硬件的在線編程工作。Eclipse集成開發環境的功能是封裝了調試工具的調試過程,為用戶提供一個Flash編程操作界面。整個系統如圖1所示。

圖1 通用Flash在線編程系統框圖

運行在嵌入式目標端RAM空間的Flash驅動程序封裝了Flash編程接口的細節,該程序在整個系統中始終處于被調試的狀態,調試器發送調試命令,控制Flash驅動程序,完成Flash的在線編程。

2.2 模塊功能說明

2.2.1 Flash驅動模塊

整個系統的核心在于Flash驅動程序的設計,驅動模塊需要完成2個功能:(1)為Flash編程用戶提供通用Flash編程接口;(2)向調試器提供一組控制接口,使得調試器能夠通過基本的調試命令來實現對Flash編程的控制。整個模塊如圖2所示。

在該模塊中,用戶自定義部分需要由Flash編程用戶根據具體的Flash器件特性實現。通過這種方式,可以實現Flash編程的通用性。通用接口及含義見表1。

圖2 Flash驅動模塊框圖

表1 驅動模塊通用Flash編程接口說明

調試器控制接口給出的是一些全局符號,如表2所示。調試器可以在驅動程序處于調試狀態時,讀寫這些全局符號,從而準確地控制Flash驅動程序,實現通用Flash在線編程的操作[6]。

表2 驅動模塊調試器控制接口說明

當驅動處于調試狀態下時,Flash編程事件輪詢單元利用調試器控制接口的信息來調用不同的Flash編程接口,實現Flash的讀寫、擦除等操作[7]。

2.2.2 調試器模塊

調試器模塊雖然在系統中非常重要,但本文系統只是使用調試器的最基本的調試操作,這也是本文系統的一個優點:最大限度實現了軟件復用[8]。表3給出系統工作時調試器的基本命令以及作用。

表3 系統使用的基本調試命令說明

通過使用上述命令,調試器可以準確控制目標端RAM中運行的Flash驅動的運行流程,從而實現Flash編程操作,該過程如圖3所示。可以看出,涉及到的調試操作全部是嵌入式調試中經常使用的基本調試操作,因此,對于調試器模塊來說,在整個系統中,并沒有任何的擴展,完全實現了軟件復用。

圖3 調試器模塊控制流程

2.2.3 Eclipse模塊

Eclipse模塊將調試驅動的細節進行了封裝。具體來說,該模塊負責提供給用戶一個Flash編程操作界面,并將調試器模塊使用到的基本調試命令進行后臺封裝[9]。

在界面上,僅提供給用戶Flash編程的操作;在后臺,將調試流程進行封裝;這種做法可以做大限度地避免將本系統的原理暴露給Flash編程的用戶,符合軟件封裝原則[10]。

3 系統設計與實現

3.1 嵌入式環境

本文系統的實現環境:嵌入式硬件平臺是杭州中天微系統有限公司的32位高性能嵌入式CPU CK610,并使用基于該芯片的SoC平臺,該平臺使用了SPANSION公司S29GL-N型號Nor Flash的只讀器件;嵌入式軟件平臺方面,調試器部分使用杭州中天微系統有限公司的嵌入式CK-GDB,以及基于Eclipse的集成開發環境 C-Sky Development Suite (CDS)。本文首先針對Nor Flash編寫驅動程序,然后在CDS平臺上進行插件開發,完成通用Flash在線編程系統的設計。

3.2 Flash驅動框架設計實現

驅動框架的設計嚴格按照原理闡述,結合圖2所示的 Flash驅動模塊框圖,在驅動工程中,通用Flash編程接口需要由具體的Flash編程用戶來實現,而調試器控制接口是確定的,而且盡量避免暴露給用戶,因此本文在實現中將兩部分代碼放在了不同的源文件中[11]。整個驅動工程的文件目錄如圖4所示。

這里crt0.S是啟動文件,ckcpu.ld是鏈接腳本,而gdb.init文件是gdb的啟動腳本。這3個文件是嵌入式工程必備文件。

圖4 驅動工程目錄

本文將調試器控制接口以及Flash編程事件輪詢單元放在了main.c文件中,并使注釋main.c文件是只讀文件;而需要用戶自定義的通用Flash編程接口全部放到driver.c文件中,該文件是需要用戶根據具體的Flash硬件單元來自定義完成的。

事件輪詢單元(main.c文件)的核心代碼如下:

上述代碼是整個驅動程序的核心代碼,調試器通過驅動提供的全局控制變量對控制while循環的流程。

3.3 Eclipse插件設計實現

本文通過Eclipse插件開發技術,為用戶實現了一個Flash編程的GUI,最終用戶在實際使用中是通過該GUI,一鍵操作完成對Flash的編程的。

具體來說,需要對Eclipse的擴展點進行擴展,然后在此擴展點上進行GUI后臺邏輯封裝工作。

插件開發核心代碼如下:

通過xml方式對Eclipse進行了擴展點開發,后續僅需要完成實現該擴展點的類:com.csky.cds.Flash.ui.FlashUIHandler即可,鑒于篇幅,本文不在此贅述。

4 實驗結果演示

本文使用CDS提供的demo程序作為演示程序,使用上文實現的Flash插件開發界面進行Flash編程操作,將demo燒寫到基于CK-CPU的SoC平臺的Nor Flash空間中。最終在Eclipse界面上顯示“Programmed successfully“,見圖5中圓圈圈出部分。

圖5 Eclipse上Flash燒寫成功界面

為驗證是否如界面所示,將嵌入式目標板串口連接至電腦,重新上電,發現電腦串口顯示“Hello,CSky!”的預期結果。這說明嵌入式目標端Nor Flash對應空間確實已經被正確燒寫了。從而證明了該通用Flash在線編程系統的正確性[12]。

5 結束語

本文提出了一種通用的Flash在線編程的方法,通過定義Flash驅動程序封裝了不同Flash的在線編程細節,采用現有的嵌入式調試手段,最終在Eclipse層面上將該方法的原理進行封裝,為用戶呈現一個可視化的Flash編程界面,實現了Flash在線編程的通用性。該方法也大幅提高了嵌入式Flash在線編程的速度。但在本文系統中,Flash驅動模塊源代碼會將原理細節暴露給用戶,這不符合軟件封裝原則。在下一步工作中,對于Flash驅動的模塊,可以考慮使用庫的形式將這些細節封裝起來,只將通用Flash編程接口的實現交給用戶,做到完全的封裝。

[1] 陳 超,沈海斌.基于JTAG的可重構Flash快速編程方法[J].計算機工程,2010,36(17):280-282,285.

[2] 吳玉香,周建香.基于JTAG的Flash在線編程系統實現[J].化工自動化及儀表,2009,36(6):70-74.

[3] 李 靜,張樹團.TMS320F2812片內Flash在線燒寫技術研究[J].國外電子元器件,2008,10:37-38,40.

[4] 董相暉,張志敏.一種基于EJTAG快速在線燒寫Flash的設計[J].微電子學與計算機,2007,24(12):106-108.

[5] 李 慧,周 明.JTAG模式下的MPC5554外部FLASH編程的設計與實現[J].現代電子技術,2009,32(2): 76-79,83.

[6] 趙海艦,甘 萌.嵌入式系統中的Flash編程技術研究[J].計算機工程與設計,2005,26(11):3006-3009.

[7] 陸林燕,王魯靜,鄭正奇.NAND FLASH編程實現研究分析[J].計算機技術與發展,2008,18(3):118-120,124.

[8] 黃冰峰,游志宇,杜 楊,等.基于SoPC目標板Flash編程設計的創建及應用[J].電子設計工程,2009, 17(3):100-102,105.

[9] 魏楚元,李陶深,張增芳.Eclipse:基于插件的下一代通用集成開發環境[J].計算機應用與軟件,2005, 22(6):38-40.

[10] 薛東方,尚朝軒,何 強,等.基于Visual DSP++環境的Flash在線編程實現[J].科學技術與工程,2008, 8(4):1095-1097.

[11] 閆守孟,周興社,李志剛.面向嵌入式驅動軟件開發的設備仿真技術研究[J].西北工業大學學報,2004, 22(1):11-14.

[12] 單錦輝,姜 瑛,孫 萍.軟件測試研究進展[J].北京大學學報,2005,41(1):134-145.

編輯 金胡考

General Flash Online Programming System Based on Debugger

JIANG Long1,LIU Bing2,LUO Xiaohua1
(1.Institute of VLSI Design,Zhejiang University,Hangzhou 310000,China;
2.Department of Software Research and Development,C-SKY Microsystems Co.,Ltd.,Hangzhou 310012,China)

In embedded systems,Flash is an often-used way of read-only memory.For all kinds of Flash online programming interface in the present industry,a general Flash online programming system is implemented in this paper by using the embedded debugging techniques.This system encapsulates the different Flash online programming details by defining specific Flash online programming driver.An Integrated Development Environment(IDE)based on Eclipse is at the top of the system,and in the background,the existing embedded debug tool is reused to achieve Flash online programming with the help of specific Flash driver running on the embedded target.In terms of use,this system presents a simple operation,strong visual software interface for Flash online programming,and in the aspect of function,major Flash in the industry can be online programming in this system,which implements the generality of Flash online programming.

embedded system;Flash online programming;debugger;Eclipse plug-in;Integrated Development Environment (IDE);software reuse

1000-3428(2014)11-0046-04

A

TP31

10.3969/j.issn.1000-3428.2014.11.009

“核高基”重大專項“高性能嵌入式CPU關鍵技術研究”(2010ZX01030-001-001-002)。

蔣 龍(1987-),男,碩士研究生,主研方向:嵌入式調試技術;劉 兵,碩士;羅小華,副教授。

2013-11-25

2013-12-20E-mail:ZJU_PeterJL@163.com

中文引用格式:蔣 龍,劉 兵,羅小華.基于調試器的通用Flash在線編程系統[J].計算機工程,2014,40(11):46-49.

英文引用格式:Jiang Long,Liu Bing,Luo Xiaohua.General Flash Online Programming System Based on Debugger[J].Computer Engineering,2014,40(11):46-49.

猜你喜歡
嵌入式調試用戶
基于航拍無人機的設計與調試
電子制作(2018年12期)2018-08-01 00:47:44
搭建基于Qt的嵌入式開發平臺
FOCAS功能在機床調試中的開發與應用
無線通信中頻線路窄帶臨界調試法及其應用
電子制作(2017年19期)2017-02-02 07:08:38
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
調壓柜的調試與試運行探討
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
主站蜘蛛池模板: 国产精品自在在线午夜区app| 99久久这里只精品麻豆| 成人国产三级在线播放| 免费看的一级毛片| 91美女视频在线观看| 在线观看免费人成视频色快速| 国产丝袜无码一区二区视频| 亚洲91精品视频| 动漫精品中文字幕无码| 高h视频在线| 一边摸一边做爽的视频17国产| 欧美激情视频二区| 啊嗯不日本网站| 草逼视频国产| 一区二区理伦视频| 亚洲中文字幕无码爆乳| 午夜视频免费试看| 亚洲免费三区| 91在线国内在线播放老师| a免费毛片在线播放| 久久特级毛片| 久久香蕉国产线看精品| 亚洲AⅤ综合在线欧美一区| 色亚洲成人| 欧美国产日产一区二区| 中文字幕66页| 国产本道久久一区二区三区| 精品五夜婷香蕉国产线看观看| 国内精品91| 玖玖精品视频在线观看| 日本道综合一本久久久88| 亚洲国产综合精品中文第一| www.youjizz.com久久| 国内嫩模私拍精品视频| 91亚洲国产视频| 精品无码日韩国产不卡av| 国产成人1024精品| 高清亚洲欧美在线看| 免费毛片网站在线观看| 国产精品香蕉在线| 久久性视频| 国产精品va免费视频| 丝袜高跟美脚国产1区| 成人午夜视频在线| 毛片久久久| 国产无遮挡猛进猛出免费软件| 亚洲美女高潮久久久久久久| 亚洲黄色网站视频| 国产精品一区在线观看你懂的| 免费在线看黄网址| 99在线免费播放| 国产成人AV大片大片在线播放 | 欧洲极品无码一区二区三区| 日韩天堂视频| 国产夜色视频| 日本精品影院| 麻豆精品在线视频| 国产精品视频猛进猛出| 综合色在线| 国产一级做美女做受视频| 亚洲午夜久久久精品电影院| 亚洲美女一级毛片| 嫩草国产在线| 波多野一区| 国产拍在线| 色屁屁一区二区三区视频国产| 国产在线无码一区二区三区| 无码日韩人妻精品久久蜜桃| 五月婷婷丁香综合| 国产97区一区二区三区无码| 永久在线播放| 亚洲色无码专线精品观看| 免费中文字幕在在线不卡| 亚洲中文字幕久久无码精品A| 欧美日韩国产精品va| 久久免费精品琪琪| 国产香蕉一区二区在线网站| 伊人久久综在合线亚洲91| 天堂成人av| 午夜福利网址| 欧美日韩亚洲国产主播第一区| 国产精品国产三级国产专业不|