汇编点灯基于SC32440

汇编点灯

ARM汇编语言是专为ARM架构处理器设计的低级编程语言,采用精简指令集(RISC)设计,指令长度固定为32位,执行效率高且功耗低,特别适合嵌入式系统开发。

原理图中 GPF4 连接nLED_1

GPF4 输出低电平 点亮 nLED1

在S3C2440 datasheet 中找到 GPF4引脚对应的寄存器 配为输出模式 output 低电平Reserved

编写汇编代码 操作寄存器控制GPIO

c 复制代码
/*
 * 点亮LED1: gpf4
 */

.text
.global _start

_start:

/* 配置GPF4为输出引脚
 * 把0x100写到地址0x56000050
 */
	ldr r1, =0x56000050
	ldr r0, =0x100	/* mov r0, #0x100 */
	str r0, [r1]


/* 设置GPF4输出高电平 
 * 把0写到地址0x56000054
 */
	ldr r1, =0x56000054
	ldr r0, =0	/* mov r0, #0 */
	str r0, [r1]

	/* 死循环 */
halt:
	b halt

通过交叉编译工具链,编译汇编代码后 反汇编得到 led_on.dis文件

反汇编代码:

c 复制代码
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 <halt>:
  18:	eafffffe 	b	18 <halt>
  1c:	56000050 	undefined
  20:	56000054 	undefined

对应bin二进制文件

打开bin文件,查看二进制数据,和机器码小段模式一一对应

相关推荐
cuijiecheng20189 小时前
Linux控制台下git使用图形化界面进行文件对比
linux·运维·git
春日见9 小时前
控制算法:PID算法
linux·运维·服务器·人工智能·驱动开发·算法·机器人
JiMoKuangXiangQu9 小时前
Linux eBPF 虚拟机简析
linux·ebpf 虚拟机
EndingCoder9 小时前
接口基础:定义对象形状
linux·运维·前端·javascript·typescript
遇见火星10 小时前
Linux 运维:删除大日志文件时避免磁盘 IO 飙升,echo 空文件 vs truncate 命令对比实操
linux·运维·服务器
食咗未10 小时前
Linux SPI接口显示屏调试过程记录
linux
A-花开堪折10 小时前
Qemu-NUC980(十一):SPI Controller
linux·arm开发·驱动开发·嵌入式硬件
RisunJan10 小时前
Linux命令-ipcrm命令(删除Linux系统中的进程间通信(IPC)资源)
linux·运维·服务器
Joren的学习记录10 小时前
【Linux运维大神系列】Kubernetes详解2(kubeadm部署k8s1.27单节点集群)
linux·运维·kubernetes
lbb 小魔仙10 小时前
【Linux】K8s 集群搭建避坑指南:基于 Linux 内核参数调优的生产级部署方案
linux·运维·kubernetes