新聞中心

EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于ARM的2M測(cè)試系統(tǒng)

基于ARM的2M測(cè)試系統(tǒng)

作者:桑占良 談世哲 時(shí)間:2008-05-23 來(lái)源:微計(jì)算機(jī)信息 收藏

  3系統(tǒng)軟件設(shè)計(jì)

本文引用地址:http://m.butianyuan.cn/article/82975.htm

  軟件部分主要由啟動(dòng)代碼的設(shè)計(jì)和應(yīng)用程序的設(shè)計(jì),基于是復(fù)雜的片上系統(tǒng)(SOC),這種復(fù)雜系統(tǒng)里的多數(shù)硬件模塊都是可配置的,需要由軟件來(lái)設(shè)置其需要的工作狀態(tài)。因此在用戶的應(yīng)用程序啟動(dòng)之前,需要有專(zhuān)門(mén)的一段啟動(dòng)代碼來(lái)完成對(duì)系統(tǒng)的初始化。由于這類(lèi)代碼直接面對(duì)處理器內(nèi)核和硬件控制器進(jìn)行編程,一般都是用匯編語(yǔ)言寫(xiě)的。啟動(dòng)代碼就是完成各種初始化工作,并引導(dǎo)進(jìn)入C程序。

  3.1 bootloader設(shè)計(jì)

  啟動(dòng)代碼[5]的主要實(shí)現(xiàn)功能包括以下部分:

  (1)設(shè)置程序入口指針;

  (2)設(shè)置中斷向量表;

  (3)初始化存儲(chǔ)器系統(tǒng);

  (4)初始化CPU各種模式的堆棧和寄存器;

  (5)初始化目標(biāo)系統(tǒng)中要使用的各種片內(nèi)外設(shè);

  (6)初始化用戶程序執(zhí)行環(huán)境;

  (7)引導(dǎo)主應(yīng)用程

  具體實(shí)現(xiàn)的部分代碼如下:                       

  AERA Init, CODE,READONLY

  ENTRY             ;定義入口點(diǎn)

  B SYS_RST_HANDLER ;系統(tǒng)上電復(fù)位操作

  B UDF_INS_HANDLER ;處理未定義中斷模式

  B SWI_SVC_HANDLER ;處理軟件中斷

  B INS_ABT_HANDLER

  B DAT_ABT_HANDLER ;處理中止異常

  B .

  B IRQ_SVC_HANDLER ;處理IRQ 中斷

  B FIQ_SVC_HANDLER ;處理FIQ中斷

  SYS_RST_HANDLER

  MSR R0, CPSR      ;禁止中斷

  ORR R0,R0,#0XC0

  MSR CPSR_C,R0

  BL initcpu        ;調(diào)整PLL和時(shí)鐘

  BL initmem        ;初始化存儲(chǔ)器

  BL initstack      ;設(shè)置堆棧

  …                   …

  …                   …

  …                   …                                             

  B main           ; 跳轉(zhuǎn)到主應(yīng)用程序        

  3.2應(yīng)用程序的設(shè)計(jì)

  應(yīng)用程序采用C語(yǔ)言編寫(xiě),由其實(shí)現(xiàn)本系統(tǒng)中所需的各種功能。根據(jù)系統(tǒng)功能需求,軟件劃分為以下模塊:液晶顯示模塊、設(shè)置模塊、指標(biāo)計(jì)算模塊等部分。軟件設(shè)計(jì)思想是利用S3C2410的中斷控制整個(gè)軟件的流程。共使用4個(gè)硬件中斷來(lái)完成系統(tǒng)的功能:一個(gè)內(nèi)部硬件定時(shí)中斷,3個(gè)外部硬件中斷(鍵盤(pán)中斷、串口中斷、E1中斷)。主程序流程圖如圖2所示。

       



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉