2007-12-25
e三五教學卓越計畫 - 2008嵌入式系統實務訓練課程
寒假開的嵌入式系統相關課程已經公告了!請參考網頁資訊→http://www.cslab.iecs.fcu.edu.tw/esrc/news.php?id=6
至於推不推薦麻~因為是第一次開課也不知道教的程度到哪,不過我覺得只要對該領域有一點點興趣就參加吧,具備邏設基礎應該就可以聽懂大部分課程了!
2007-12-24
Linux到底怎麼唸?!
關於Linux該怎麼唸(發音)這老梗的爭論議題,似乎還是沒有個權威跳出來拍板定案。
不過各地口音本來就不盡相同,因此這也沒什麼好爭論的XD,倒是可以參考Linux創始人的念法,錄音檔請參考→http://tinyurl.com/24xjon
2007-12-23
關於C語言中的volatile修識字
詳細說明請參考網址→http://www.programmersheaven.com/articles/pathak/article1.htm
之前暑假在樓下學SoC程式設計時就遇過volatile這關鍵字,當時授課的助教只說他也不清楚這意思,要大家照抄就是了。現在實驗室也開始玩SoC發展平台,自然的有一部分就是要寫一些程式控制周邊硬體,以上都是廢話XD
由於ARM都是採用memory-map方式存取周邊裝置,因此要對周邊裝置溝通只要把資料丟進記憶體或從記憶體讀取資料就可以了,但這時聰明的編譯器反而可能變成壞了大了事的老鼠屎,原來是幫程式碼最佳化的功能反而成了困擾,請參考底下程式碼:
*ptr = 0;
while(*ptr){
*ptr = 4 ;
*ptr = 0 ;
}
這段內容很可能會被聰明的編譯器給最佳化成了下面的樣子:
*ptr = 0
while(0) {
}
從軟體角度來說,這是編譯器幫不聰明的Programmer化簡了多餘的冗碼;在硬體角度來看,可能就不見得是好事了,如果Programmer原本就是希望*ptr指到的位址訊號一直由0與4交互替換,那這時編譯器就幫倒忙了!
若要避免這窘境發生,可以在宣告*ptr變數時,加上volatile修識字讓每次的存取都乖乖的照作,並且是到記憶體進行讀取,而不使用暫存器。
2007-12-21
Dev-C++在Vista環境下無法編譯的問題
Dev-C++在Vista系統下似乎都會遇到無法編譯的問題。詳細解法請參考網頁→http://msml92.net/blog/LD/archives/229
感謝金剛學弟熱情提供資訊!
訂閱:
文章 (Atom)