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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > GNU ARM匯編--(八)s3c2440的watchdog

          GNU ARM匯編--(八)s3c2440的watchdog

          作者: 時間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
        1. msrcpsr_c,#0xd2@進入中斷模式
        2. ldrsp,=3072@中斷模式的棧指針定義
        3. msrcpsr_c,#0xd3@進入系統(tǒng)模式
        4. ldrsp,=4096@設(shè)置系統(tǒng)模式的棧指針
        5. @--------------------------------------------
        6. ldrr0,=GPBUP
        7. ldrr1,=0x03f0
        8. strr1,[r0]
        9. ldrr0,=GPFCON
        10. ldrr1,=0x2ea@0x2
        11. strr1,[r0]
        12. ldrr0,=EXTINT0
        13. @ldrr1,=0x8f888@0x0@0x8f888@~(7|(7<<4)|(7<<8)|(7<<16))//低電平觸發(fā)中斷
        14. ldrr1,=0xafaaa@0x0@0x8f888//下降沿觸發(fā)中斷
        15. strr1,[r0]
        16. ldrr0,=EINTPEND
        17. ldrr1,=0xf0@0b10000
        18. strr1,[r0]
        19. ldrr0,=EINTMASK
        20. ldrr1,=0x00@0b00000
        21. strr1,[r0]
        22. ldrr0,=SRCPND
        23. ldrr1,=0x3ff@0x1@0b11111
        24. strr1,[r0]
        25. ldrr0,=SUBSRCPND
        26. ldrr1,=0x1<<13
        27. strr1,[r0]
        28. ldrr0,=INTPND
        29. ldrr1,=0x3ff@0x1@0b11111
        30. strr1,[r0]
        31. ldrr0,=INTSUBMSK
        32. ldrr1,=0x0<<13
        33. strr1,[r0]
        34. ldrr0,=INTMSK
        35. ldrr1,=0xfffff000@0b00000
        36. strr1,[r0]
        37. MRSr1,cpsr
        38. BICr1,r1,#0x80
        39. MSRcpsr_c,r1
        40. blmain
        41. irq:
        42. sublr,lr,#4
        43. stmfdsp!,{r0-r12,lr}
        44. blirq_isr
        45. ldmfdsp!,{r0-r12,pc}^
        46. irq_isr:
        47. ldrr2,=GPBDAT
        48. ldrr1,=0x0e0
        49. strr1,[r2]
        50. ldrr0,=EINTPEND
        51. ldrr1,=0xf0
        52. strr1,[r0]
        53. ldrr0,=SRCPND
        54. ldrr1,=0x3ff@0b11111
        55. strr1,[r0]
        56. ldrr0,=SUBSRCPND
        57. ldrr1,=0x1<<13
        58. strr1,[r0]
        59. ldrr0,=INTPND
        60. ldrr1,=0x3ff@0b11111
        61. strr1,[r0]
        62. movpc,lr
        63. delay:
        64. ldrr3,=0xffffff
        65. delay1:
        66. subr3,r3,#1
        67. cmpr3,#0x0
        68. bnedelay1
        69. movpc,lr
        70. clock_setup:
        71. ldrr0,=LOCKTIME
        72. ldrr1,=0xffffffff
        73. strr1,[r0]
        74. ldrr0,=CLKDIVN
        75. ldrr1,=(DIVN_UPLL<<3)|(HDIVN<<1)|(PDIVN<<0)
        76. strr1,[r0]
        77. ldrr0,=UPLLCON
        78. ldrr1,=(U_MDIV<<12)|(U_PDIV<<4)|(U_SDIV<<0)@Fin=12MUPLL=48M
        79. strr1,[r0]
        80. nop
        81. nop
        82. nop
        83. nop
        84. nop
        85. nop
        86. nop
        87. ldrr0,=MPLLCON
        88. ldrr1,=(M_MDIV<<12)|(M_PDIV<<4)|(M_SDIV<<0)@Fin=12MFCLK=400M
        89. strr1,[r0]
        90. movpc,lr
        91. main:
        92. ldrr0,=WTDAT
        93. ldrr1,=Count_reload
        94. strr1,[r0]
        95. ldrr0,=WTCNT
        96. ldrr1,=Count
        97. strr1,[r0]
        98. ldrr0,=WTCON
        99. ldrr1,=(Pre_scaler<<8)|(wd_timer<<5)|(clock_select<<3)|(int_gen<<2)|(reset_enable)
        100. strr1,[r0]
        101. ledloop:
        102. ldrr1,=0x1c0
        103. strr1,[r2]
        104. bldelay
        105. ldrr1,=0x1a0
        106. strr1,[r2]
        107. bldelay
        108. ldrr1,=0x160
        109. strr1,[r2]
        110. bldelay
        111. ldrr1,=0x0e0
        112. strr1,[r2]
        113. bldelay
        114. bledloop
        115. undefined_instruction:
        116. nop
        117. software_interrupt:
        118. nop
        119. prefetch_abort:
        120. nop
        121. data_abort:
        122. nop
        123. not_used:
        124. nop
        125. fiq:
        126. nop

        127. 程序?qū)崿F(xiàn)的是:一個正常的流水燈,定時器每隔2s觸發(fā)一次中斷,中斷處理中點亮第四個LED.

          本文引用地址:http://www.ex-cimer.com/article/201611/321723.htm

          稍微該一下上面的代碼:

          .equ int_gen, 0 @關(guān)中斷
          .equ reset_enable, 1 @打開重啟信號

          打開重啟信號,則可以看到每隔2s系統(tǒng)就重啟一次.

          如果在循環(huán)中加入:

          ldr r0, =WTCNT @喂狗
          ldr r1, =Count
          str r1, [r0]

          那么,這又是一個標(biāo)準(zhǔn)的流水燈了.而且是有watchdog保護的流水燈了.


          上一頁 1 2 下一頁

          關(guān)鍵詞: ARM匯編s3c2440watchdo

          評論


          相關(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); })();