Share tips about Lab-7

19 views
Skip to first unread message

Akasha00

unread,
Dec 20, 2012, 2:27:07 AM12/20/12
to embedd...@googlegroups.com
如題,
先說這不是我突發奇想PO的...(是根據jserv學長的指示)。

我最近做Lab-7有點小成果,在這邊分享一點心得給大家參考,

根據題目本身給的提示"適度修改 Makefile 與 OpenOCD 設定檔......",
我是盡量朝這方向去調整,目前我的做法中,OpenOCD的改動最小(wiki有提示),
Makefile的部分呢,套句學長常說的一句話,實際上需要調整的部分不是很多。
我感覺要完成這個題目的需求是 : 善用之前Lab學到的經驗。

而做這個題目的重點只有兩個字 : 驗證

做這個題目特別的地方是,Code execution是在板子上,以這個題目的factorial code來說,盯著板子看是看不到結果的,
我們需要Debug的工具協助我們觀察,確定程式是否有正確執行,
這個工作要先做好,這樣semihosting才有機會看到結果(程式無法執行的話,是不會有semihosting的結果吧),
套一句學長說的話,屍體也要活過才能叫屍體吧。(程式能不能動也是需要經過驗證,不能動的時候,至少要驗證為什麼不能動,確定原因)

然後我觀察的方法是,用Lab-7本身的範例download.elf(恩...,各位沒看錯),這個範例超級霹靂無敵好用,
我們用這個範例code燒進去後,我想大家第一個想法是 : 這個code可以work(我一開始也是這樣想,因為看得到LED燈會亮),
但如果把factorial放進去後,什麼都是不確定的,因為範例code有硬體上的行為可以驗證,而factorial沒有,
沒有硬體的行為可供驗證,那就用軟體的方式吧,就是前面提到的Debug工具(使用方法請參閱之前Lab)。

上述的工作如果做到了,差不多就滿足往下做semihosting的條件,
這時候再加入之前學長提過semihosting,我想應該可以看到畫面傳來一陣感動(在show出結果的那一刻,我真的是這樣想的)。
在測試semihosting的部分,建議大家先用簡單一點的工作去驗證(我當時是嘗試輸出字串"ab")。


因為標題是share tips,我不知道怎樣講到什麼程度的說,
如果要我抓一些關鍵字出來,我想我應該會列以下這幾項 :
1. 驗證 : 盡量把各種狀況掌握在手中。
2. 硬體/軟體 : 軟體跟硬體的區別要想清楚。
3. Debug工具 : 善用工具與應用。

恩...,請鞭小力一點。

謝謝各位。






Reply all
Reply to author
Forward
0 new messages