<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于IAR集成開發(fā)平臺(tái)的ARM程序設(shè)計(jì)方法

          基于IAR集成開發(fā)平臺(tái)的ARM程序設(shè)計(jì)方法

          作者: 時(shí)間:2012-10-29 來源:網(wǎng)絡(luò) 收藏

            引言

            在項(xiàng)目開發(fā),特別是中小型項(xiàng)目開發(fā)中,為了降低開發(fā)難度和開發(fā)成本,常選擇不加載操作系統(tǒng)的方案。本文選擇嵌入式開發(fā)平臺(tái),在不加載操作系統(tǒng)的前提下,使用C語言(約95%)和匯編語言(約5%),對(duì)以ATMEL公司的AT91M40800芯片(ARM7TDMI內(nèi)核)為主芯片的工業(yè)控制系統(tǒng)進(jìn)行了軟件開發(fā)。


          圖1 系統(tǒng)硬件結(jié)構(gòu)



          圖2 系統(tǒng)軟件框架

            硬件構(gòu)架

            系統(tǒng)的整體硬件框架如圖1所示,該系統(tǒng)基本包括了目前工業(yè)控制系統(tǒng)所需要的各種功能,其軟件開發(fā)十分具有代表性。

            集成開發(fā)環(huán)境

            開發(fā)平臺(tái)是瑞典IAR公司開發(fā)的基于最新C/C++編譯和調(diào)試技術(shù)的綜合開發(fā)平臺(tái)。該平臺(tái)是一套完整的集成開發(fā)環(huán)境,可以完成創(chuàng)建工程、編輯文件、編譯、匯編、連接和調(diào)試應(yīng)用程序的所有工作;同一個(gè)工作空間可放多個(gè)工程;可針對(duì)單個(gè)源文件,一組源文件或者全部源文件進(jìn)行配置;提供工程模板,支持幾乎所有ARM內(nèi)核;提供ANSI標(biāo)準(zhǔn)C編譯器、ISO/ANSI C 和嵌入式C++庫;支持包括Wiggler JTAG接口等多種JTAG;提供了多種代碼優(yōu)化方式。

            IAR生成的目標(biāo)代碼分為調(diào)試版本(Debug)和發(fā)行版本(Release)兩種。其中Debug目標(biāo)代碼的地址定義在SRAM中,將被下載到SRAM中執(zhí)行;Release目標(biāo)代碼的地址定義在Flash中,最終大部分在Flash中執(zhí)行。在程序編譯之前需要根據(jù)模板編寫Debug.xcl和Release.xcl這兩個(gè)內(nèi)存分配文件。在IAR提供的工程模板基礎(chǔ)上,需要修改的地方有:

            -DROMSTART=2000000
            -DROMEND=200FFFF
            //ROM的地址段
            -Z(CODE)INTVEC=00-3F
            -DRAMSTART=2010000
            -DRAMEND=207FFFF
            //RAM的地址段
            -D_USR_STACK_SIZE=20000
            //棧的大小
            -D_SVC_STACK_SIZE=50
            -D_FIQ_STACK_SIZE=100
            -D_ABT_STACK_SIZE=50
            -D_UND_STACK_SIZE=50
            -D_IRQ_STACK_SIZE=1000
            -D_HEAP_SIZE=2000
            //堆的大小

            啟動(dòng)代碼設(shè)計(jì)

            通常C語言是從main函數(shù)開始執(zhí)行的,在沒有操作系統(tǒng)的情況下,對(duì)main函數(shù)的初始化工作由啟動(dòng)代碼來完成,包括硬件初始化、堆棧初始化、各種寄存器的初始化等。

            在完成所有的初始化工作以后,用一條跳轉(zhuǎn)指令進(jìn)入C程序的main函數(shù),程序的控制權(quán)轉(zhuǎn)移到C程序。


          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();