第一篇:軟件開發期末總結
MTTF:平均無故障時間;MTBF:平均故障間隔時間
1軟件開發的本質:高層概念到低層概念的映射。2.軟件的本質特征:構造性,演化性
3面向對象的四個原則:抽象,繼承,多態,封裝。4抽象概念的理解:對抽象事物的理解;歸納概括;總結事物共同點;進行邏輯思維和推理 java最大特點:簡單,面向對象,可移植,最大限度利用網絡 java與C++區別:全局變量;goto語句;指針;內存管理;類型轉換;頭文件
7軟件危機: 軟件的開發和維護過程中所遇到的一系列嚴重問題。不僅只軟件不能運行,幾乎所有的軟件都存在這些問題,所包含:如何開發軟件;如何維護
軟件過程 一系列任務步驟和框架
8軟件工程: 是指導計算機軟件開發和維護的一門工程學科。采用工程的概念、原理、技術和方法來開發與維護軟件,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,以經濟地開發出高質量的軟件并有效地維護它,這就是軟件工程。
9中間件 定義:是位于平臺(硬件和操作系統)和應用之間的通用服務,這些服務具有標準的程序接口和協議。目的:提出中間件的概念是為解決分布異構問題。分類:基礎中間件;業務中間件;領域中間件。構件:是系統中實際存在的可更換部分,它實現特定的功能,符合一套接口標準并實現一組接口 組件:組件技術就是利用某種編程手段,將一些人們所關心的,但又不便于讓最終用戶去直接操作的細節進行了封裝,同時對各種業務邏輯規則進行了實現,用于處理用戶的內部操作細節,甚至于將安全機制和事物機制體現的淋漓盡致。而這個封裝體就常常的被我們稱作組件。12 軟件生產線:是共享同樣的體系結構和實現平臺的軟件系統的集合,它是具有公共的系統需求集的軟件系統。這些需求是針對一組共享公共的設計和標準(或構件)的產品族,或者是一類特定的行為或任務。
13操作系統發展趨勢:操作系統內核將呈現多平臺統一的趨勢
14軟件開發趨勢
開源:兩個作用,社區和標準的建立。SOA:面向服務的體系結構;IT治理:公司治理的一部分。
15軟件開發技術趨勢(1)下一代Web開發;(2)企
業應用2.0(SOA).(3)系統開發.(4)開發工具和語言.(5)項目管理及安全 不同的軟件開發方法(1)結構化開發方法(2)面
向對象開發方法(3)統一軟件開發過程(4)敏捷軟件開發.軟件的體系結構:一個程序或系統各構件的結
構,他們之間的相互關系及進行設計的原則和指導方針;本質:對復雜事物的抽象; 一定時間內保持穩定 三要素:構件的層次結構;構件之間交互方式;數據結構
組成元素從靜態模式轉向動態模式,組件模塊有被動調用轉向主動調用以適應系統環境 軟件架構技術:根據項目情況分析系統行為,設計系統組件,給出構架表示方式,描述構架的各個方面,最后對系統構架進行精化。框架比架構更加具體 數據庫設計 方法:(1)屬性主導設計(2)實體主
導設計; 遵循原則:(1)信息隱藏(2)適當冗余(3)慎用外鍵 數據一致性:域完整性,實體完整性,引用完整性,數據有效性 插件 定義:系統運行時的功能單元,是一種遵
循一定規范的應用程序結構編寫出來的程序。呈現方式:運行時根據外部配置文件來定 基本功能:插件注冊,管理和調用 軟件質量定義 明確聲明的功能和性能需求,明
確文檔化過得開發標準,以及專業人員開發的軟件應具有的所有隱含特征 軟件需求是進行質量度量的基礎,軟件質量特性反應了軟件的本質。影響軟件質量的4個方面:開發技術;人員素
質;成本時間,進度;過程質量 軟件項目管理 為了使軟件項目能夠按照預定的成本,進度,質量順利完成,對成本,人員,進度,質量,風險等進行分析和管理的活動。24 軟件配置: 計算機程序(源代碼和可執行程序);
描述計算機程序的文檔(針對開發技術者和用戶); 數據(包含程序內部和外部)軟件維護和軟件配置管理的區別: 維護是發生
在軟件以交付給客戶,并且投資運行后的一系列軟件工程活動;軟件配置管理則是當軟件項目開始,并且僅僅當軟件退出運行后在終止的一組跟蹤和控制活動 軟件過程成熟度:指一個特定的軟件過程被顯示定義、管理、度量、和能行的程度 JavaBean開發的三個階段:構造階段,內造階段,執行階段; 包含的基本元素:屬性,方法,事件 一個Java對象具有以下特征就可以是JavaBeans 定制、持久性、通信、反省 簡單的時說(1)作為一個類必須被聲明為public(2)必須要有get/set方法(3)有構造函數但不能有參數 29 引發事件 當javaBean觸發某個事件是,javabean講點用該事件的監聽對象的響應函數 30 監聽事件 javabean被添加到某個類改事件的監聽隊列中,并且具有該事件的響應函數,被監聽類的此事件被激發時被監聽類就會調用javaBean的響應函數
JDBC工作的四個主要組件 java應用程序,JDBC驅動器管理器、驅動器,數據源
數據源的種類 用戶DNS、系統DNS 文件DNS 33 java多線程的生命周期 新建狀態;就緒狀態或可運行狀態;運行狀態、阻塞狀態、消亡狀態 33 J2EE規定的web曾包括 jsp頁面、基于web的java applet、以及用于動態生成的html頁面的Servlet構成。
作業 1簡述Servlet設計中涉及的類和接口
(1)Servlet interface: 所有的servlet直接或間接實現這個interface, 它提供安排servlet與客戶端聯系的方法.最關鍵的方法是Service,負責處理ServletRequest對象和ServletResponse對象。2)HttpServlet class: 實現Servlet interface,重寫了Service方法以區分請求(常見的HTTP請求類型是GET和POST),并調用相應的方法來處理(doGet、doPost)。
servlet接收來自客戶端的調用請求, 它接收兩個對象: 一個是ServletRequest,另外一個是ServletResponse。
3)HttpServletRequest interface: 概括從客戶端到服務器之間的聯系,實現該接口的對象包含了客戶端的請求信息。
4)HttpServletResponse interface: 概括從Servlet返回客戶端的聯系,實現該接口的對象提供了方法,使Servlet向客戶端發回響應。
1.現有數據庫db位于名為lz的MS SQL Server
服務器上,用戶名為sa,密碼為空,請編寫數據庫連接dbConnect類,實現數據庫的連接、返回連接對象及重載有關的close()方法。public class dbConnect {
public dbConnect(){
try{
Class.forName(“com.microsoft.jdbc.sqls
erver.SQLServerDriver”);
}
catch(ClassNotFoundException ee){
}
}
public static Connection getconn()throws SQLException{
String url
=
“jdbc:microsoft:sqlserver://lz:1433;DatabaseName=
db”;
String username= “sa”;
String password= "";
return
DriverManager.getConnection(url,username,password);
}
public static void close(ResultSet rs){
try{
rs.close();
}
catch(Exception ex){
}
}
public static void close(Statement stmt){
try{
stmt.close();
}
catch(Exception ex){
}
}
public static void close(Connection conn){
try{
conn.close();
}
catch(Exception ex){
}
}
private static dbConnect dbconn = new dbConnect();
}
第二篇:軟件開發心得總結
有感于網盤開發過程
有感于網盤開發過程..............................................................................................................................1
一、軟件開發個人體會:.................................................................................................................2
二、做軟件開發我覺得要明白:.....................................................................................................2
三、在開發中遇到問題應該怎么去解決?......................................................................................2
四、怎么樣才能提高自身的能力?..................................................................................................2
五、怎么樣才能做好軟件開發?.....................................................................................................2
六、文檔的重要性.............................................................................................................................3
七、我的收獲.....................................................................................................................................3
八、網盤項目開發的最大體會.........................................................................................................4
九、軟件測試(單體測試和連接測試)..........................................................................................4
常熟理工學院SIG小組
3/28/2013
一、軟件開發個人體會:
1.軟件領域中的知識在于積累。
2.做軟件開發,就類似算數學題和世界杯足球賽一樣:重在結果,而不在乎過程。3.軟件服務于人類,軟件是在解決一些生活中的問題和錯誤,問題決定解決方案。
二、做軟件開發我覺得要明白:
1.職業的樂趣:
(A)用自己的智慧去創建新事物的快樂(B)開發對別人有用的東西(C)不斷學習來充實自己 2.職業的苦惱:(A)總是追求完美
(B)所有要實現的功能由他人而定
(C)概念設計計是有趣的,但找Bug總是很苦惱的
三、在開發中遇到問題應該怎么去解決?
1.2.3.4.不明白就多問,不要自已一直去琢磨。
一個問題如果30分鐘還沒有解決就應該考慮是不是問問別人。一個問題在沒有用過3種以上的方法解決過就不要去問別人。解決問題思路是關鍵:
相信問題總歸有解決的辦法,就算連技術上都沒法實現的問題,相信通過良好的溝通終究也會有解決的方法。
5.解決問題的前提是:理解別人的意思,理解別人的需求,多溝通,及時給客戶反饋信息。
四、怎么樣才能提高自身的能力?
1.程序員怎么樣進步最快? - 理論結合實踐
2.不要怕出錯,不怕遇到錯誤,有錯誤就有挑戰,這樣才可以進步,但不要讓同一個石頭把你絆倒2次。
五、怎么樣才能做好軟件開發?
1.首先要明白解決的問題是什么,理解問題,其次再決定怎么解決這個問題 2.碰到很復雜的問題,我們就簡單想,把問題簡單化,細化到能夠實現為止
常熟理工學院SIG小組
3/28/2013
3.出了問題,我們要先分析問題,然后知道引起問題的原因,最后并想出問題的解決辦法 4.我們應該從2個方面去把握一個項目:從業務角度和項目的關鍵問題上去把握一個項目
(A)從不同的系統場景
(B)從不同的用戶角色(充當什么角色)(C)從不同的系統使用角度(擁有那些權限)
5.其實我覺得開發人員說實在應該要比使用系統的人更了解系統需求,只有真正徹底的了解了項目的業務需求,我們才能做真的做好這個項目
六、文檔的重要性
記得我當初剛開發項目的時候都是寫個大致的需求說明書,做一個E-R圖,畫幾個大致的數據流程圖,然后建立數據字典和表結構關系。再接著搭建一個開發環境,配置幾臺服務器,劃分一下模塊,分工,我們就可以Coding了,一直到項目結束了,也沒有完整的設計文檔,更沒有完整的測試文檔,雖然這樣的確是很快的完成了Coding工作,感覺上好像節省了好多成本和開發時間,但后期的維護和Bug 就是經常出現的事。
小項目沒有文檔關系不大,但如果遇到一個大項目的時候,那這樣的開發方式就很有問題很危險的。
大項目沒有文檔: 首先維護就很麻煩,也很亂,寫的代碼,過幾天都不知道它是完成什么功能的了,其次系統的穩定性和可靠性也讓人懷疑,擴展性就不用說了。
七、我的收獲
A.程序員大多都不喜歡寫文檔,我們以前也是特討厭,記得以前都是系統開發完了,為了應付項目驗收,就匆匆忙忙的一組人在那里補文檔。在我們的思想里,所謂的文檔就是一些廢話,一句話硬是用十句話來代替的無聊透頂。B.代碼風格要規范
以前做項目,我們都是不怎么去注意代碼風格和寫代碼的規范,都是稍微想一下就直接開始寫代碼了。注釋也很少用,總感覺我們自己寫的代碼,我們怎么會不知道它做了些什么事呢 ?總覺得我們自己寫的代碼我們怎么會不知道它是用來做什么的呢。一直都不相信這是個事實,但事實上,項目驗收后,系統剛開始使用的人少,也就不會出現潛在的錯誤,隨著時間的增加,久而久之,當大量用戶并發訪問的時候,系統的Bug 就暴漏出來了,那時你再用熟悉的Eclipse打開整個項目的源碼時,再去看自己寫的代碼的時候,真的發現,我們定義的這個變量名是什么意思啊 ? 我們的這個Flag 是用來判斷什么的啊 ?我們的if()中條件不知道是判斷什么? Function()也忘記是什么功能了? 想想好可怕啊。難道真的都忘記了嗎 ?回答是肯定的: 真的忘了。C.心得體會: 通過做該網盤項目,在這2年的鍛煉中,我們才真的體會到,良好的文檔是正規研發流程中非常重要的環節,一個好的程序是先寫好設計文檔再進行編程的,在設計文檔的指導下,才能寫出安全的代碼。如果你不寫文檔,一開始就寫程序,這樣你就不會按已設計好的路線走,而是想到哪寫到哪。小功能還好說,要是大功能,就容易混亂.常熟理工學院SIG小組
3/28/2013
剛開始我們還很不習慣這一系列的編程風格,很多的規范,尤其是命名,方法和注釋,都有這著很多限制,讓我們覺得真羅唆,寫個程序完成功能不就可以了嗎,明明1小時做完的事情非得讓人用3、4個小時去做,我們現在真的明白這樣做的好處了,我們已經習慣這樣的編程風格了,這也養成了我們的一個編程習慣了,深有體會啊。
最忙的時候就是我們成長和收獲最多的時候。
八、網盤項目開發的最大體會
我們覺得項目開發的開始時候,應該由項目負責人很好的對項目是什么項目,具體大概做什么事情,是誰提出來的,目的是解決什么問題,以及里面用到的很多專有名詞做個細致的說明,而不是從一開始就分幾本式樣書,給個靜態Html 的Demo看看,然后搭建好開發環境就按照式樣設計書來開發。
九、軟件測試(單體測試和連接測試)
我們首先認為,編寫程序的時候不要想出了問題再解決,而是要想如何不會出現問題,要根據經驗來預測可能出現的問題,然后避免出現。
測試,說的直接點就是給軟件找錯誤。
很多人認為發現錯誤是軟件測試的唯一目的,查找不出錯誤的測試就是沒有價值的測試,實際上我們不這么認為。
我們覺得對開發人員來說,我們要把測試出來的Bug都應該做個分析,知道錯的原因之后,我們就應該在下個項目中防止類似的錯誤發生,而真正來提高我們開發的效率。
常熟理工學院SIG小組
3/28/2013
第三篇:648軟件開發總結
內部
648軟件開發介紹
一 DM648介紹
DM648屬于TI達芬奇系列,采用單核C64X+定點CPU,支持最高頻率1.1GHz,有兩個乘法器支持四個16bits*16bits(結果32bits)單個clock cycle或者八個8bits*8bits(結果16bits)單個clock cycle。還有6個ALU。
648的片上存儲器有L1P(32KB),L1D(32KB),L2(512KB)648集成了五個視頻口VPORT,省去FPGA做FIFO,可以節省產品成本。
648集成了豐富的外設,包括edma(64個通道),SPI,I2C,UART,EMIF,DDR2,Ethernet,gpio(32個),McASP,PCI。
二 搭建軟件開發環境 2.1操作系統環境
Win7 32位或win-XP環境 2.2軟件安裝和配置
需準備的安裝軟件 Ccs3.3
bios3.08 648dvsdk perl Bios是TI針對DSP開發的實時嵌入式操作系統。
Dvsdk是基于BIOS系統的視頻開發包。Perl是腳本工具,燒寫程序時將out文件轉換為ais文件。
建議所有軟件安裝到默認目錄下,安裝完后
配置操作系統環境變量
修改BIOS_INSTALL_DIR變量為 C:/CCStudio_v3.3/bios_5_31_08 配置CCS的組件管理器,如圖2-1
點“開始->所有程序->TI->component manager,修改Target Content(DSP/BIOS)->TMS320C64XX為當前版本的DSP/BIOS
圖 2-1 2.3 DVSDK目錄文件介紹
默認安裝到C:dvsdk_1_11_00_00_DM648目錄下,其中
edma3_lld_1_05_00是edma3驅動包
examples 包含很多基于BIOS的示例應用工程,我們參考video_preview示例程序作為框架,添加圖像處理算法和通訊驅動。flashutil 包含flash燒寫工程norwriter,bootloader程序ubl,ais文件生成腳本
ndk_1_92_00_22_eval 網絡開發軟件包 pspdrivers_1_10_00 包含了TI提供的很多基于BIOS系統的驅動,我們參考其中VPORT的驅動,將按幀采集修改為按場采集的功能 xdc_2_95_02 xdc工具安裝路徑,xdc是ccs的子工具,是一個javascript編譯工具,用于編譯cfg文件,cfg文件在后面講。如圖2-2安裝XDC后,會在工程的編譯選項界面增加XDC選項。
圖2-2 2.4仿真器
TDS560USB PLUS
在CCS setup界面選擇TDS560USB PLUS platform和C64x+ family的DM648。如圖2-3.圖2-3 三 VPORT+EDMA工作原理 3.1 VPORT介紹
DM648集成了五個VPORT口,用于視頻輸入輸出,每個VPORT可以配置為capture或display模式。Capture模式又分為雙通道8bit BT656,單通道16 bit Y/C模式。Display模式又分為單通道8bit BT656, 單通道16 bit Y/C模式。
目前,capture和display模式都采用8bit BT656子模式,PAL視頻編碼芯片和解碼芯片也設置為BT656模式。3.2 BT656標準簡介
BT656標準將4:2:2格式YCbCr數據統一封裝在一個數據流中,按照CbYCrY順序排列,Y的數據數量是Cb,Cr的2倍。
BT656數據流中,ffh和00h保留用于時序標示。在視頻數據每行的開頭和結尾有標示SAV(start of video),EAV(end of video)。SAV和EAV的格式是ffh,00h,00h,XYh,前三個字節固定,第四個字節包含場標示,場消隱狀態和行消隱狀態,如圖3-1。
圖3-1 3.3 VPORT FIFO 每個VPORT有一個FIFO存儲進入的數據或者從FIFO輸出。
BT656 capture模式中,FIFO分成A、B兩個通道,如圖3-2,A通道接收VDIN[9-2]管腳的數據,B通道接收VDIN[19-12]管腳的數據。每個通道又分Y,Cb,Cr三個緩存,每個緩存區有獨立的讀寄存器。
圖3-2 BT656 display模式中,如圖3-3,只有一路輸出,FIFO分為Y,Cb,Cr三個緩存區,每個緩存區有獨立的寫寄存器。
圖3-3 VPORT和EDMA配合在FIFO和外部或片上存儲器之間移數。我們可以編程FIFO的閾值寄存器,當FIFO達到設置滿度(fullness)(對于捕獲模式)或者低于設置滿度(對于顯示模式)時,生成EDMA事件,觸發相應EDMA通道移數。
每個VPORT對應6個EDMA事件,分別是
VPxYEVTA,VPxCbEVTA,VPxCrEVTA,VPxYEVTB,VPxCbEVTB,VPxCrEVTB 例如,我們用VP0口的A通道做為BT656視頻輸入,VP1口做為BT656視頻輸出。
設置VP0口A通道Y,Cb,Cr三個緩存區的閾值為720,360,360。當PAL圖像數據傳輸完一行后,三個緩存區都達到閾值,生成VP0YEVTA,VP0CbEVTA,VP0CrEVTA三個事件,觸發對應的三個EDMA通道將三個FIFO緩存區的一行圖像數據移入DDR2緩存區。
設置VP1口Y,Cb,Cr三個緩存區的閾值為720,360,360。當三個緩存區數據數量低于閾值時,生成VP1YEVTA,VP1CbEVTA,VP1CrEVTA三個事件,觸發對應的三個EDMA通道將DDR2緩存區的一行圖像數據移入三個FIFO緩存區。
四 應用程序及驅動解析
4.1兩個重要文件
基于BIOS/DSP系統開發軟件,有兩個重要工程文件tcf和cfg文件,如圖4-1中紅圈1和2。
圖4-1
tcf文件包含了DSP/BIOS的配置信息。紅圈3的global settings設置DSP工作頻率,L1,L2 cache size,大小端,L2 cache 128kB。Memory section設置程序和數據各部分在存儲器中的段地址。
紅圈4 HWI(hardware interrupt)處,添加硬件中斷處理函數
紅圈5 添加BIOS/DSP的線程
cfg文件包含了庫鏈接路徑信息,使用javascript語言,如圖紅圈6。使用XDC工具編譯cfg文件,生成庫鏈接信息,供C編譯器鏈接庫時使用。cfg文件常鏈接的庫有vport驅動,edma驅動程序。
4.2圖像緩存分配和管理
Edma在VPORT和SDRAM之間搬數,CPU要訪問SDRAM最新的圖像數據,程序采用多個圖像緩存區循環的方式將這兩個過程并行化。
應用層創建捕獲或顯示通道時,調用驅動層程序在DDR2分配存放圖像數據的緩存區。分配之前,驅動根據通道的配置參數計算每個緩存區的大小。
例如,vp0按場采集,vp1按幀顯示。Vp0的每個緩存區的大小是720*288*2,vp1的每個緩存區的大小是720*576*2。
應用程序使用FVID_dequeue()出隊函數和FVID_queue()入隊函數或FVID_exchange()交換函數,在應用程序和驅動程序之間交換圖像緩存區。
捕獲和顯示驅動的緩存管理方法不同,如下面兩圖4-2和4-3:
圖中藍塊表示應用程序的圖像緩存區,白塊表示驅動程序的圖像緩存區。
圖像捕獲緩存區,初始時所有的緩存區都在捕獲隊列里,捕獲驅動程序以循環的方式填充每個緩存區。
當應用程序調用FVID_dequeue()函數時,將放有最新圖像數據的緩存區出隊并返回給應用程序,驅動在余下的隊列里循環填充,如(a)到(b)和(b)到(e)。
當應用程序調用FVID_queue()函數時,將一個空的緩存區交給驅動程序并加入隊列,如圖(b)到(a)和(e)到(b)。
當應用程序調用FVID_exchange()函數時,應用程序交給驅動一個空的緩存區,驅動交給應用程序放有最新圖像的緩存區,相當于同時調用FVID_dequeue()和FVID_queue()兩個函數,如圖(b)到(c)和(c)到(d)。
圖4-2
圖像顯示緩存區,初始時只有一個緩沖區用于顯示,其它緩存區等待出隊,如圖(a),黃塊表示顯示驅動隊列里準備出隊的緩存區。顯示驅動程序重復顯示一個緩存區的圖像。
當應用程序調用FVID_dequeue()函數時,從驅動獲得一個緩存區,應用程序向它填充顯示數據,同時驅動仍然顯示之前的緩存區,如圖(b)和(d)。當應用程序調用FVID_queue()函數時,應用程序給驅動程序一個準備顯示的緩存區,同時驅動將它設置為當前的緩存區,如圖(b)到(c)到(d)。
當應用程序調用FVID_exchange()函數時,應用程序給驅動一個準備顯示的緩存區,從驅動得到一個空的緩存區,相當于同時調用FVID_dequeue()和FVID_queue()函數,如圖(d)到(e)。
圖4-3
4.3 應用程序框架介紹
基于dvsdk_install_dir/example目錄下的video_preview示例程序,做為項目軟件框架
應用程序主要包含三部分:
Main函數
Video_preview線程
自添加的中斷處理函數
許多實時DSP應用都需要同時執行很多不相關的功能,這些功能一般是對外部事件的響應,這些功能就加線程。
DSP/BIOS支持4種線程:
(1)硬件中斷(HWI):頻率可達200KHz(5us)(2)軟件中斷(SWI):SWI允許HWI將一些非關鍵處理在低優先級上延遲執行,這樣可以減少在中斷服務程序中的駐留時間。
(3)任務(TSK):任務與中斷不同點在于,任務在執行過程中可以被掛起。
(4)后臺線程(IDL):空閑循環,運行那些沒有執行時間限制的函數。
上電加載完操作系統內核后,首先執行main函數。
Main函數執行完后,啟動video_preview線程,線程生命期直到執行結束后。此線程主要功能有圖像采集,處理,字符疊加,顯示。
Video_preview線程第一步調用FVID_create()函數為vp0口創建捕獲通道對象capChan,初始化vp0寄存器,為vp1口創建顯示通道對象disChan,初始化vp1寄存器。
第二步調用FVID_allocBuffer()為capChan和disChan分別分配三個圖像緩存區,然后調用FVID_queue()將三個緩存區組成隊列,同時為capChan和disChan分配edma通道,設置edma參數表。
第三步調用FVID_control()函數使能vp0,vp1口,vp0開始捕獲,vp1開始輸出顯示。
第四步調用FVID_dequeue()從capChan和disChan的緩存隊列中各出一個緩存。
第五步 進入while(1)循環,在循環中執行兩次FVID_exchange()。FVID_exchange(capChan,pImg1)捕獲新的一場圖像數據,FVID_exchange(disChan,pImg)顯示新的一幀圖像。捕獲兩次,顯示一次。
FVID_exchange(capChan,pImg1)后面添加圖像處理算法和疊加字符。
4.4添加圖像處理算法
在FVID_exchange(capChan,img)函數捕獲圖像后添加圖像處理算法。為了減少CPU訪問圖像數據時間,將圖像數據和訪問頻率高的中間數組放在L2 RAM里。DM648 L2的大小512KB,其中128KB用于cache,剩余384KB可用于應用程序存放圖像數據。
4.5 VPORT驅動調試方法
VPORT驅動采用BIOS的兩層驅動模型class/mini-driver,BIOS現在抽象定義了三種class驅動,PIP/PIO,SIO/DIO,GIO,應用程序通過這三類BIOS API接口與mini driver通訊,在一個應用工程中可以同時使用這三種API 接口。
Mini層通過CSL層訪問外圍硬件的寄存器,存儲器,中斷資源,如圖4-6。
圖4-6 Video_preview應用工程中使用了BIOS GIO接口API,如圖4-7是GIO和mini diver層包含的API,FVID函數是GIO API的宏定義,如下:
#define FVID_create(name, mode, status, optArgs, attrs)
GIO_create(name, mode, status, optArgs, attrs)#define FVID_exchange(gioChan, bufp)
GIO_submit(gioChan, FVID_EXCHANGE, bufp, NULL, NULL)#define FVID_control(gioChan, cmd, args)
GIO_control(gioChan, cmd, args)
圖4-7 VPORT的mini driver層實現工程vport_bios_dm648_drv_lib.pjt在dvsdk_install_dir/pspdriver目錄下,將其設置為video_preview_PAL.pjt的依賴工程(Dependent Projects),如圖4-8,這樣應用工程重新編譯之后就可以同時調試應用工程
和mini driver層。
圖4-8 五 flash芯片燒寫程序
在燒寫程序之前需要準備兩個文件ubl.ais和video_preview_PAL.ais,使用Dvsdk_install_dirflashutil目錄下的perl腳本命令create_ais.bat將ubl.out和video_preview_PAL.out生成對應的ais文件。
Ubl(user boot loader)是DSP啟動加載器,DSP上電后會自動將UBL代碼從 flash加載到存儲器中,開始執行UBL,ubl先初始化pll,ddr2,emif,再將video_preview_PAL工程從flash加載到存儲器中,然后開始執行應用程序。
準備好ais文件后,加載運行norwrite工程Dvsdk_install_dirflashutilDM647_8CCSDM648_NORWriter,norwriter包含四個步驟:
(1)設備初始化,pll,ddr2,emif初始化。(2)擦寫flash塊0xa000 0000-0xa002 0000,將UBL二進制文件寫入該flash塊。
(3)擦寫flash塊0xa002 0000-0xa008 0000,將video_preview工程二進制文件寫入該flash塊。
(4)擦寫flash塊0xa060 0000-0xa060 2000,將軸位寫入該flash塊
第四篇:計算機軟件開發技術 期末復習提綱(同濟大學)
考試時間:1月6日星期日16:00~17:30共計90分鐘
卷面分數:100分
知識要點
一、數據結構
1、概念部分
1)數據結構的概念及其三要素
2)數據邏輯結構的基本類型(即,線性結構、樹形結構、復雜結構、集合),數據存儲
表示的基本方法(即,順序表示、鏈式表示等)及其特點。
3)棧、隊列等線性結構的基本概念、性質、存儲方式及各自的特點
4)二叉樹的基本概念、性質、遍歷以及由遍歷序列構造出二叉樹的方法
2、程序與算法
1)快速排序(一趟)、歸并排序(一趟)算法思想及實現
2)二叉排序樹創建、查找、二分法查找算法思想及實現
注意:編程題不涉及期中考試考過的部分。
二、數據庫
1、了解數據庫設計的過程。
2、掌握概念模式設計方法:E-R圖(UM類圖)。
能根據數據庫需求分析,畫出E-R圖(UML類圖),并將其轉換成關系模式。
3、理解數據庫設計中關系模式規范化的必要性(即數據冗余導致更新異常,其根源是存在兩種不好的函數依賴),以及第一、第二、第三范式的概念及其作用。
4、掌握數據庫中常用的數據類型(char, varchar, int ,real, datetime, decimal ,money等),并
能用于數據表的字段設計。
5、掌握SQL中常用函數(聚合函數、日期函數)和常用的運算(如,比較運算,集合包
含IN|NOT IN, 字符串匹配運算LIKE等)。
6、理解關系的完整性約束:如,字段長度,空否,主鍵、外鍵約束,check約束。
7、掌握SQL語言中Select(查詢)、Insert(插入)、Update(更新)和Delete(刪除)語
句的語法格式。
三、C#與軟件開發
1、面向對象編程中類與對象、繼承與派生等基本概念
2、C#的常用控件及其屬性
3、多層次軟件架構的基本思想(類劃分:實體類、邊界類、控制類;軟件體系結構分層部署:數據存儲層、數據訪問層、數據表示層)
4、數據庫訪問關鍵步驟、嵌入式SQL語句的構造等
第五篇:軟件開發年終個人自我總結
20xx年是我進入公司的第一年,也是我的工作能力得到提高和快速發展的一年,在公司領導的指導和同事以及其它部門的支持配合下,最后在經過自己的努力,完成了自己所要完成的各項工作任務,在新的一年來臨之跡,我要對過去一年的工作進行一個全面的總結,以便在今年的工作中能夠有更明確的目標,盡量克服自己現在所存在的不足,希望能更一步為自己所在的部門增光,做出自己的貢獻。下面是我對去年工作匯總。
一、總結:
1.自身定位:在過去一年,是我進公司的第一年,也是我工作的第一年,剛開始在我對工作競爭和自身都不甚了解的情況下,在領導和同事的指導下,我感覺自己已經慢慢對人與人的競爭和自身定位有了深刻的了解,因為有了自我目標,才能感受到自己的壓力有多大!我的目標也不只是完成目前所要做的工作而已,要向其它方面拓展學習。
2.定下心來,踏踏實實:我學的是計算機專業,我的工作也是計算機方面的,以前有什么優勢,但是踏入工作崗位后才發現,自己學的只是一個基礎,只是有些方面或許比別人走的快一步,所以一切都要靠自己.自己要定得心下來學習.成功需要耐得住寂寞,不求最快,但求最好.3.團隊合作:以前在學校或許你可以靠一個取得好成績,在工作上你必須要有一個團隊,在一個部門之中,團隊合作精神顯得尤為重要.以前我做有些事都是一意孤行,但現在已經對自己改變了,多聽聽他人意見,會犯更少錯誤,會更長見識,所以要學會與同事之間的合作,做事才更有效。
4.工作情況:在公司一年,對MES大型系統有了個大概了解,對我們所要學習的MES已經可以說差不多都掌握,條碼打印機的維修和設置掌握,A4打印機大多數情況可以維護,pDA、條碼槍已掌握,電腦的系統重裝和維護已掌握,其它基本設置可以維護,對新出來的程序掌握和了解也比較快。
5.課外學習:SQL該學的已經掌握,C#學習,簡單的程序可以編寫,但有時還要依靠于網絡和朋友,需要進一步加強。但主要還是以網絡為主。
二、自身缺點
1.溝通問題:自己的溝通能力只能算一般,因為對于某些事的闡釋還是不怎么好,語言表達能力有點差,希望通過平時的交流和溝通來加強。
2.心態問題:自己對于做某些事過于著急,一心想急切完成,確反而誤時,這個問題一開始就一直出現,現在雖然已經基本克服,但也要列入缺點方面,希望以后時刻注意!
3.學習問題:對于課外學習C#這方面,我在編程時感覺困難的時候有時候就不愿去做,現在雖然已經慢慢改進上網搜資料和問問朋友,但有時候還是克服不了自己。