新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于IAR集成開發平臺的ARM程序設計方法

        基于IAR集成開發平臺的ARM程序設計方法

        作者: 時間:2012-10-29 來源:網絡 收藏

          引言

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


        圖1 系統硬件結構



        圖2 系統軟件框架

          硬件構架

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

          集成開發環境

          開發平臺是瑞典IAR公司開發的基于最新C/C++編譯和調試技術的綜合開發平臺。該平臺是一套完整的集成開發環境,可以完成創建工程、編輯文件、編譯、匯編、連接和調試應用程序的所有工作;同一個工作空間可放多個工程;可針對單個源文件,一組源文件或者全部源文件進行配置;提供工程模板,支持幾乎所有ARM內核;提供ANSI標準C編譯器、ISO/ANSI C 和嵌入式C++庫;支持包括Wiggler JTAG接口等多種JTAG;提供了多種代碼優化方式。

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

          -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
          //堆的大小

          啟動代碼設計

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

          在完成所有的初始化工作以后,用一條跳轉指令進入C程序的main函數,程序的控制權轉移到C程序。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 汤阴县| 天柱县| 白沙| 盐池县| 禹城市| 开原市| 达尔| 镇巴县| 格尔木市| 墨竹工卡县| 渑池县| 周至县| 西乌珠穆沁旗| 巴里| 常州市| 靖江市| 喀什市| 裕民县| 阳原县| 通州区| 河间市| 澄城县| 谷城县| 沽源县| 若尔盖县| 汪清县| 泰和县| 九江县| 塘沽区| 钦州市| 松阳县| 江门市| 双江| 昌图县| 县级市| 乌兰浩特市| 双辽市| 陆丰市| 达日县| 平定县| 神池县|