基于S1C33L11的JPEG圖像實時顯示和數據傳送系統(tǒng)的設計
電子論壇 您現在的位置:LQ022B8DD05 的貨源和報價 LQ022B8DD05 的相關技術信息 其他型號 深圳市硅宇電子有限公司聯系人:銷售部
電話:0755-83246984/83251574 上海丹蘭電子有限公司聯系人:SUSHAN
電話:021-53082716轉18 深圳市杰洲科技有限公司聯系人:劉小姐
電話:0755-83249867/83242395/83242392 深圳市福田區(qū)鴻鑫電子商行聯系人:陳先生
電話:0755-83797878/83798310/83798320/83797993/81630565 >>更多供應商 基于S1C33L11的JPEG圖像實時顯示和數據傳送系統(tǒng)的設計 摘 要:本文介紹了將mC/OS-II嵌入式操作系統(tǒng)移植到S1C33L11微處理器的方法,并給出了以S1C33L11為核心構成的一個JPEG圖像實時顯示和數據傳送系統(tǒng)的設計方案。
關鍵詞:S1C33L11;JPEG;嵌入式系統(tǒng);mC/OS-II 引言
近年來,隨著微處理器性能的不斷提高,嵌入式應用越來越廣泛?;谀硞€操作系統(tǒng)的實時、多任務系統(tǒng)的設計和應用成為微處理器應用的熱點。S1C33L11是由精工愛普生推出的32位高速、低功耗和低電壓微處理器。本文介紹了將mC/OS-II嵌入式操作系統(tǒng)移植到S1C33L11微處理器的方法,并給出了以S1C33L11為核心構成的JPEG圖像實時顯示和數據傳送系統(tǒng)的設計方案。mC/OS-II的移植
mC/OS-Ⅱ的源碼絕大部分是用移植性很強的ANSI C寫的,只是和微處理器硬件相關的那部分采用匯編語言,這樣把mC/OS-II移植到S1C33L11中主要是要修改與處理器有關的代碼,如:OS_CPU.H、OS_CPU_C.C 、OS_CPU_A.ASM。
OS_CPU.H文件
OS_CPU.H文件主要是定義和處理器有關的數據類型及有關中斷禁止、中斷允許、堆棧的增長方向的設置。
S1C33L11處理器所使用的編譯器中規(guī)定char為8位有符號數、short為16位有符號數、int和long都是32位有符號數。S1C33L11中堆棧的增長方向為從高地址到低地址。
OS_CPU_C.C文件
在OS_CPU_C.C文件中包含6個簡單的C函數,而和移植密切相關的是OSTaskInit()函數,它的功能是模擬中斷發(fā)生時處理器壓棧過程,把CPU的寄存器內容壓到任務堆棧中。
在S1C33L11中,堆棧是32位的,中斷的產生是先把PC壓棧然后是PSR壓棧。S1C33L11中OSTaskInit()函數模擬壓棧過程是:首先任務函數地址壓棧然后是PSR值壓棧,接著是16個32位通用寄存器(R15~R0)的壓棧模擬、AHR、ALR和SP的壓棧模擬,最后返回棧頂的指針地址。其中PSR的值為 0x00000010設為中斷使能。
OS_CPU_A.ASM文件
在OS_CPU_A.ASM文件中包含四個匯編語言的函數:OSStartHighRdy()、OSCtxSw()、OSIntCtxSw()和OSTickISR()。
OSStartHighRdy()函數由OSStart()函數調用,功能是運行優(yōu)先級最高的就緒任務。在這個函數的移植中,關鍵之一是從OSTCB HighRdy中得到所指堆棧中的SP,其二是出棧操作。由于在本移植中SP是最后壓棧的,在出棧時,應是彈出完16個通用寄存器后的SP值才是中斷返回指令執(zhí)行前的SP,因而在出棧操