娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年09月08日(星期日)

2021年09月08日 | s3c2440學習之路-001 匯編點亮led

發布者:Meilin8888 來源: eefocus關鍵字:s3c2440  led 手機看文章 掃描二維碼
隨時隨地手機看文章

1. 原理分析

2. 主要流程

3. 源碼

4. dis文件分析


硬件平臺:jz2440

軟件平臺:Ubuntu16.04 arm-linux-gcc-3.4.5


1.原理分析

點亮LED最簡單的方法就是給二極管正負極接上電,中間串一個電阻

點亮Led

圖1 點亮LED


由于2440芯片Pin腳的驅動能力不夠,所以無法直接用Pin腳來點亮LED,只能把Pin腳連接到LED的負極,充當開關的作用。 

當Pin腳為高電平時,LED兩端無電壓差,LED滅

當Pin腳為低電平時,LED兩端有電壓差,LED亮

2440與LED相連

圖2 2440連接LED


2.主要流程

2.1原理圖介紹

這里只介紹LED1, LED1負極與2440的GPF4相連,中間串聯1K電阻, LED1正極接3.3V,

在這里插入圖片描述

圖3 LED1對應的Pin腳

在這里插入圖片描述

圖4 LED1的接法


2.2 主要寄存器

主要使用到的寄存器只有2個

GPFCON,控制寄存器,地址為0x56000050

GPFDAT,數據寄存器, 地址為0x56000054

在這里插入圖片描述

圖5 主要寄存器


2.3 軟件流程

主要流程很簡單:

1)將GPF4配置成輸出模式

2)將GPF4輸出低電平,即可點亮LED1


3源碼

3.1匯編源碼,文件名為 led_on.s

.text


.global _start

_start:



/* 1, set output mode

 *  GPFCON [9:8] 01

 *  0x56000050

 */

    ldr r1, =0x56000050

    ldr r0, =0x100

    str r0, [r1]


/* 2, set value to 0

 * GPFDAT [4] 0

 * 0x56000054

 */

   ldr r1, =0x56000054

   ldr r0, =0

   str r0, [r1]


 loop:

    b loop


3.2 Makefile

all:

    arm-linux-gcc -c -o led_on.o led_on.s

    arm-linux-ld -Ttext 0 led_on.o -o led_on.elf

    arm-linux-objcopy -O binary -S led_on.elf led_on.bin

clean:

    rm *.elf *.o *.bin -rf


4dis文件分析

執行Makefile后,會生產led_on.elf文件。再通過  arm-linux-objdump -D led_on.elf > led_on.dis 生成dis文件


產生的dis文件內容如下


led_on.elf:     file format elf32-littlearm


Disassembly of section .text:


00000000 <_start>:

   0:   e59f1014    ldr r1, [pc, #20]   ; 1c <.text+0x1c>

   4:   e3a00c01    mov r0, #256    ; 0x100

   8:   e5810000    str r0, [r1]

   c:   e59f100c    ldr r1, [pc, #12]   ; 20 <.text+0x20>

  10:   e3a00000    mov r0, #0  ; 0x0

  14:   e5810000    str r0, [r1]


00000018 :

  18:   eafffffe    b   18

  1c:   56000050    undefined

  20:   56000054    undefined


因為ARM是流水線處理,分三步:取指,譯碼,執行。當執行到某條命令時,PC的數值已經跳到了當前命令地址+8的位置。

下面是對dis文件的分析


分析反匯編代碼

led_on.elf:     file format elf32-littlearm


Disassembly of section .text:

  地址     機器碼       匯編指令

00000000 <_start>:

            這里是pc+20的值, pc = 當前地址+8 = 0 + 8

            [pc, #20] =  [0 + 8 + 20]  = 28 = 0x1c

            0x1c 地址的數值是 56000050

            r1 = 56000050

   0:   e59f1014    ldr r1, [pc, #20]   ; 1c <.text+0x1c>

            r0 = 0x100

   4:   e3a00c01    mov r0, #256    ; 0x100

            56000050 地址的值 = 0x100

   8:   e5810000    str r0, [r1]

            [pc, #12] = [ 0xc + 8 + 12] =  32 = 0x20

            0x20 地址的數值是56000054

            r1 = 56000054

   c:   e59f100c    ldr r1, [pc, #12]   ; 20 <.text+0x20>

            r0 = 0

  10:   e3a00000    mov r0, #0  ; 0x0

            56000064地址的值=0

  14:   e5810000    str r0, [r1]


00000018 :

地址     數值        匯編指令

  18:   eafffffe    b   18

  1c:   56000050    undefined

  20:   56000054    undefined

關鍵字:s3c2440  led 引用地址:s3c2440學習之路-001 匯編點亮led

上一篇:S3C2440 Boot Loader引導代碼功能簡述
下一篇:s3c2440學習之路-012-0 異常中斷基礎知識

推薦閱讀

王傳福正把汽車駛入更瘋狂的賽道。?比亞迪(42.600, 0.10, 0.24%)雖然是全球新能源汽車銷量冠軍,但遭遇日益增多的強勁競爭對手圍攻而面臨守擂壓力陡升。?9月5日,比亞迪舉行全球開發者大會,希望作為智能汽車硬件標準平臺提供商,開放汽車所有的傳感系統和執行系統。比亞迪董事長兼總裁王傳福稱,這是汽車史上的第一次開發者大會,比亞迪采取這樣的策...
隨著方舟編譯器在8月31日正式開源,這一獨家技術現在變成了開放性技術,已經有45款第三方應用開始使用方舟編譯器。根據官方介紹,方舟編譯器提供了全新的系統及應用的編譯和運行機制,從動態編譯變為靜態編譯,就是直接將高級語言直接編譯成機器碼,徹底消除了虛擬機動態編譯的額外開銷,實現了開發和運行效率的兼容并舉。從實例來看,方舟編譯器可讓系統...
據媒體報道,近日,投資160億元的長沙三安第三代半導體項目,首批施工單體已全面進入主體施工階段,第二批施工單體將于9月底完成基礎施工,春節前完成所有單體封頂。 根據此前報道,該項目于7月20日正式開工,作為長沙17個制造業標志性重點項目之一,主要建設具有自主知識產權的襯底(碳化硅)、外延、芯片及封裝產業生產基地,項目建成達產后將形成超...
英特爾子公司Mobileye今天發布了一款六座自動駕駛電動汽車,并宣布將于2022年開始在特拉維夫和慕尼黑推出采用該款自動駕駛汽車(AV)的商用自動駕駛出租車服務,該服務將采用MoovitAV的服務品牌開展運營。該款全電動Mobileye自動駕駛汽車搭載了Mobileye的AVKIT58電子控制單元(ECU),該套ECU采用了Mobileye Drive?全棧自動駕駛系統和8個EyeQ? 5系統集...

史海拾趣

小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 陇川县| 永仁县| 兴化市| 日照市| 辰溪县| 大庆市| 尼木县| 桐城市| 灵璧县| 扶风县| 张家界市| 武乡县| 武清区| 都昌县| 威远县| 基隆市| 瑞丽市| 拜泉县| 南昌县| 衡阳市| 加查县| 喀喇| 贡觉县| 宜阳县| 将乐县| 博兴县| 沾化县| 张家口市| 博客| 策勒县| 颍上县| 正镶白旗| 西峡县| 涿鹿县| 长武县| 崇州市| 礼泉县| 喀喇| 徐水县| 太谷县| 共和县|