• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 8051、ARM和DSP指令周期的測試與分析

    8051、ARM和DSP指令周期的測試與分析

    ——
    作者:華中科技大學 李達義 時間:2007-12-10 來源:單片機與嵌入式系統應用 收藏

    摘要 在實時嵌入式控制系統中,指令周期對系統的性能有至關重要的影響。介紹幾種最常用的微控制器的工作機制,采用一段循環語句對這幾種微控制器的指令周期進行測試,并進行分析比較。分析結論對系統控制器的選擇有一定的指導作用。

    關鍵詞

      在實時控制系統中,選擇微控制器的指標時最重要的是計算速度的問題。指令周期是反映計算速度的一個重要指標,為此本文對三種最具代表性的微控制器(單片機、ARM7TDMI核的型單片機和)的指令周期進行了分析和測試。為了能觀察到指令周期,將三種控制器的GPIO口設置為數字輸出口,并采用循環不斷地置位和清零,通過觀察GPIO口的波形變化得到整個循環的周期。為了將整個循環的周期與具體的每一條指令的指令周期對應起來,通過C語言源程序得到匯編語言指令來計算每一條匯編語言的指令周期。

    工作機制及指令周期的測試

      AT89S51單片機的時鐘采用內部方式,時鐘發生器對振蕩脈沖進行2分頻。由于時鐘周期為振蕩周期的兩倍(時鐘周期=振蕩周期P1+振蕩周期P2),而1個機器周期含有6個時鐘,因此1個機器周期包括12個晶振的振蕩周期。取石英晶振的振蕩頻率為11.059 2 MHz,則單片機的機器周期為12/11.059 2=1.085 1 μs。51系列單片機的指令周期一般含1~4個機器周期,多數指令為單周期指令,有2周期和4周期指令。

      為了觀察指令周期,對單片機的P1口的最低位進行循環置位操作和清除操作。源程序如下:

    #include<reg51.h>
    main() {
      while(1) {
        P1=0x01;
        P1=0x00;
      }
    }

      采用KEIL uVISION2進行編譯、鏈接,生成可執行文件。當調用該集成環境中的Debug時,可以得到上述源程序混合模式的反匯編代碼:

        2:main()
        3: {
        4:while(1)
        5:{
        6:P1=0x01;
      0x000F759001MOVP1(0x90),#0x01
        7:P1=0x00;
      0x0012 E4CLRA
      0x0013 F590MOVP1(0x90),A
        8:}
      0x001580EDSJMPmain (C:0003)

      其中斜體的代碼為C源程序,正體的代碼為斜體C源程序對應的匯編語言代碼。每行匯編代碼的第1列為該代碼在存儲器中的位置,第2列為機器碼,后面是編譯、鏈接后的匯編語言代碼。所有指令共占用6個機器周期(其中“MOV  P1(0x90),#0x01”占用2個機器周期,“CLR  A”和“MOV  P1(0x90),A”各占用1個機器周期,最后一個跳轉指令占用2個機器周期),則總的循環周期為6



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 贵定县| 广西| 家居| 古田县| 海宁市| 锡林郭勒盟| 黄龙县| 攀枝花市| 汾阳市| 兴山县| 交口县| 陆川县| 彰武县| 谢通门县| 犍为县| 甘孜| 永昌县| 德清县| 彭山县| 五原县| 那曲县| 峨边| 连云港市| 灵川县| 广水市| 长阳| 闻喜县| 长垣县| 宝丰县| 枣强县| 阿拉善盟| 确山县| 新乡县| 库伦旗| 达州市| 浦北县| 乌鲁木齐市| 团风县| 息烽县| 永靖县| 石景山区|