星期二:系統(tǒng)需求分析,系統(tǒng)的總體設計,硬件設計。
星期三:完成系統(tǒng)的軟件設計。包括,各部分的流程圖。類存分配,程序算法。編碼
星期四:編碼。
星期五:調(diào)試。
失敗的總結:程序的總體設計上有點小問題。說實話,自己還是不太熟悉從單片機的角度去看程序。本次總結的原因也是為了培養(yǎng)從嵌入式系統(tǒng)的角度去設計程序。
1,在設計階段,并沒有做詳細的驗證,導致程序的總體設計,有效的缺陷。
2,采用中斷控制程序的模式轉(zhuǎn)換,應為中斷存在RETI指令返回。這樣需要修改堆棧,達到程序的轉(zhuǎn)換,這要求對中斷程序的壓棧,有詳細的了解。對中斷程序中的寄存器需要設計與規(guī)劃,而這一部分,在設計階段并沒有考慮到,這導致程序中存在很多隱藏的的bug。
3,沒有避免中斷程序簡單設計的原則,而從性能方面考慮實現(xiàn)。過分追求所謂的完美,所謂的完美并不是完美,而是心中的感覺。系統(tǒng)設計階段的首次感覺 很重要,他往往決定程序的發(fā)展走向。也是這中原因,導致總體系統(tǒng)設計簡單,而實現(xiàn)難度大。需要用到不常用的技術。尊重常用的設計方式,很重要。
4,也是最重要的,在流程圖到程序的具體映射上沒有規(guī)劃好。個人覺得從數(shù)據(jù)流程到代碼的映射上應該還要經(jīng)過一層抽象。從單片機的角度去考慮。
5,在軟件設計完成后應該分析設計,模擬設計。
結論:
1,尊重成熟的設計方式。
2,系統(tǒng)設計后應該做較為詳細的模擬。
3,在代碼的映射中要經(jīng)過一層抽象,從單片機的角度思考問題,規(guī)劃工作區(qū),寄存器。分析每一層中的特性,做詳細設計。比如說,對別人的子程序的調(diào)用處理的特性。處理入口,處理出口恢復。如果大規(guī)模的調(diào)用,可以設置專門的工作區(qū)來保護。
4,面向?qū)ο蟮某绦蛟O計,面向過程的設計方式,和面向硬件的設計有所不同。面向?qū)ο笾匾氖菍ο到y(tǒng)總體功能的抽象,面向過程重要的是把握系統(tǒng)的具體過程。面向硬件要在面向過程后,對具體硬件需要一步對資源的抽象,然后再到具體實現(xiàn)。
5,抽象離不開時序。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |