日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【ARM】Tiny4412裸板编程之LED(二)

發布時間:2024/4/24 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【ARM】Tiny4412裸板编程之LED(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

00. 目錄

文章目錄

    • 00. 目錄
    • 01. 控制原理
    • 02. 配置寄存器
    • 03. 程序示例一
    • 04. 程序示例二
    • 05. 程序示例三
    • 06. 附錄

01. 控制原理

咱們的LED在核心板上,所以需要看核心板的原理圖

打開核心板原理圖(Tiny4412-1412-Schematic.pdf)

由上圖可知,Tiny4412有4個用戶LED燈,控制它們四個引腳分別是GPM4_0~ GPM4_3,由原理可知,當IO引腳為高電平時,LED燈滅,當IO引腳為低電平時LED亮。我們要做的工作就是設置GPM4_0~ GPM4_3為輸出功能,且控制且輸出電平高低即可。

02. 配置寄存器

由原理圖可知,程序只進行了兩步操作。

第一步:設置GPM4_0~GPM4_3相對應的控制寄存器GPM4CON,使GPM4_0 GPM4_3四個引腳為輸出功能。

第二步:設置其對應的數據寄存器GPM4DAT對應的4個bit位為0,使GPM4_0~ GPM4_3為低電平,4個LED燈全亮,使GPM4_0~ GPM4_3全為高電平,4個LED燈全滅。

03. 程序示例一

所有led閃爍 匯編函數

.section .rodata.align 2 .LC0:.string "led all off\n".section .text.align 2.global _start _start:stmfd sp!, {lr}bl led_init 1:bl led_alloffldr r0, =1000000bl led_delaybl led_allonldr r0, =1000000bl led_delayb 1bldmfd sp!, {pc}.align 2.global led_init led_init:@配置為輸出ldr r0, =0x110002E0 ldr r1, [r0]ldr r2, =0xffffbic r1, r1, r2ldr r2, =0x1111orr r1, r1, r2str r1, [r0]mov pc, lr.align 2.global led_allon led_allon:ldr r0, =0x110002E4 ldr r1, [r0]bic r1, r1, #0xfstr r1, [r0]mov pc, lr.align 2.global led_alloff led_alloff:ldr r0, =0x110002E4 ldr r1, [r0]orr r1, r1, #0xfstr r1, [r0]mov pc, lr.align 2.global led_delay led_delay:stmfd sp!, {lr}mov lr, pcldr pc, =0x43e26480ldmfd sp!, {pc}

Makefile

all:arm-linux-gcc -c test.s -o test.oarm-linux-ld -Ttext=0x40008000 test.o -o testarm-linux-objcopy -O binary test test.bin.PHONY:clean clean:rm -rf test.o test test.bin

04. 程序示例二

所有led閃爍 匯編函數 多文件操作

lib.s文件內容如下

.section .text.align 2.global led_delay led_delay:stmfd sp!, {lr}mov lr, pcldr pc, =0x43e26480ldmfd sp!, {pc}

led.s文件內容如下

.section .text.align 2.global led_init led_init:@配置為輸出ldr r0, =0x110002E0 ldr r1, [r0]ldr r2, =0xffffbic r1, r1, r2ldr r2, =0x1111orr r1, r1, r2str r1, [r0]mov pc, lr.align 2.global led_allon led_allon:ldr r0, =0x110002E4 ldr r1, [r0]bic r1, r1, #0xfstr r1, [r0]mov pc, lr.align 2.global led_alloff led_alloff:ldr r0, =0x110002E4 ldr r1, [r0]orr r1, r1, #0xfstr r1, [r0]mov pc, lr

test.s文件內容如下:

.section .rodata.align 2 .LC0:.string "led all off\n".section .text.align 2.global _start _start:stmfd sp!, {lr}bl led_init 1:bl led_alloffldr r0, =1000000bl led_delaybl led_allonldr r0, =1000000bl led_delayb 1bldmfd sp!, {pc}

Makefile文件

all:arm-linux-gcc -c test.s -o test.oarm-linux-gcc -c led.s -o led.oarm-linux-gcc -c lib.s -o lib.oarm-linux-ld -Ttext=0x40000000 test.o lib.o led.o -o testarm-linux-objcopy -O binary test test.bin.PHONY:clean clean:rm -rf *.o test test.bin

05. 程序示例三

跑馬燈程序

lib.s文件內容

.align 2.global led_delay led_delay:stmfd sp!, {lr}mov lr, pcldr pc, =0x43e26480ldmfd sp!, {pc}

led.s文件內容

.section .text.align 2.global led_init led_init:@配置為輸出ldr r0, =0x110002E0 ldr r1, [r0]ldr r2, =0xffffbic r1, r1, r2ldr r2, =0x1111orr r1, r1, r2str r1, [r0]mov pc, lr.align 2.global led_allon led_allon:ldr r0, =0x110002E4 ldr r1, [r0]bic r1, r1, #0xfstr r1, [r0]mov pc, lr.align 2.global led_alloff led_alloff:ldr r0, =0x110002E4 ldr r1, [r0]orr r1, r1, #0xfstr r1, [r0]mov pc, lr.align 2.global led_on led_on:ldr r1, =0x110002E4 ldr r2, [r1]mov r3, #1bic r2, r2, r3, LSL r0str r2, [r1]mov pc, lr.align 2.global led_off led_off:ldr r1, =0x110002E4 ldr r2, [r1]mov r3, #1orr r2, r2, r3, LSL r0str r2, [r1]mov pc, lr

test.s文件內容

.section .rodata.align 2 .LC0:.string "led all off\n".section .text.align 2.global _start _start:stmfd sp!, {lr}bl led_initbl led_alloffmov r4, #01:mov r0, r4bl led_onldr r0, =1000000bl led_delaymov r0, r4bl led_offldr r0, =1000000bl led_delayadd r4, r4, #1cmp r4, #4moveq r4, #0b 1bldmfd sp!, {pc}

Makefile文件

all:arm-linux-gcc -c test.s -o test.oarm-linux-gcc -c led.s -o led.oarm-linux-gcc -c lib.s -o lib.oarm-linux-ld -Ttext=0x40000000 test.o lib.o led.o -o testarm-linux-objcopy -O binary test test.bin.PHONY:clean clean:rm -rf *.o test test.bin

06. 附錄

Exynos 4412 SCP_Users Manual_Ver.0.10.00_Preliminary0.pdf

總結

以上是生活随笔為你收集整理的【ARM】Tiny4412裸板编程之LED(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 伊人久久久 | 久久加勒比 | 91激情视频在线 | 国产无码精品在线观看 | 明星双性精跪趴灌满h | 久久久久久久久亚洲 | 99视频在线 | www狠狠| 男人猛吃奶女人爽视频 | 黑人一级视频 | 国模丫头1000人体 | 熟女一区二区三区四区 | 国产av精国产传媒 | 国产精品5区 | 人超碰 | 老司机黄色片 | 成人免费播放视频 | 射死你天天日 | 天堂中文资源在线观看 | 日本www高清视频 | 日本高清一区二区视频 | 国产女人被狂躁到高潮小说 | 免费吸乳羞羞网站视频 | 日韩不卡 | 一区二区久久精品66国产精品 | 水蜜桃色314在线观看 | 欧美另类综合 | av在线a | 97公开免费视频 | 亚洲三页 | 玖玖精品视频 | 操天天操| 国产成人精品一区二区三区四区 | 国产ts变态重口人妖hd | 九九热在线精品视频 | 波多野结衣视频在线播放 | 欧美日韩网| 777四色 | 亚洲色成人www永久在线观看 | 中文字幕――色哟哟 | 国产成人av无码精品 | 国产精品久久久一区二区三区 | 中文字幕在线视频不卡 | 伦理片一区二区 | 国产只有精品 | 五月天三级 | 日韩资源在线观看 | 国产精品对白刺激久久久 | 亚洲无码精品在线播放 | 久久久久亚洲av片无码v | 啪啪自拍 | 欧美黑人精品一区二区不卡 | 国产精品久久久久桃色tv | 国产成人精品久久二区二区 | 欧美日韩一区二区在线观看 | 一区二区三区高清在线 | 两女双腿交缠激烈磨豆腐 | 午夜在线观看视频 | 高潮无码精品色欲av午夜福利 | 日韩精品人妻一区二区三区免费 | 欧美大胆视频 | 小泽玛利亚一区二区三区 | 中文在线字幕免费观看电 | 久色视频在线观看 | 性色在线| 亚洲成人久久久久 | 青青草成人在线观看 | 五月天婷婷爱 | 九一亚洲精品 | 午夜视频福利网站 | 国产精品高潮呻吟久久 | 国产区在线视频 | 欧美,日韩,国产在线 | 女性向小h片资源在线观看 日本天天操 | 日本a级黄| 亚洲高清在线观看 | 热久久在线 | 国产农村妇女aaaaa视频 | 97超碰精品 | 中日韩精品在线 | 91爱爱视频| 久久密 | 欧美高清视频 | 日本美女毛片 | 中文字幕有码无码人妻av蜜桃 | 久久精品一区二区免费播放 | 宅男深夜视频 | 69欧美视频 | 怡红院一区二区 | 国产91热爆ts人妖系列 | 亚洲一区二区三区免费 | 亚洲一区二区三区四区五区午夜 | 超碰美女在线 | 亚洲视频欧美视频 | 精品国精品国产 | 天天视频天天爽 | 老司机深夜福利影院 | 日韩国产精品一区二区三区 | 久久久久无码国产精品一区李宗瑞 |