淘豆網
下載此文檔放大查看縮小查看   1/9
0/100
您的瀏覽器不支持進度條
更多>>該用戶其他文檔
下載所得到的文件列表
使用C語言編寫高效嵌入式軟件的教學探討.doc
文檔介紹:
使用C語言編寫高效嵌入式軟件的教學探討.doc使用C語言編寫高效嵌入式軟件的教學探討文章編號:1672-5913(2008)18-0123-02 摘要:“嵌入式應用技術”課程的一個教學難點是培養學生編寫高效嵌入式C語言程序的能力,本文從教學角度講述了如何讓學生理解嵌入式軟件時空要求的苛刻性、編寫高質量代碼所需的基礎知識以及C語言代碼的常用優化方法。關鍵詞:嵌入式軟件;C語言;代碼優化中圖分類號:G642文獻標識碼:B 隨著嵌入式係統在汽車電子、工業控製、智能家居等領域的廣泛使用,大專院校的計算機、電子、通信、自動化控製等理工科專業都開設了“嵌入式應用技術”課程,編寫高效的嵌入式C語言程序是嵌入式基礎課程學習的一個重要環節,也是一個教學難點。嵌入式係統受其使用的硬件以及運行環境的限製,對程序運行的空間和時間要求非常嚴格,需要對嵌入式應用程序進行性能優化,以滿足嵌入式應用的性能需求。本文結合作者多年實際嵌入式係統開發經驗及嵌入式應用技術課程教學體會,探討如何培養學生編寫高效嵌入式軟件的能力。 1培養學生編寫高效嵌入式軟件的意識嵌入式係統是以應用為中心,以計算機技術為基礎,並且軟硬件可裁剪,適用於應用係統對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機係統,其核心是嵌入式微處理器。嵌入式係統是一種性價比很高的應用係統,為了提高性價比,一方麵在硬件上要進行合理配置,另一方麵需要提高軟件的效率,充分發揮硬件的特性,這兩個方麵是相輔相成的。但是剛剛接觸嵌入式係統的學生會缺乏這方麵的認識,他們往往習慣於PC機的程序設計,很少考慮程序的優化。嵌入式係統的運算速度、內存容量和PC機相比,差距太大。例如作者在實現一款方位測定係統時,選用Freescale的MC908MR8作為主控芯片,其最高總線速度為8MHZ、內存為256字節、程序存儲空間才8K。麵對這種有限的硬件資源,要實現高效,一定要區別於常規的PC機編程,要合理使用有限的硬件資源,對每一個內存空間的分配、每一條程序語句以及每一個算法都要進行仔細斟酌。為了提高學生對於嵌入式軟件的認識,作者在“嵌入式應用技術”課程教學中特別設計了一些教學案例。例如,假定16位整型數值X和Y是直角三角形的兩邊,編程求解Y邊所對應角的度數(精確到1度,基於MC908MR8芯片)。當時學生很納悶,這種問題太簡單了,一條C語句就可以實現了: JiaoDu=atan(Y/X)*180/PI; 的確,通過調用內部函數atan可以實現上述功能,但這種方法在低端嵌入式軟件中是一種很糟糕的方法。在MT-IDEForFreescaleHC08的集成開發環境中,通過查看list列表文件,這條語句編譯後,需要占用8038~8B04,2764字節的程序存儲空間。假如將這條語句用在上述的方位測定係統中,一條語句就要占MR8三分之一的存儲空間,2764/(8*1024)≈0.33,這是一件很可怕的事情。再仔細查看list文件,內部函數atan在實現時使用浮點運算,通過泰勒展開式來實現的,而通常的8位、16位微處理器沒有協處理器,對於浮點運算的處理效率是非常低的。因此,從嵌入式軟件的角度來審視這條語句,它是一個不好的選擇。假如采用查表的思想,將atan(χ)*180/PI預先計算出來,建一張表,根據χ值的不同,查表就可以很快地計算出角度。通過這種實例,學生體 內容來自淘豆網www.pxgshyyjh.com轉載請標明出處.