【ARM】Tiny4412裸机编程之LED(一)
00. 目錄
文章目錄
- 00. 目錄
- 01. 控制原理
- 02. 配置寄存器
- 03. 程序示例一
- 04. 程序示例二
- 05. 程序示例三
- 06. 附錄
01. 控制原理
咱們的LED在核心板上,所以需要看核心板的原理圖
打開核心板原理圖(Tiny4412-1412-Schematic.pdf)
由上圖可知,Tiny4412有4個(gè)用戶LED燈,控制它們四個(gè)引腳分別是GPM4_0~ GPM4_3,由原理可知,當(dāng)IO引腳為高電平時(shí),LED燈滅,當(dāng)IO引腳為低電平時(shí)LED亮。我們要做的工作就是設(shè)置GPM4_0~ GPM4_3為輸出功能,且控制且輸出電平高低即可。
02. 配置寄存器
由原理圖可知,程序只進(jìn)行了兩步操作。
第一步:設(shè)置GPM4_0~GPM4_3相對(duì)應(yīng)的控制寄存器GPM4CON,使GPM4_0 GPM4_3四個(gè)引腳為輸出功能。
第二步:設(shè)置其對(duì)應(yīng)的數(shù)據(jù)寄存器GPM4DAT對(duì)應(yīng)的4個(gè)bit位為0,使GPM4_0~ GPM4_3為低電平,4個(gè)LED燈全亮,使GPM4_0~ GPM4_3全為高電平,4個(gè)LED燈全滅。
03. 程序示例一
將所有的燈全部都亮
.section .rodata.align 2 .LC0:.string "led all on\n".section .text.align 2.global _start _start:stmfd sp!, {lr}@配置為輸出ldr r0, =0x110002E0 ldr r1, [r0]ldr r2, =0xffffbic r1, r1, r2@0x1 = Outputldr r2, =0x1111orr r1, r1, r2str r1, [r0]@設(shè)置低電平ldr r0, =0x110002E4 ldr r1, [r0]bic r1, r1, #0xfstr r1, [r0]@output led all onldr r0, =.LC0 mov lr, pcldr pc, =0x43e11a2cldmfd 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.bin04. 程序示例二
將所有的燈全部都滅
.section .rodata.align 2 .LC0:.string "led all off\n".section .text.align 2.global _start _start:stmfd sp!, {lr}@配置為輸出ldr r0, =0x110002E0 ldr r1, [r0]ldr r2, =0xffffbic r1, r1, r2ldr r2, =0x1111orr r1, r1, r2str r1, [r0]@設(shè)置低點(diǎn)平ldr r0, =0x110002E4 ldr r1, [r0]orr r1, r1, #0xfstr r1, [r0]@output led all onldr r0, =.LC0 mov lr, pcldr pc, =0x43e11a2cldmfd sp!, {pc}05. 程序示例三
所有l(wèi)ed閃爍
.section .rodata.align 2 .LC0:.string "led all off\n".section .text.align 2.global _start _start:stmfd sp!, {lr}@配置為輸出ldr r0, =0x110002E0 ldr r1, [r0]ldr r2, =0xffffbic r1, r1, r2ldr r2, =0x1111orr r1, r1, r2str r1, [r0]1:@offldr r0, =0x110002E4 ldr r1, [r0]orr r1, r1, #0xfstr r1, [r0]@sleep 1ldr r0, =1000000 mov lr, pcldr pc, =0x43e26480@onldr r0, =0x110002E4 ldr r1, [r0]bic r1, r1, #0xfstr r1, [r0]@sleep 1ldr r0, =1000000 mov lr, pcldr pc, =0x43e26480b 1bldmfd sp!, {pc}06. 附錄
Exynos 4412 SCP_Users Manual_Ver.0.10.00_Preliminary0.pdf
總結(jié)
以上是生活随笔為你收集整理的【ARM】Tiny4412裸机编程之LED(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【ARM】Tiny4412裸机编程之GP
- 下一篇: 【IT资讯】TIOBE - 2020年8