色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          "); //-->

          博客專欄

          EEPW首頁 > 博客 > 迅為龍芯2K1000開發(fā)板通過匯編控制GPIO

          迅為龍芯2K1000開發(fā)板通過匯編控制GPIO

          發(fā)布人:紅李亞 時間:2023-09-26 來源:工程師 發(fā)布文章
          上一小節(jié),我們使用了 語言控制了 gpio,這一小節(jié)我們來看一下如何使用匯編來控制 gpio 呢?有的
          同學可能會有疑問了,既然我們可以使用 語言來控制 gpio,為什么我們還要使用更底層的匯編語言呢,
          如果我們要使用 語言,是不是需要等待 語言環(huán)境建立起來才可以使用呢,那他是不是就要比匯編稍微
          的慢一些呢,如果我們想讓他上電立馬就確定 gpio 管腳的電平的狀態(tài),使用匯編會更好些。
          我們打開 Targets/LS2K/ls2k/start.S 下的 start.S 文件,我們在 9.4.2 小節(jié)里面已經(jīng)確定了他的位置,這里
          就不在贅述了。
          然后我們在第 487 行輸入以下代碼,同樣,這里還是用 gpio0 給大家舉例
          /*
          *設置使用 GPIO 的方向為輸出
          */
          li v0, 0xbfe10500
          ld v1, (v0)
          dli a0, (1<<0)
          //gpio0
          or v1, a0
          xor v1, a0
          sd v1, (v0)
          /*
          *找到 GPIO 輸出數(shù)據(jù)寄存器
          */
          //0x10(v0)這種寫法就是給 v0 地址偏移 0x10,v0 地址是 0xbfe10500,偏移 0x10 就是 0xbfe10510,即
          輸出數(shù)據(jù)寄存器
          ld v1, 0x10(v0)
          /*
          *給數(shù)據(jù)寄存器寫 1 輸出高電平
          */
          or v1, a0
          sd v1, 0x10(v0) //on
          /*
          *延遲
          */
          dli a2,0xffff
          //delay
          1:
          subu a2, 0x1
          nop
          bgtz a2, 1b
          /*
          *給數(shù)據(jù)寄存器寫 0 輸出低電平
          */
          or v1, a0
          xor v1, a0
          //off
          sd v1, 0x10(v0)
          /*
          *延遲
          */
          dli a2,0xffff
          //delay
          2:
          subu a2, 0x1
          nop
          bgtz a2, 2b
          如下圖所示:


          *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



          關(guān)鍵詞: 開發(fā)板

          相關(guān)推薦

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

          關(guān)閉